diff --git a/buildtools/LICENSE b/buildtools/LICENSE
index 46c1127..4a491dc 100644
--- a/buildtools/LICENSE
+++ b/buildtools/LICENSE
@@ -37,11 +37,11 @@
   copyrightHolder: The Guava Authors
   license: The Apache Software License, Version 2.0
   licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
-- artifact: com.googlecode.json-simple:json-simple:+
-  name: JSON.Simple
+- artifact: com.google.code.gson:gson:+
+  name: Gson
   license: The Apache Software License, Version 2.0
   licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
-  url: http://code.google.com/p/json-simple/
+  url: https://github.com/google/gson
 - artifact: it.unimi.dsi:fastutil:+
   name: fastutil
   license: Apache License, Version 2.0
@@ -55,33 +55,57 @@
 - artifact: org.ow2.asm:asm-commons:+
   name: ASM Commons
   copyrightHolder: INRIA, France Telecom
-  license: ASM license
+  license: BSD
   licenseUrl: http://asm.ow2.org/license.html
   url: http://asm.ow2.org/index.html
 - artifact: org.ow2.asm:asm-tree:+
   name: ASM Tree
   copyrightHolder: INRIA, France Telecom
-  license: ASM license
+  license: BSD
   licenseUrl: http://asm.ow2.org/license.html
   url: http://asm.ow2.org/index.html
 - artifact: org.ow2.asm:asm-util:+
   name: ASM Util
   copyrightHolder: INRIA, France Telecom
-  license: ASM license
+  license: BSD
   licenseUrl: http://asm.ow2.org/license.html
   url: http://asm.ow2.org/index.html
 - artifact: org.ow2.asm:asm-analysis:+
   name: ASM Util
   copyrightHolder: INRIA, France Telecom
-  license: ASM license
+  license: BSD
   licenseUrl: http://asm.ow2.org/license.html
   url: http://asm.ow2.org/index.html
 - artifact: org.ow2.asm:asm:+
   name: ASM Core
   copyrightHolder: INRIA, France Telecom
-  license: ASM license
+  license: BSD
   licenseUrl: http://asm.ow2.org/license.html
   url: http://asm.ow2.org/index.html
+- artifact: org.jetbrains.kotlin:kotlin-stdlib:+
+  name: org.jetbrains.kotlin:kotlin-stdlib
+  copyrightHolder: JetBrains s.r.o.
+  license: The Apache License, Version 2.0
+  licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
+  url: https://kotlinlang.org/
+- artifact: org.jetbrains.kotlin:kotlin-stdlib-common:+
+  name: org.jetbrains.kotlin:kotlin-stdlib
+  copyrightHolder: JetBrains s.r.o.
+  license: The Apache License, Version 2.0
+  licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
+  url: https://kotlinlang.org/
+- artifact: org.jetbrains.kotlinx:kotlinx-metadata-jvm:+
+  name: org.jetbrains.kotlinx:kotlinx-metadata-jvm
+  copyrightHolder: JetBrains s.r.o.
+  license: The Apache License, Version 2.0
+  licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
+  url: https://kotlinlang.org/
+- artifact: org.jetbrains:annotations:+
+  name: IntelliJ IDEA Annotations
+  copyrightHolder: JetBrains s.r.o.
+  license: The Apache Software License, Version 2.0
+  licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
+  url: http://www.jetbrains.org
 
 
 Licenses details:
diff --git a/buildtools/d8-master.jar b/buildtools/d8-master.jar
index 5229988..0e34a0c 100644
--- a/buildtools/d8-master.jar
+++ b/buildtools/d8-master.jar
Binary files differ
diff --git a/buildtools/d8-master.jar.map b/buildtools/d8-master.jar.map
new file mode 100644
index 0000000..54796c8
--- /dev/null
+++ b/buildtools/d8-master.jar.map
@@ -0,0 +1,63380 @@
+# compiler: R8
+# compiler_version: 2.1.7-r1
+# compiler_hash: engineering
+# pg_map_id: 35bfcaa
+# common_typos_disable
+com.android.tools.r8.ApiLevelException -> com.android.tools.r8.a:
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):14:15 -> <init>
+    1:1:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):21:21 -> a
+    2:63:java.lang.String com.android.tools.r8.utils.AndroidApiLevel.getName():0:61 -> a
+    2:63:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):24 -> a
+    64:68:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):24:28 -> a
+com.android.tools.r8.ArchiveClassFileProvider -> com.android.tools.r8.ArchiveClassFileProvider:
+    com.android.tools.r8.origin.Origin origin -> a
+    java.util.zip.ZipFile zipFile -> b
+    java.util.Set descriptors -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():39:39 -> <clinit>
+    1:1:void <init>(java.nio.file.Path):51:51 -> <init>
+    2:2:void <init>(java.nio.file.Path,java.util.function.Predicate):60:60 -> <init>
+    3:37:void <init>(java.nio.file.Path,java.util.function.Predicate):43:77 -> <init>
+    38:41:void <init>(java.nio.file.Path,java.util.function.Predicate):66:69 -> <init>
+    boolean lambda$new$0(java.lang.String) -> a
+    1:1:void close():112:112 -> close
+    1:2:void finalize():106:107 -> finalize
+    1:1:java.util.Set getClassDescriptors():84:84 -> getClassDescriptors
+    1:1:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):89:89 -> getProgramResource
+    2:2:java.util.zip.ZipEntry getZipEntryFromDescriptor(java.lang.String):116:116 -> getProgramResource
+    2:2:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):92 -> getProgramResource
+    3:8:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):93:98 -> getProgramResource
+    9:14:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):94:99 -> getProgramResource
+    15:22:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):93:100 -> getProgramResource
+    23:23:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> getProgramResource
+    23:23:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):100 -> getProgramResource
+    24:24:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):100:100 -> getProgramResource
+com.android.tools.r8.ArchiveProgramResourceProvider -> com.android.tools.r8.ArchiveProgramResourceProvider:
+    com.android.tools.r8.origin.Origin origin -> a
+    java.util.function.Predicate include -> c
+    com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier supplier -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier,java.util.function.Predicate):82:88 -> <init>
+    1:1:java.util.zip.ZipFile lambda$fromArchive$0(java.nio.file.Path):66:66 -> a
+    2:8:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):92:98 -> a
+    9:13:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):96:100 -> a
+    14:23:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):92:101 -> a
+    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    24:24:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):101 -> a
+    25:25:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):101:101 -> a
+    26:26:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):100:100 -> a
+    27:32:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):112:117 -> a
+    33:33:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):116:116 -> a
+    34:44:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):115:125 -> a
+    45:45:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):121:121 -> a
+    46:46:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):120:120 -> a
+    1:1:com.android.tools.r8.ArchiveProgramResourceProvider fromArchive(java.nio.file.Path):59:59 -> fromArchive
+    2:2:com.android.tools.r8.ArchiveProgramResourceProvider fromArchive(java.nio.file.Path,java.util.function.Predicate):64:64 -> fromArchive
+    1:1:com.android.tools.r8.ArchiveProgramResourceProvider fromSupplier(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier):72:72 -> fromSupplier
+    2:2:com.android.tools.r8.ArchiveProgramResourceProvider fromSupplier(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier,java.util.function.Predicate):78:78 -> fromSupplier
+    1:23:java.util.Collection getProgramResources():108:130 -> getProgramResources
+    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> getProgramResources
+    24:24:java.util.Collection getProgramResources():130 -> getProgramResources
+    25:32:java.util.Collection getProgramResources():130:137 -> getProgramResources
+    1:1:boolean includeClassFileEntries(java.lang.String):43:43 -> includeClassFileEntries
+    1:1:boolean includeClassFileOrDexEntries(java.lang.String):51:51 -> includeClassFileOrDexEntries
+    2:3:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):143:144 -> includeClassFileOrDexEntries
+    2:3:boolean includeClassFileOrDexEntries(java.lang.String):51 -> includeClassFileOrDexEntries
+    1:1:boolean includeDexEntries(java.lang.String):47:47 -> includeDexEntries
+com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer -> com.android.tools.r8.ArchiveProgramResourceProvider$a:
+    void accept(com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream) -> a
+com.android.tools.r8.AssertionsConfiguration -> com.android.tools.r8.AssertionsConfiguration:
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation transformation -> a
+    java.lang.String value -> c
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope scope -> b
+    1:4:void <init>(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope,java.lang.String):37:40 -> <init>
+    1:1:com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope getScope():48:48 -> getScope
+    1:1:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformation():44:44 -> getTransformation
+    1:1:java.lang.String getValue():52:52 -> getValue
+com.android.tools.r8.AssertionsConfiguration$1 -> com.android.tools.r8.AssertionsConfiguration$a:
+com.android.tools.r8.AssertionsConfiguration$AssertionTransformation -> com.android.tools.r8.AssertionsConfiguration$AssertionTransformation:
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation[] $VALUES -> a
+    1:8:void <clinit>():16:23 -> <clinit>
+    9:9:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>(java.lang.String,int):14:14 -> <init>
+    1:1:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation valueOf(java.lang.String):13:13 -> valueOf
+    1:1:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation[] values():13:13 -> values
+com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope -> com.android.tools.r8.AssertionsConfiguration$b:
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope ALL -> a
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope[] $VALUES -> d
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope CLASS -> c
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope PACKAGE -> b
+    1:3:void <clinit>():27:29 -> <clinit>
+    4:4:void <clinit>():26:26 -> <clinit>
+    1:1:void <init>(java.lang.String,int):26:26 -> <init>
+com.android.tools.r8.AssertionsConfiguration$Builder -> com.android.tools.r8.AssertionsConfiguration$Builder:
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation transformation -> b
+    com.android.tools.r8.utils.Reporter reporter -> a
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope scope -> c
+    java.lang.String value -> d
+    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.AssertionsConfiguration$1):66:66 -> <init>
+    2:3:void <init>(com.android.tools.r8.utils.Reporter):72:73 -> <init>
+    1:13:com.android.tools.r8.AssertionsConfiguration build():147:159 -> build
+    1:1:com.android.tools.r8.AssertionsConfiguration disableAllAssertions(com.android.tools.r8.AssertionsConfiguration$Builder):209:209 -> disableAllAssertions
+    1:1:com.android.tools.r8.AssertionsConfiguration enableAllAssertions(com.android.tools.r8.AssertionsConfiguration$Builder):184:184 -> enableAllAssertions
+    1:1:com.android.tools.r8.AssertionsConfiguration passthroughAllAssertions(com.android.tools.r8.AssertionsConfiguration$Builder):234:234 -> passthroughAllAssertions
+    1:1:com.android.tools.r8.AssertionsConfiguration$Builder setDisable():97:97 -> setDisable
+    1:1:com.android.tools.r8.AssertionsConfiguration$Builder setEnable():88:88 -> setEnable
+    1:1:com.android.tools.r8.AssertionsConfiguration$Builder setPassthrough():103:103 -> setPassthrough
+    1:2:com.android.tools.r8.AssertionsConfiguration$Builder setScopeAll():108:109 -> setScopeAll
+    1:2:com.android.tools.r8.AssertionsConfiguration$Builder setScopeClass(java.lang.String):140:141 -> setScopeClass
+    1:2:com.android.tools.r8.AssertionsConfiguration$Builder setScopePackage(java.lang.String):125:126 -> setScopePackage
+    1:1:com.android.tools.r8.AssertionsConfiguration$Builder setTransformation(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation):79:79 -> setTransformation
+com.android.tools.r8.BackportedMethodList -> com.android.tools.r8.BackportedMethodList:
+    java.lang.String USAGE_MESSAGE -> a
+    1:2:void <clinit>():53:54 -> <clinit>
+    1:1:void <init>():51:51 -> <init>
+    1:1:java.lang.String formatMethod(com.android.tools.r8.graph.DexMethod):66:66 -> a
+    2:101:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():0:99 -> a
+    2:101:java.lang.String formatMethod(com.android.tools.r8.graph.DexMethod):69 -> a
+    102:102:java.lang.String formatMethod(com.android.tools.r8.graph.DexMethod):69:69 -> a
+    103:103:void lambda$run$1(com.android.tools.r8.BackportedMethodListCommand,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):88:88 -> a
+    104:114:void lambda$run$1(com.android.tools.r8.BackportedMethodListCommand,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):87:97 -> a
+    115:116:void lambda$run$0(com.android.tools.r8.BackportedMethodListCommand,java.lang.String):95:96 -> a
+    117:117:void lambda$main$2(java.lang.String[]):109:109 -> a
+    1:1:void main(java.lang.String[]):109:109 -> main
+    1:13:void run(com.android.tools.r8.BackportedMethodListCommand):73:85 -> run
+    14:14:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> run
+    14:14:void run(com.android.tools.r8.BackportedMethodListCommand):84 -> run
+    15:15:void run(com.android.tools.r8.BackportedMethodListCommand):100:100 -> run
+    16:16:void run(java.lang.String[]):105:105 -> run
+com.android.tools.r8.BackportedMethodListCommand -> com.android.tools.r8.BackportedMethodListCommand:
+    com.android.tools.r8.graph.DexItemFactory factory -> h
+    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration desugaredLibraryConfiguration -> e
+    com.android.tools.r8.StringConsumer backportedMethodListConsumer -> g
+    int minApiLevel -> d
+    boolean printHelp -> a
+    boolean printVersion -> b
+    com.android.tools.r8.utils.AndroidApp app -> f
+    com.android.tools.r8.utils.Reporter reporter -> c
+    1:1:void <init>(com.android.tools.r8.utils.Reporter,int,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.StringConsumer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.BackportedMethodListCommand$1):38:38 -> <init>
+    2:2:void <init>(boolean,boolean,com.android.tools.r8.BackportedMethodListCommand$1):38:38 -> <init>
+    3:11:void <init>(boolean,boolean):77:85 -> <init>
+    12:20:void <init>(com.android.tools.r8.utils.Reporter,int,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.StringConsumer,com.android.tools.r8.graph.DexItemFactory):94:102 -> <init>
+    1:1:com.android.tools.r8.utils.AndroidApp getInputApp():74:74 -> a
+    1:1:com.android.tools.r8.utils.InternalOptions getInternalOptions():106:106 -> b
+    2:2:com.android.tools.r8.utils.Reporter getReporter():58:58 -> b
+    2:2:com.android.tools.r8.utils.InternalOptions getInternalOptions():106 -> b
+    3:5:com.android.tools.r8.utils.InternalOptions getInternalOptions():106:108 -> b
+    1:1:com.android.tools.r8.BackportedMethodListCommand$Builder builder():113:113 -> builder
+    2:2:com.android.tools.r8.BackportedMethodListCommand$Builder builder(com.android.tools.r8.DiagnosticsHandler):117:117 -> builder
+    1:1:com.android.tools.r8.utils.Reporter getReporter():58:58 -> c
+    1:1:com.android.tools.r8.StringConsumer getBackportedMethodListConsumer():70:70 -> getBackportedMethodListConsumer
+    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration():66:66 -> getDesugaredLibraryConfiguration
+    1:1:int getMinApiLevel():62:62 -> getMinApiLevel
+    1:1:boolean isPrintHelp():50:50 -> isPrintHelp
+    1:1:boolean isPrintVersion():54:54 -> isPrintVersion
+    1:22:com.android.tools.r8.BackportedMethodListCommand$Builder parse(java.lang.String[]):122:143 -> parse
+    23:32:void parseMinApi(com.android.tools.r8.BackportedMethodListCommand$Builder,java.lang.String):164:173 -> parse
+    23:32:com.android.tools.r8.BackportedMethodListCommand$Builder parse(java.lang.String[]):145 -> parse
+    33:33:void parseMinApi(com.android.tools.r8.BackportedMethodListCommand$Builder,java.lang.String):166:166 -> parse
+    33:33:com.android.tools.r8.BackportedMethodListCommand$Builder parse(java.lang.String[]):145 -> parse
+    34:41:com.android.tools.r8.BackportedMethodListCommand$Builder parse(java.lang.String[]):148:155 -> parse
+com.android.tools.r8.BackportedMethodListCommand$1 -> com.android.tools.r8.BackportedMethodListCommand$a:
+com.android.tools.r8.BackportedMethodListCommand$Builder -> com.android.tools.r8.BackportedMethodListCommand$Builder:
+    java.util.List desugaredLibraryConfigurationResources -> c
+    com.android.tools.r8.utils.AndroidApp$Builder app -> d
+    boolean printHelp -> f
+    com.android.tools.r8.StringConsumer backportedMethodListConsumer -> e
+    boolean printVersion -> g
+    int minApiLevel -> b
+    com.android.tools.r8.utils.Reporter reporter -> a
+    1:1:void <init>(com.android.tools.r8.BackportedMethodListCommand$1):177:177 -> <init>
+    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.BackportedMethodListCommand$1):177:177 -> <init>
+    3:3:void <init>():188:188 -> <init>
+    4:4:void <init>(com.android.tools.r8.DiagnosticsHandler):191:191 -> <init>
+    5:18:void <init>(com.android.tools.r8.DiagnosticsHandler):180:193 -> <init>
+    1:1:void error(com.android.tools.r8.Diagnostic):304:304 -> a
+    1:1:void access$200(com.android.tools.r8.BackportedMethodListCommand$Builder,com.android.tools.r8.Diagnostic):177 -> a
+    1:1:com.android.tools.r8.BackportedMethodListCommand$Builder addDesugaredLibraryConfiguration(com.android.tools.r8.StringResource):218:218 -> addDesugaredLibraryConfiguration
+    2:2:com.android.tools.r8.BackportedMethodListCommand$Builder addDesugaredLibraryConfiguration(java.lang.String):225:225 -> addDesugaredLibraryConfiguration
+    3:3:com.android.tools.r8.BackportedMethodListCommand$Builder addDesugaredLibraryConfiguration(java.lang.String):224:224 -> addDesugaredLibraryConfiguration
+    1:1:com.android.tools.r8.BackportedMethodListCommand$Builder addLibraryFiles(java.nio.file.Path[]):236:236 -> addLibraryFiles
+    2:3:com.android.tools.r8.BackportedMethodListCommand$Builder addLibraryFiles(java.util.Collection):242:243 -> addLibraryFiles
+    1:1:com.android.tools.r8.BackportedMethodListCommand$Builder addLibraryResourceProvider(com.android.tools.r8.ClassFileResourceProvider):230:230 -> addLibraryResourceProvider
+    1:25:com.android.tools.r8.BackportedMethodListCommand build():308:332 -> build
+    26:36:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory):249:259 -> build
+    26:36:com.android.tools.r8.BackportedMethodListCommand build():335 -> build
+    37:37:com.android.tools.r8.BackportedMethodListCommand build():335:335 -> build
+    38:38:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory):253:253 -> build
+    38:38:com.android.tools.r8.BackportedMethodListCommand build():335 -> build
+    39:39:com.android.tools.r8.BackportedMethodListCommand build():316:316 -> build
+    1:1:int getMinApiLevel():213:213 -> getMinApiLevel
+    1:1:boolean isPrintHelp():283:283 -> isPrintHelp
+    1:1:boolean isPrintVersion():294:294 -> isPrintVersion
+    1:1:com.android.tools.r8.BackportedMethodListCommand$Builder setConsumer(com.android.tools.r8.StringConsumer):277:277 -> setConsumer
+    1:3:com.android.tools.r8.BackportedMethodListCommand$Builder setMinApiLevel(int):205:207 -> setMinApiLevel
+    1:1:com.android.tools.r8.BackportedMethodListCommand$Builder setOutputPath(java.nio.file.Path):264:264 -> setOutputPath
+    1:1:com.android.tools.r8.BackportedMethodListCommand$Builder setPrintHelp(boolean):288:288 -> setPrintHelp
+    1:1:com.android.tools.r8.BackportedMethodListCommand$Builder setPrintVersion(boolean):299:299 -> setPrintVersion
+com.android.tools.r8.BackportedMethodListCommand$Builder$1 -> com.android.tools.r8.BackportedMethodListCommand$Builder$a:
+    1:1:void <init>():188:188 -> <init>
+com.android.tools.r8.BackportedMethodListCommand$Builder$2 -> com.android.tools.r8.BackportedMethodListCommand$Builder$b:
+    1:1:void <init>(com.android.tools.r8.BackportedMethodListCommand$Builder,java.nio.file.Path):265:265 -> <init>
+    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):268:269 -> accept
+com.android.tools.r8.BackportedMethodListCommand$Builder$3 -> com.android.tools.r8.BackportedMethodListCommand$Builder$c:
+    1:1:void <init>(com.android.tools.r8.BackportedMethodListCommand$Builder):321:321 -> <init>
+    1:1:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):324:324 -> accept
+com.android.tools.r8.BaseCommand -> com.android.tools.r8.BaseCommand:
+    com.android.tools.r8.utils.AndroidApp app -> c
+    boolean printHelp -> a
+    boolean printVersion -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:5:void <init>(boolean,boolean):38:42 -> <init>
+    6:11:void <init>(com.android.tools.r8.utils.AndroidApp):45:50 -> <init>
+    com.android.tools.r8.utils.InternalOptions getInternalOptions() -> a
+    1:1:com.android.tools.r8.utils.AndroidApp getInputApp():63:63 -> getInputApp
+    1:1:boolean isPrintHelp():54:54 -> isPrintHelp
+    1:1:boolean isPrintVersion():58:58 -> isPrintVersion
+com.android.tools.r8.BaseCommand$Builder -> com.android.tools.r8.BaseCommand$Builder:
+    java.util.List programFiles -> e
+    com.android.tools.r8.utils.AndroidApp$Builder app -> d
+    com.android.tools.r8.utils.Reporter reporter -> a
+    boolean printHelp -> b
+    boolean printVersion -> c
+    1:1:void <init>():115:115 -> <init>
+    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):119:119 -> <init>
+    3:3:void <init>(com.android.tools.r8.utils.AndroidApp$Builder):122:122 -> <init>
+    4:20:void <init>(com.android.tools.r8.utils.AndroidApp$Builder):108:124 -> <init>
+    1:1:com.android.tools.r8.utils.AndroidApp$Builder getAppBuilder():152:152 -> a
+    2:2:void lambda$addClasspathFiles$3(java.nio.file.Path[]):216:216 -> a
+    3:3:void lambda$addClasspathFiles$4(java.util.Collection):222:222 -> a
+    4:4:void addClasspathFile(java.nio.file.Path):227:227 -> a
+    5:5:void lambda$addClasspathResourceProvider$6(com.android.tools.r8.ClassFileResourceProvider):232:232 -> a
+    6:6:void lambda$addClassProgramData$7(byte[],com.android.tools.r8.origin.Origin):238:238 -> a
+    7:7:void lambda$addMainDexClasses$11(java.lang.String[]):295:295 -> a
+    8:8:void lambda$setIgnoreDexInArchive$13(boolean):350:350 -> a
+    9:11:void guard(java.lang.Runnable):364:366 -> a
+    1:2:com.android.tools.r8.BaseCommand$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin):238:239 -> addClassProgramData
+    1:2:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.nio.file.Path[]):216:217 -> addClasspathFiles
+    3:4:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.util.Collection):222:223 -> addClasspathFiles
+    1:2:com.android.tools.r8.BaseCommand$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):232:233 -> addClasspathResourceProvider
+    1:2:com.android.tools.r8.BaseCommand$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):244:245 -> addDexProgramData
+    1:2:com.android.tools.r8.BaseCommand$Builder addLibraryFiles(java.nio.file.Path[]):195:196 -> addLibraryFiles
+    3:13:com.android.tools.r8.BaseCommand$Builder addLibraryFiles(java.util.Collection):201:211 -> addLibraryFiles
+    1:2:com.android.tools.r8.BaseCommand$Builder addLibraryResourceProvider(com.android.tools.r8.ClassFileResourceProvider):189:190 -> addLibraryResourceProvider
+    1:2:com.android.tools.r8.BaseCommand$Builder addMainDexClasses(java.lang.String[]):295:296 -> addMainDexClasses
+    3:4:com.android.tools.r8.BaseCommand$Builder addMainDexClasses(java.util.Collection):308:309 -> addMainDexClasses
+    1:9:com.android.tools.r8.BaseCommand$Builder addMainDexListFiles(java.nio.file.Path[]):258:266 -> addMainDexListFiles
+    10:18:com.android.tools.r8.BaseCommand$Builder addMainDexListFiles(java.util.Collection):275:283 -> addMainDexListFiles
+    1:2:com.android.tools.r8.BaseCommand$Builder addProgramFiles(java.nio.file.Path[]):157:158 -> addProgramFiles
+    3:14:com.android.tools.r8.BaseCommand$Builder addProgramFiles(java.util.Collection):167:178 -> addProgramFiles
+    1:2:com.android.tools.r8.BaseCommand$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):183:184 -> addProgramResourceProvider
+    1:1:com.android.tools.r8.utils.Reporter getReporter():162:162 -> b
+    2:2:void lambda$addLibraryResourceProvider$1(com.android.tools.r8.ClassFileResourceProvider):189:189 -> b
+    3:7:void lambda$addLibraryFiles$2(java.util.Collection):203:207 -> b
+    8:8:void error(com.android.tools.r8.origin.Origin,java.lang.Throwable):358:358 -> b
+    8:8:void lambda$addLibraryFiles$2(java.util.Collection):207 -> b
+    9:9:void lambda$addClasspathFile$5(java.nio.file.Path):227:227 -> b
+    10:10:void lambda$addDexProgramData$8(byte[],com.android.tools.r8.origin.Origin):244:244 -> b
+    11:11:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):260:260 -> b
+    12:957:com.android.tools.r8.utils.AndroidApp$Builder com.android.tools.r8.utils.AndroidApp$Builder.addMainDexListFiles(java.nio.file.Path[]):0:945 -> b
+    12:957:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):260 -> b
+    958:960:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):262:262 -> b
+    961:961:void setIgnoreDexInArchive(boolean):350:350 -> b
+    1:6:com.android.tools.r8.BaseCommand build():138:143 -> build
+    com.android.tools.r8.BaseCommand makeCommand() -> c
+    1:1:void lambda$addMainDexClasses$12(java.util.Collection):308:308 -> c
+    com.android.tools.r8.BaseCommand$Builder self() -> d
+    1:4:void lambda$addMainDexListFiles$10(java.util.Collection):277:280 -> d
+    5:5:void lambda$addMainDexListFiles$10(java.util.Collection):279:279 -> d
+    void validate() -> e
+    1:6:void lambda$addProgramFiles$0(java.util.Collection):169:174 -> e
+    7:7:void error(com.android.tools.r8.origin.Origin,java.lang.Throwable):358:358 -> e
+    7:7:void lambda$addProgramFiles$0(java.util.Collection):174 -> e
+    1:1:void error(com.android.tools.r8.Diagnostic):336:336 -> error
+    1:1:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):345:345 -> fatalError
+    2:4:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> fatalError
+    2:4:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):345 -> fatalError
+    1:1:boolean isPrintHelp():314:314 -> isPrintHelp
+    1:1:boolean isPrintVersion():325:325 -> isPrintVersion
+    1:2:com.android.tools.r8.BaseCommand$Builder setPrintHelp(boolean):319:320 -> setPrintHelp
+    1:2:com.android.tools.r8.BaseCommand$Builder setPrintVersion(boolean):330:331 -> setPrintVersion
+com.android.tools.r8.BaseCommand$InputFileOrigin -> com.android.tools.r8.BaseCommand$a:
+    java.lang.String inputType -> c
+    1:2:void <init>(java.lang.String,java.nio.file.Path):73:74 -> <init>
+    1:1:java.lang.String part():79:79 -> part
+com.android.tools.r8.BaseCommand$LibraryInputOrigin -> com.android.tools.r8.BaseCommand$b:
+    1:1:void <init>(java.nio.file.Path):93:93 -> <init>
+com.android.tools.r8.BaseCommand$ProgramInputOrigin -> com.android.tools.r8.BaseCommand$c:
+    1:1:void <init>(java.nio.file.Path):86:86 -> <init>
+com.android.tools.r8.BaseCompilerCommand -> com.android.tools.r8.BaseCompilerCommand:
+    boolean $assertionsDisabled -> o
+    com.android.tools.r8.utils.Reporter reporter -> i
+    int minApiLevel -> h
+    boolean includeClassesChecksum -> k
+    java.util.function.BiPredicate dexClassChecksumFilter -> m
+    boolean optimizeMultidexForLinearAlloc -> l
+    com.android.tools.r8.StringConsumer mainDexListConsumer -> g
+    com.android.tools.r8.ProgramConsumer programConsumer -> f
+    com.android.tools.r8.utils.InternalOptions$DesugarState desugarState -> j
+    java.util.List assertionsConfiguration -> n
+    com.android.tools.r8.CompilationMode mode -> e
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:11:void <init>(boolean,boolean):46:56 -> <init>
+    12:24:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,java.util.function.BiPredicate,java.util.List):71:83 -> <init>
+    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
+    1:1:com.android.tools.r8.utils.InternalOptions$DesugarState getDesugarState():121:121 -> b
+    1:1:com.android.tools.r8.utils.Reporter getReporter():147:147 -> c
+    1:1:java.util.List getAssertionsConfiguration():143:143 -> getAssertionsConfiguration
+    1:1:java.util.function.BiPredicate getDexClassChecksumFilter():131:131 -> getDexClassChecksumFilter
+    1:1:boolean getEnableDesugaring():117:117 -> getEnableDesugaring
+    1:1:boolean getIncludeClassesChecksum():126:126 -> getIncludeClassesChecksum
+    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():112:112 -> getMainDexListConsumer
+    1:1:int getMinApiLevel():96:96 -> getMinApiLevel
+    1:1:com.android.tools.r8.CompilationMode getMode():91:91 -> getMode
+    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():105:105 -> getProgramConsumer
+    1:1:boolean isOptimizeMultidexForLinearAlloc():139:139 -> isOptimizeMultidexForLinearAlloc
+com.android.tools.r8.BaseCompilerCommand$Builder -> com.android.tools.r8.BaseCompilerCommand$Builder:
+    boolean includeClassesChecksum -> n
+    java.util.function.BiPredicate dexClassChecksumFilter -> p
+    java.util.List assertionsConfiguration -> q
+    boolean optimizeMultidexForLinearAlloc -> o
+    java.nio.file.Path outputPath -> h
+    int minApiLevel -> k
+    com.android.tools.r8.OutputMode outputMode -> i
+    boolean $assertionsDisabled -> r
+    com.android.tools.r8.CompilationMode mode -> j
+    com.android.tools.r8.StringConsumer mainDexListConsumer -> g
+    com.android.tools.r8.utils.InternalOptions$DesugarState desugarState -> l
+    com.android.tools.r8.ProgramConsumer programConsumer -> f
+    java.util.List desugaredLibraryConfigurationResources -> m
+    1:1:void <clinit>():157:157 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler):184:184 -> <init>
+    2:26:void <init>(com.android.tools.r8.DiagnosticsHandler):161:185 -> <init>
+    27:27:void <init>(com.android.tools.r8.utils.AndroidApp):190:190 -> <init>
+    28:58:void <init>(com.android.tools.r8.utils.AndroidApp):161:191 -> <init>
+    59:59:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):196:196 -> <init>
+    60:96:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):161:197 -> <init>
+    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
+    1:33:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):363:395 -> a
+    34:45:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):469:480 -> a
+    46:46:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):473:473 -> a
+    47:47:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    47:47:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):473 -> a
+    48:48:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    48:48:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    48:48:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):473 -> a
+    49:49:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):473:473 -> a
+    1:2:com.android.tools.r8.BaseCompilerCommand$Builder addAssertionsConfiguration(java.util.function.Function):506:507 -> addAssertionsConfiguration
+    3:3:com.android.tools.r8.AssertionsConfiguration$Builder com.android.tools.r8.AssertionsConfiguration.builder(com.android.tools.r8.utils.Reporter):56:56 -> addAssertionsConfiguration
+    3:3:com.android.tools.r8.BaseCompilerCommand$Builder addAssertionsConfiguration(java.util.function.Function):507 -> addAssertionsConfiguration
+    4:4:com.android.tools.r8.BaseCompilerCommand$Builder addAssertionsConfiguration(java.util.function.Function):507:507 -> addAssertionsConfiguration
+    5:7:com.android.tools.r8.BaseCompilerCommand$Builder addAssertionsConfiguration(java.util.function.Function):506:508 -> addAssertionsConfiguration
+    1:3:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(java.lang.String):456:456 -> addDesugaredLibraryConfiguration
+    5:5:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(java.lang.String):458:458 -> addDesugaredLibraryConfiguration
+    6:7:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(com.android.tools.r8.StringResource):463:464 -> addDesugaredLibraryConfiguration
+    1:1:com.android.tools.r8.BaseCompilerCommand$Builder addSpecialLibraryConfiguration(java.lang.String):450:450 -> addSpecialLibraryConfiguration
+    1:37:void validate():513:549 -> e
+    38:80:void com.android.tools.r8.utils.Reporter.warning(java.lang.String):0:42 -> e
+    38:80:void validate():545 -> e
+    com.android.tools.r8.CompilationMode defaultCompilationMode() -> f
+    1:1:java.util.List getAssertionsConfiguration():499:499 -> g
+    1:1:java.util.function.BiPredicate getDexClassChecksumFilter():258:258 -> getDexClassChecksumFilter
+    1:1:boolean getDisableDesugaring():441:441 -> getDisableDesugaring
+    1:1:boolean getIncludeClassesChecksum():495:495 -> getIncludeClassesChecksum
+    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():251:251 -> getMainDexListConsumer
+    1:1:int getMinApiLevel():400:400 -> getMinApiLevel
+    1:1:com.android.tools.r8.CompilationMode getMode():204:204 -> getMode
+    1:1:com.android.tools.r8.OutputMode getOutputMode():233:233 -> getOutputMode
+    1:1:java.nio.file.Path getOutputPath():223:223 -> getOutputPath
+    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():244:244 -> getProgramConsumer
+    1:1:boolean hasDesugaredLibraryConfiguration():484:484 -> h
+    1:1:boolean isMinApiLevelSet():404:404 -> i
+    1:1:boolean isOptimizeMultidexForLinearAlloc():276:276 -> j
+    1:3:com.android.tools.r8.BaseCompilerCommand$Builder setDexClassChecksumFilter(java.util.function.BiPredicate):354:356 -> setDexClassChecksumFilter
+    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setDisableDesugaring(boolean):435:436 -> setDisableDesugaring
+    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setEnableDesugaring(boolean):419:420 -> setEnableDesugaring
+    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setIncludeClassesChecksum(boolean):489:490 -> setIncludeClassesChecksum
+    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListConsumer(com.android.tools.r8.StringConsumer):319:320 -> setMainDexListConsumer
+    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListOutputPath(java.nio.file.Path):306:307 -> setMainDexListOutputPath
+    1:5:com.android.tools.r8.BaseCompilerCommand$Builder setMinApiLevel(int):410:414 -> setMinApiLevel
+    1:3:com.android.tools.r8.BaseCompilerCommand$Builder setMode(com.android.tools.r8.CompilationMode):211:213 -> setMode
+    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setOptimizeMultidexForLinearAlloc(boolean):267:268 -> setOptimizeMultidexForLinearAlloc
+    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):334:334 -> setOutput
+    2:7:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):339:344 -> setOutput
+    1:4:com.android.tools.r8.BaseCompilerCommand$Builder setProgramConsumer(com.android.tools.r8.ProgramConsumer):290:293 -> setProgramConsumer
+com.android.tools.r8.BaseCompilerCommand$Builder$1 -> com.android.tools.r8.BaseCompilerCommand$Builder$a:
+    1:1:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder,java.nio.file.Path,boolean):370:370 -> <init>
+com.android.tools.r8.BaseCompilerCommand$Builder$2 -> com.android.tools.r8.BaseCompilerCommand$Builder$b:
+    1:1:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder,java.nio.file.Path,boolean):377:377 -> <init>
+com.android.tools.r8.BaseCompilerCommandParser -> com.android.tools.r8.b:
+    java.lang.Iterable ASSERTIONS_USAGE_MESSAGE -> a
+    java.lang.String PACKAGE_ASSERTION_POSTFIX -> b
+    boolean $assertionsDisabled -> c
+    1:35:void <clinit>():16:50 -> <clinit>
+    1:1:void <init>():16:16 -> <init>
+    1:10:void parseMinApi(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):38:47 -> a
+    11:11:void parseMinApi(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):40:40 -> a
+    12:24:void addAssertionTransformation(com.android.tools.r8.BaseCompilerCommand$Builder,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.lang.String):55:67 -> a
+    25:25:com.android.tools.r8.AssertionsConfiguration lambda$addAssertionTransformation$0(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.AssertionsConfiguration$Builder):56:56 -> a
+    26:28:com.android.tools.r8.AssertionsConfiguration lambda$addAssertionTransformation$1(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.lang.String,com.android.tools.r8.AssertionsConfiguration$Builder):62:64 -> a
+    29:31:com.android.tools.r8.AssertionsConfiguration lambda$addAssertionTransformation$1(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.lang.String,com.android.tools.r8.AssertionsConfiguration$Builder):63:65 -> a
+    32:32:void addLibraryArgument(com.android.tools.r8.BaseCommand$Builder,com.android.tools.r8.origin.Origin,java.lang.String):148:148 -> a
+    33:44:boolean isJdkHome(java.nio.file.Path):130:141 -> a
+    33:44:void addLibraryArgument(com.android.tools.r8.BaseCommand$Builder,com.android.tools.r8.origin.Origin,java.lang.String):149 -> a
+    45:50:void addLibraryArgument(com.android.tools.r8.BaseCommand$Builder,com.android.tools.r8.origin.Origin,java.lang.String):152:157 -> a
+    1:1:com.android.tools.r8.AssertionsConfiguration lambda$addAssertionTransformation$2(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.lang.String,com.android.tools.r8.AssertionsConfiguration$Builder):68:68 -> b
+    2:36:boolean tryParseAssertionArgument(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):83:117 -> b
+com.android.tools.r8.ByteBufferProvider -> com.android.tools.r8.ByteBufferProvider:
+    1:1:java.nio.ByteBuffer acquireByteBuffer(int):24:24 -> acquireByteBuffer
+com.android.tools.r8.ByteDataView -> com.android.tools.r8.ByteDataView:
+    byte[] buffer -> a
+    int offset -> b
+    int length -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:7:void <init>(byte[],int,int):25:31 -> <init>
+    1:1:byte[] copyByteData():58:58 -> copyByteData
+    1:2:byte[] getBuffer():36:37 -> getBuffer
+    1:2:int getLength():52:53 -> getLength
+    1:2:int getOffset():42:43 -> getOffset
+    1:1:void invalidate():62:62 -> invalidate
+    1:1:com.android.tools.r8.ByteDataView of(byte[]):17:17 -> of
+com.android.tools.r8.ClassFileConsumer -> com.android.tools.r8.ClassFileConsumer:
+    1:1:com.android.tools.r8.ClassFileConsumer emptyConsumer():49:49 -> emptyConsumer
+com.android.tools.r8.ClassFileConsumer$ArchiveConsumer -> com.android.tools.r8.ClassFileConsumer$ArchiveConsumer:
+    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
+    boolean consumeDataResources -> d
+    1:1:void <init>(java.nio.file.Path):92:92 -> <init>
+    2:2:void <init>(java.nio.file.Path,boolean):96:96 -> <init>
+    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer):100:100 -> <init>
+    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer,boolean):104:109 -> <init>
+    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):154:154 -> a
+    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):120:121 -> accept
+    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):126:126 -> accept
+    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):131:131 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):136:137 -> finished
+    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():115:115 -> getDataResourceConsumer
+    1:1:java.nio.file.Path internalGetOutputPath():142:142 -> internalGetOutputPath
+    1:7:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):148:154 -> writeResources
+    8:10:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):151:153 -> writeResources
+    11:15:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):150:154 -> writeResources
+com.android.tools.r8.ClassFileConsumer$DirectoryConsumer -> com.android.tools.r8.ClassFileConsumer$DirectoryConsumer:
+    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
+    boolean consumeDataResouces -> d
+    1:1:void <init>(java.nio.file.Path):166:166 -> <init>
+    2:2:void <init>(java.nio.file.Path,boolean):170:170 -> <init>
+    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer):174:174 -> <init>
+    4:6:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer,boolean):179:181 -> <init>
+    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):191:192 -> accept
+    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):197:197 -> accept
+    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):202:202 -> accept
+    1:1:void finished(com.android.tools.r8.DiagnosticsHandler):207:207 -> finished
+    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():186:186 -> getDataResourceConsumer
+    1:1:java.nio.file.Path internalGetOutputPath():212:212 -> internalGetOutputPath
+com.android.tools.r8.ClassFileConsumer$ForwardingConsumer -> com.android.tools.r8.ClassFileConsumer$ForwardingConsumer:
+    com.android.tools.r8.ClassFileConsumer EMPTY_CONSUMER -> b
+    com.android.tools.r8.ClassFileConsumer consumer -> a
+    1:1:void <clinit>():56:56 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ClassFileConsumer):60:61 -> <init>
+    1:1:com.android.tools.r8.ClassFileConsumer access$000():54:54 -> a
+    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):71:72 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):78:79 -> finished
+    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():66:66 -> getDataResourceConsumer
+com.android.tools.r8.CompatDxHelper -> com.android.tools.r8.c:
+    1:10:void run(com.android.tools.r8.D8Command,java.lang.Boolean):13:22 -> a
+    11:11:void ignoreDexInArchive(com.android.tools.r8.BaseCommand$Builder):26:26 -> a
+    12:12:com.android.tools.r8.D8Command$Builder com.android.tools.r8.D8Command$Builder.enableDesugarBackportStatics():160:160 -> a
+    12:12:void enableDesugarBackportStatics(com.android.tools.r8.D8Command$Builder):30 -> a
+com.android.tools.r8.CompatProguardCommandBuilder -> com.android.tools.r8.CompatProguardCommandBuilder:
+    1:1:void <init>():11:11 -> <init>
+    2:6:void <init>(boolean,com.android.tools.r8.DiagnosticsHandler):16:20 -> <init>
+    7:7:void <init>(boolean):24:24 -> <init>
+    8:13:void <init>(boolean,boolean):28:33 -> <init>
+com.android.tools.r8.CompilationFailedException -> com.android.tools.r8.CompilationFailedException:
+    1:1:void <init>():14:14 -> <init>
+    2:2:void <init>(java.lang.Throwable):18:18 -> <init>
+    3:3:void <init>(java.lang.String):22:22 -> <init>
+com.android.tools.r8.CompilationMode -> com.android.tools.r8.CompilationMode:
+    com.android.tools.r8.CompilationMode[] $VALUES -> a
+    1:3:void <clinit>():10:12 -> <clinit>
+    4:4:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>(java.lang.String,int):8:8 -> <init>
+    1:1:com.android.tools.r8.CompilationMode valueOf(java.lang.String):7:7 -> valueOf
+    1:1:com.android.tools.r8.CompilationMode[] values():7:7 -> values
+com.android.tools.r8.D8 -> com.android.tools.r8.D8:
+    1:3:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):84:86 -> a
+    4:15:void run(java.lang.String[]):109:120 -> a
+    4:15:void lambda$main$2(java.lang.String[]):133 -> a
+    16:17:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):138:139 -> a
+    18:18:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> a
+    18:18:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):139 -> a
+    19:19:void lambda$run$4(java.lang.String):203:203 -> a
+    20:20:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):251:251 -> a
+    21:21:void com.android.tools.r8.ir.conversion.IRConverter.<init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):378:378 -> a
+    21:21:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):251 -> a
+    22:22:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):252:252 -> a
+    1:1:void lambda$run$1(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):104:104 -> b
+    1:3:void lambda$runForTesting$3(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):143:145 -> c
+    1:31:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):152:182 -> d
+    32:32:void com.android.tools.r8.ir.conversion.IRConverter.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):374:374 -> d
+    32:32:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):182 -> d
+    33:87:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):183:237 -> d
+    88:93:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):232:237 -> d
+    1:5:void main(java.lang.String[]):129:133 -> main
+    1:5:void run(com.android.tools.r8.D8Command):77:81 -> run
+    6:6:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> run
+    6:6:void run(com.android.tools.r8.D8Command):80 -> run
+    7:10:void run(com.android.tools.r8.D8Command,java.util.concurrent.ExecutorService):99:102 -> run
+    11:11:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> run
+    11:11:void run(com.android.tools.r8.D8Command,java.util.concurrent.ExecutorService):101 -> run
+com.android.tools.r8.D8Command -> com.android.tools.r8.D8Command:
+    com.android.tools.r8.graph.DexItemFactory factory -> t
+    boolean intermediate -> p
+    com.android.tools.r8.DesugarGraphConsumer desugarGraphConsumer -> q
+    boolean $assertionsDisabled -> v
+    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> s
+    java.lang.String USAGE_MESSAGE -> u
+    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> r
+    1:201:void <clinit>():36:236 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.DesugarGraphConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,java.util.List,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.D8Command$1):37:37 -> <init>
+    2:2:void <init>(boolean,boolean,com.android.tools.r8.D8Command$1):37:37 -> <init>
+    3:19:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.DesugarGraphConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,java.util.List,com.android.tools.r8.graph.DexItemFactory):301:317 -> <init>
+    20:25:void <init>(boolean,boolean):321:326 -> <init>
+    1:1:com.android.tools.r8.D8Command$Builder builder(com.android.tools.r8.utils.AndroidApp):254:254 -> a
+    2:48:com.android.tools.r8.utils.InternalOptions getInternalOptions():331:377 -> a
+    1:1:com.android.tools.r8.D8Command$Builder builder():245:245 -> builder
+    2:2:com.android.tools.r8.D8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):249:249 -> builder
+    1:1:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):267:267 -> parse
+    2:2:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):281:281 -> parse
+com.android.tools.r8.D8Command$1 -> com.android.tools.r8.D8Command$a:
+com.android.tools.r8.D8Command$Builder -> com.android.tools.r8.D8Command$Builder:
+    com.android.tools.r8.DesugarGraphConsumer desugarGraphConsumer -> t
+    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> u
+    boolean intermediate -> s
+    1:1:void <init>(com.android.tools.r8.D8Command$1):69:69 -> <init>
+    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.D8Command$1):69:69 -> <init>
+    3:3:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.D8Command$1):69:69 -> <init>
+    4:4:void <init>():76:76 -> <init>
+    5:5:void <init>(com.android.tools.r8.DiagnosticsHandler):80:80 -> <init>
+    6:8:void <init>(com.android.tools.r8.DiagnosticsHandler):71:73 -> <init>
+    9:9:void <init>(com.android.tools.r8.utils.AndroidApp):84:84 -> <init>
+    10:12:void <init>(com.android.tools.r8.utils.AndroidApp):71:73 -> <init>
+    1:1:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.util.Collection):68:68 -> addClasspathFiles
+    2:2:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.nio.file.Path[]):68:68 -> addClasspathFiles
+    3:3:com.android.tools.r8.D8Command$Builder addClasspathFiles(java.nio.file.Path[]):101:101 -> addClasspathFiles
+    4:4:com.android.tools.r8.D8Command$Builder addClasspathFiles(java.util.Collection):109:109 -> addClasspathFiles
+    1:1:com.android.tools.r8.BaseCommand$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):68:68 -> addClasspathResourceProvider
+    2:2:com.android.tools.r8.D8Command$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):117:117 -> addClasspathResourceProvider
+    1:1:com.android.tools.r8.BaseCommand$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):68:68 -> addDexProgramData
+    2:2:com.android.tools.r8.D8Command$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):92:92 -> addDexProgramData
+    1:1:com.android.tools.r8.BaseCommand makeCommand():68:68 -> c
+    2:2:void lambda$addDexProgramData$0(byte[],com.android.tools.r8.origin.Origin):92:92 -> c
+    com.android.tools.r8.BaseCommand$Builder self() -> d
+    1:19:void validate():176:194 -> e
+    20:29:void validate():192:201 -> e
+    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():171:171 -> f
+    1:1:com.android.tools.r8.DesugarGraphConsumer getDesugarGraphConsumer():145:145 -> getDesugarGraphConsumer
+    1:17:com.android.tools.r8.D8Command makeCommand():206:222 -> k
+    18:18:com.android.tools.r8.utils.InternalOptions$DesugarState com.android.tools.r8.BaseCompilerCommand$Builder.getDesugaringState():445:445 -> k
+    18:18:com.android.tools.r8.D8Command makeCommand():223 -> k
+    19:27:com.android.tools.r8.D8Command makeCommand():223:231 -> k
+    28:28:com.android.tools.r8.D8Command makeCommand():207:207 -> k
+    1:1:com.android.tools.r8.D8Command$Builder setDesugarGraphConsumer(com.android.tools.r8.DesugarGraphConsumer):154:154 -> setDesugarGraphConsumer
+    1:1:com.android.tools.r8.D8Command$Builder setDesugaredLibraryKeepRuleConsumer(com.android.tools.r8.StringConsumer):137:137 -> setDesugaredLibraryKeepRuleConsumer
+    1:1:com.android.tools.r8.D8Command$Builder setIntermediate(boolean):126:126 -> setIntermediate
+com.android.tools.r8.D8Command$DefaultD8DiagnosticsHandler -> com.android.tools.r8.D8Command$b:
+    1:1:void <init>():46:46 -> <init>
+    2:2:void <init>(com.android.tools.r8.D8Command$1):46:46 -> <init>
+    1:6:void error(com.android.tools.r8.Diagnostic):50:55 -> error
+    7:13:void error(com.android.tools.r8.Diagnostic):53:59 -> error
+com.android.tools.r8.D8CommandParser -> com.android.tools.r8.d:
+    java.util.Set OPTIONS_WITH_PARAMETER -> d
+    java.lang.String USAGE_MESSAGE -> e
+    1:99:void <clinit>():27:125 -> <clinit>
+    100:124:void <clinit>():113:137 -> <clinit>
+    125:125:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):449:449 -> <clinit>
+    125:125:void <clinit>():112 -> <clinit>
+    126:126:void <clinit>():110:110 -> <clinit>
+    1:1:void <init>():25:25 -> <init>
+    1:1:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):150:150 -> a
+    2:2:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):164:164 -> a
+    3:43:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):173:213 -> a
+    44:56:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):211:223 -> a
+    57:60:boolean isArchive(java.nio.file.Path):42:45 -> a
+    57:60:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):226 -> a
+    61:64:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):227:230 -> a
+    65:68:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):229:232 -> a
+    69:110:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):224:265 -> a
+    111:111:boolean com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder.isEmpty():65:65 -> a
+    111:111:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):268 -> a
+    112:123:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):269:280 -> a
+com.android.tools.r8.D8CommandParser$1 -> com.android.tools.r8.d$a:
+com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider -> com.android.tools.r8.d$b:
+    java.util.List providers -> a
+    java.util.Set descriptors -> b
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.D8CommandParser$1):48:48 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):72:72 -> <init>
+    3:8:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):70:75 -> <init>
+    1:1:void lambda$new$0(com.android.tools.r8.ClassFileResourceProvider):75:75 -> a
+    2:2:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder builder():79:79 -> a
+    1:1:java.util.Set getClassDescriptors():84:84 -> getClassDescriptors
+    1:3:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):91:93 -> getProgramResource
+com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder -> com.android.tools.r8.d$b$a:
+    boolean empty -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder -> a
+    1:4:void <init>():49:52 -> <init>
+    1:1:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider build():55:55 -> a
+    2:3:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder addClassFileResourceProvider(com.android.tools.r8.ClassFileResourceProvider):59:60 -> a
+com.android.tools.r8.DataDirectoryResource -> com.android.tools.r8.DataDirectoryResource:
+    1:2:com.android.tools.r8.DataDirectoryResource fromFile(java.nio.file.Path,java.nio.file.Path):23:24 -> fromFile
+    1:1:com.android.tools.r8.DataDirectoryResource fromName(java.lang.String,com.android.tools.r8.origin.Origin):19:19 -> fromName
+    1:1:com.android.tools.r8.DataDirectoryResource fromZip(java.util.zip.ZipFile,java.util.zip.ZipEntry):28:28 -> fromZip
+com.android.tools.r8.DataDirectoryResource$1 -> com.android.tools.r8.DataDirectoryResource$a:
+com.android.tools.r8.DataDirectoryResource$LocalDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$b:
+    java.io.File file -> a
+    java.lang.String relativePath -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():75:75 -> <clinit>
+    1:1:void <init>(java.io.File,java.lang.String,com.android.tools.r8.DataDirectoryResource$1):75:75 -> <init>
+    2:6:void <init>(java.io.File,java.lang.String):79:83 -> <init>
+    1:1:java.lang.String getName():93:93 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():88:88 -> getOrigin
+com.android.tools.r8.DataDirectoryResource$NamedDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$c:
+    com.android.tools.r8.origin.Origin origin -> b
+    java.lang.String name -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:1:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.DataDirectoryResource$1):31:31 -> <init>
+    2:6:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):35:39 -> <init>
+    1:1:java.lang.String getName():49:49 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():44:44 -> getOrigin
+com.android.tools.r8.DataDirectoryResource$ZipDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$d:
+    java.util.zip.ZipFile zip -> a
+    boolean $assertionsDisabled -> c
+    java.util.zip.ZipEntry entry -> b
+    1:1:void <clinit>():53:53 -> <clinit>
+    1:1:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry,com.android.tools.r8.DataDirectoryResource$1):53:53 -> <init>
+    2:6:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry):57:61 -> <init>
+    1:1:java.lang.String getName():71:71 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():66:66 -> getOrigin
+com.android.tools.r8.DataEntryResource -> com.android.tools.r8.DataEntryResource:
+    1:1:com.android.tools.r8.DataEntryResource fromBytes(byte[],java.lang.String,com.android.tools.r8.origin.Origin):26:26 -> fromBytes
+    1:2:com.android.tools.r8.DataEntryResource fromFile(java.nio.file.Path,java.nio.file.Path):30:31 -> fromFile
+    1:1:com.android.tools.r8.DataEntryResource fromZip(java.util.zip.ZipFile,java.util.zip.ZipEntry):35:35 -> fromZip
+    1:1:com.android.tools.r8.DataEntryResource withName(java.lang.String):39:39 -> withName
+com.android.tools.r8.DataEntryResource$1 -> com.android.tools.r8.DataEntryResource$a:
+com.android.tools.r8.DataEntryResource$ByteDataEntryResource -> com.android.tools.r8.DataEntryResource$b:
+    byte[] bytes -> a
+    com.android.tools.r8.origin.Origin origin -> c
+    java.lang.String name -> b
+    1:4:void <init>(byte[],java.lang.String,com.android.tools.r8.origin.Origin):48:51 -> <init>
+    1:1:java.io.InputStream getByteStream():56:56 -> getByteStream
+    1:1:java.lang.String getName():61:61 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():66:66 -> getOrigin
+com.android.tools.r8.DataEntryResource$LocalDataEntryResource -> com.android.tools.r8.DataEntryResource$c:
+    java.io.File file -> a
+    java.lang.String relativePath -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():101:101 -> <clinit>
+    1:1:void <init>(java.io.File,java.lang.String,com.android.tools.r8.DataEntryResource$1):101:101 -> <init>
+    2:6:void <init>(java.io.File,java.lang.String):105:109 -> <init>
+    1:3:java.io.InputStream getByteStream():125:127 -> getByteStream
+    1:1:java.lang.String getName():119:119 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():114:114 -> getOrigin
+com.android.tools.r8.DataEntryResource$NestedDataEntryResource -> com.android.tools.r8.DataEntryResource$d:
+    com.android.tools.r8.origin.Origin origin -> b
+    com.android.tools.r8.DataEntryResource resource -> c
+    java.lang.String name -> a
+    1:4:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.DataEntryResource):141:144 -> <init>
+    1:1:java.io.InputStream getByteStream():149:149 -> getByteStream
+    1:1:java.lang.String getName():154:154 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():159:159 -> getOrigin
+com.android.tools.r8.DataEntryResource$ZipDataEntryResource -> com.android.tools.r8.DataEntryResource$e:
+    java.util.zip.ZipFile zip -> a
+    boolean $assertionsDisabled -> c
+    java.util.zip.ZipEntry entry -> b
+    1:1:void <clinit>():70:70 -> <clinit>
+    1:1:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry,com.android.tools.r8.DataEntryResource$1):70:70 -> <init>
+    2:6:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry):74:78 -> <init>
+    1:3:java.io.InputStream getByteStream():94:96 -> getByteStream
+    1:1:java.lang.String getName():88:88 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():83:83 -> getOrigin
+com.android.tools.r8.DexFileMergerHelper -> com.android.tools.r8.e:
+    java.util.Map inputOrdering -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:2:void <init>(java.util.Map):33:34 -> <init>
+    1:2:void run(com.android.tools.r8.D8Command,java.lang.Boolean,java.util.Map):63:64 -> a
+    3:3:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> a
+    3:3:void run(com.android.tools.r8.D8Command,java.lang.Boolean,java.util.Map):64 -> a
+    4:4:void lambda$run$0(com.android.tools.r8.D8Command,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):66:66 -> a
+    5:22:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):75:92 -> a
+    23:23:com.android.tools.r8.graph.DexApplication com.android.tools.r8.D8.optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):251:251 -> a
+    23:23:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):93 -> a
+    24:24:void com.android.tools.r8.ir.conversion.IRConverter.<init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):378:378 -> a
+    24:24:com.android.tools.r8.graph.DexApplication com.android.tools.r8.D8.optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):251 -> a
+    24:24:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):93 -> a
+    25:25:com.android.tools.r8.graph.DexApplication com.android.tools.r8.D8.optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):252:252 -> a
+    25:25:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):93 -> a
+    26:46:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):95:115 -> a
+    47:52:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):110:115 -> a
+    53:55:void runD8ForTesting(com.android.tools.r8.D8Command,boolean):121:123 -> a
+    56:56:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    56:56:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):39 -> a
+    57:57:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):39:39 -> a
+    58:58:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    58:58:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):40 -> a
+    59:76:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):40:57 -> a
+    77:88:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):44:55 -> a
+com.android.tools.r8.DexFilePerClassFileConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer:
+    1:1:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):62:62 -> accept
+    2:2:void accept(java.lang.String,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):72:72 -> accept
+    1:1:com.android.tools.r8.DexFilePerClassFileConsumer emptyConsumer():91:91 -> emptyConsumer
+com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer:
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
+    boolean consumeDataResources -> d
+    1:1:void <clinit>():140:140 -> <clinit>
+    1:1:void <init>(java.nio.file.Path):152:152 -> <init>
+    2:2:void <init>(java.nio.file.Path,boolean):156:156 -> <init>
+    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer):160:160 -> <init>
+    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):165:170 -> <init>
+    1:1:java.lang.String access$100(java.lang.String):141:141 -> a
+    2:2:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):226:226 -> a
+    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):185:186 -> accept
+    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):191:191 -> accept
+    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):196:196 -> accept
+    1:2:java.lang.String getDexFileName(java.lang.String):147:148 -> b
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):201:202 -> finished
+    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():176:176 -> getDataResourceConsumer
+    1:1:java.nio.file.Path internalGetOutputPath():207:207 -> internalGetOutputPath
+    1:12:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):215:226 -> writeResources
+    13:20:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):218:225 -> writeResources
+    21:30:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):217:226 -> writeResources
+com.android.tools.r8.DexFilePerClassFileConsumer$DirectoryConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$DirectoryConsumer:
+    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():231:231 -> <clinit>
+    1:1:void <init>(java.nio.file.Path):243:243 -> <init>
+    2:2:void <init>(java.nio.file.Path,boolean):247:247 -> <init>
+    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer):251:251 -> <init>
+    4:5:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):256:257 -> <init>
+    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):267:268 -> accept
+    3:4:java.lang.String getDexFileName(java.lang.String):238:239 -> accept
+    3:4:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):268 -> accept
+    5:5:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):268:268 -> accept
+    6:6:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):273:273 -> accept
+    7:7:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):278:278 -> accept
+    1:1:void finished(com.android.tools.r8.DiagnosticsHandler):282:282 -> finished
+    1:1:java.nio.file.Path internalGetOutputPath():287:287 -> internalGetOutputPath
+    1:3:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):295:297 -> writeResources
+    4:4:java.nio.file.Path getTargetDexFile(java.nio.file.Path,java.lang.String):305:305 -> writeResources
+    4:4:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):298 -> writeResources
+    5:5:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):299:299 -> writeResources
+    6:7:void writeFile(byte[],java.nio.file.Path):309:310 -> writeResources
+    6:7:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):299 -> writeResources
+    8:8:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):301:301 -> writeResources
+    9:15:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):295:301 -> writeResources
+com.android.tools.r8.DexFilePerClassFileConsumer$ForwardingConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$ForwardingConsumer:
+    com.android.tools.r8.DexFilePerClassFileConsumer EMPTY_CONSUMER -> b
+    com.android.tools.r8.DexFilePerClassFileConsumer consumer -> a
+    1:1:void <clinit>():98:98 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.DexFilePerClassFileConsumer):102:103 -> <init>
+    1:1:com.android.tools.r8.DexFilePerClassFileConsumer access$000():96:96 -> a
+    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):117:118 -> accept
+    1:4:boolean combineSyntheticClassesWithPrimaryClass():124:127 -> combineSyntheticClassesWithPrimaryClass
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):133:134 -> finished
+    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():108:108 -> getDataResourceConsumer
+com.android.tools.r8.DexIndexedConsumer -> com.android.tools.r8.DexIndexedConsumer:
+    1:1:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):62:62 -> accept
+    2:2:void accept(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):69:69 -> accept
+    1:1:com.android.tools.r8.DexIndexedConsumer emptyConsumer():75:75 -> emptyConsumer
+com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer -> com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer:
+    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
+    boolean consumeDataResources -> d
+    1:1:void <init>(java.nio.file.Path):129:129 -> <init>
+    2:2:void <init>(java.nio.file.Path,boolean):133:133 -> <init>
+    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer):137:137 -> <init>
+    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):141:146 -> <init>
+    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):201:201 -> a
+    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):162:163 -> accept
+    3:3:java.lang.String com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer.getDexFileName(int):97:97 -> accept
+    3:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):163 -> accept
+    4:4:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):163:163 -> accept
+    5:5:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):168:168 -> accept
+    6:6:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):173:173 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):178:179 -> finished
+    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():156:156 -> getDataResourceConsumer
+    1:1:com.android.tools.r8.origin.Origin getOrigin():151:151 -> getOrigin
+    1:1:java.nio.file.Path internalGetOutputPath():206:206 -> internalGetOutputPath
+    1:17:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):185:201 -> writeResources
+    18:30:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):188:200 -> writeResources
+    31:45:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):187:201 -> writeResources
+com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer -> com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer:
+    java.nio.file.Path directory -> c
+    com.android.tools.r8.utils.OutputBuilder outputBuilder -> e
+    boolean consumeDataResouces -> f
+    boolean preparedDirectory -> d
+    1:1:void <init>(java.nio.file.Path):219:219 -> <init>
+    2:2:void <init>(java.nio.file.Path,boolean):223:223 -> <init>
+    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer):227:227 -> <init>
+    4:4:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):232:232 -> <init>
+    5:26:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):214:235 -> <init>
+    1:8:void deleteClassesDexFiles(java.nio.file.Path):280:280 -> a
+    14:14:void deleteClassesDexFiles(java.nio.file.Path):286:286 -> a
+    15:15:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):286:286 -> a
+    1:1:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):246:246 -> accept
+    2:6:void prepareDirectory():272:276 -> accept
+    2:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):248 -> accept
+    7:9:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):250:252 -> accept
+    10:10:java.lang.String com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer.getDexFileName(int):97:97 -> accept
+    10:10:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):252 -> accept
+    11:11:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):252:252 -> accept
+    12:12:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):257:257 -> accept
+    13:13:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):262:262 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):267:268 -> finished
+    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():240:240 -> getDataResourceConsumer
+    1:1:java.nio.file.Path internalGetOutputPath():312:312 -> internalGetOutputPath
+    1:4:void writeResources(java.nio.file.Path,java.util.List):291:294 -> writeResources
+    5:5:java.nio.file.Path getTargetDexFile(java.nio.file.Path,int):302:302 -> writeResources
+    5:5:void writeResources(java.nio.file.Path,java.util.List):295 -> writeResources
+    6:6:void writeResources(java.nio.file.Path,java.util.List):296:296 -> writeResources
+    7:8:void writeFile(byte[],java.nio.file.Path):306:307 -> writeResources
+    7:8:void writeResources(java.nio.file.Path,java.util.List):296 -> writeResources
+    9:9:void writeResources(java.nio.file.Path,java.util.List):298:298 -> writeResources
+    10:16:void writeResources(java.nio.file.Path,java.util.List):292:298 -> writeResources
+com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer -> com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer:
+    com.android.tools.r8.DexIndexedConsumer EMPTY_CONSUMER -> b
+    com.android.tools.r8.DexIndexedConsumer consumer -> a
+    1:1:void <clinit>():82:82 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.DexIndexedConsumer):86:87 -> <init>
+    1:1:com.android.tools.r8.DexIndexedConsumer access$000():80:80 -> a
+    2:2:java.lang.String getDefaultDexFileName(int):93:93 -> a
+    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):108:109 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):115:116 -> finished
+    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():102:102 -> getDataResourceConsumer
+com.android.tools.r8.DexSplitterHelper -> com.android.tools.r8.DexSplitterHelper:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():38:38 -> <clinit>
+    1:1:void <init>():39:39 -> <init>
+    1:1:void lambda$run$0(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):48:48 -> a
+    2:16:java.util.Map getDistribution(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.FeatureClassMapping,com.android.tools.r8.naming.ClassNameMapper):127:141 -> a
+    1:4:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String):44:47 -> run
+    5:9:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String):46:50 -> run
+    10:69:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):61:120 -> run
+    70:72:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):118:120 -> run
+    73:77:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):116:120 -> run
+    1:3:void runD8ForTesting(com.android.tools.r8.D8Command,boolean):148:150 -> runD8ForTesting
+com.android.tools.r8.DiagnosticsHandler -> com.android.tools.r8.DiagnosticsHandler:
+    1:10:void error(com.android.tools.r8.Diagnostic):23:32 -> error
+    1:4:void info(com.android.tools.r8.Diagnostic):55:58 -> info
+    1:6:void warning(com.android.tools.r8.Diagnostic):41:46 -> warning
+com.android.tools.r8.DirectoryClassFileProvider -> com.android.tools.r8.DirectoryClassFileProvider:
+    java.nio.file.Path root -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:2:void <init>(java.nio.file.Path):31:32 -> <init>
+    1:11:void collectClassDescriptors(java.nio.file.Path,java.util.Set):43:53 -> a
+    1:1:com.android.tools.r8.ClassFileResourceProvider fromDirectory(java.nio.file.Path):28:28 -> fromDirectory
+    1:1:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> getClassDescriptors
+    1:1:java.util.Set getClassDescriptors():37 -> getClassDescriptors
+    2:2:java.util.Set getClassDescriptors():38:38 -> getClassDescriptors
+    1:6:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):63:68 -> getProgramResource
+    1:1:java.nio.file.Path getRoot():73:73 -> getRoot
+com.android.tools.r8.Disassemble -> com.android.tools.r8.f:
+    1:18:void disassemble(com.android.tools.r8.Disassemble$DisassembleCommand):219:236 -> a
+com.android.tools.r8.Disassemble$1 -> com.android.tools.r8.f$a:
+com.android.tools.r8.Disassemble$DisassembleCommand -> com.android.tools.r8.f$b:
+    java.nio.file.Path outputPath -> e
+    boolean useIr -> i
+    com.android.tools.r8.StringResource proguardMap -> f
+    boolean allInfo -> g
+    boolean useSmali -> h
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,java.nio.file.Path,com.android.tools.r8.StringResource,boolean,boolean,boolean,com.android.tools.r8.Disassemble$1):26:26 -> <init>
+    2:2:void <init>(boolean,boolean,com.android.tools.r8.Disassemble$1):26:26 -> <init>
+    3:8:void <init>(com.android.tools.r8.utils.AndroidApp,java.nio.file.Path,com.android.tools.r8.StringResource,boolean,boolean,boolean):165:170 -> <init>
+    9:14:void <init>(boolean,boolean):174:179 -> <init>
+    1:1:com.android.tools.r8.StringResource access$200(com.android.tools.r8.Disassemble$DisassembleCommand):26:26 -> a
+    2:3:com.android.tools.r8.utils.InternalOptions getInternalOptions():196:197 -> a
+    1:1:boolean access$300(com.android.tools.r8.Disassemble$DisassembleCommand):26:26 -> b
+    2:2:com.android.tools.r8.Disassemble$DisassembleCommand$Builder builder():107:107 -> b
+    1:1:java.nio.file.Path getOutputPath():183:183 -> c
+    1:1:boolean useIr():191:191 -> d
+    1:1:boolean useSmali():187:187 -> e
+com.android.tools.r8.Disassemble$DisassembleCommand$Builder -> com.android.tools.r8.f$b$a:
+    boolean allInfo -> i
+    java.nio.file.Path proguardMapFile -> g
+    java.nio.file.Path outputPath -> f
+    boolean useSmali -> h
+    1:6:void <init>():31:36 -> <init>
+    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setOutputPath(java.nio.file.Path):54:54 -> c
+    2:2:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setUseSmali(boolean):64:64 -> c
+    3:7:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():76:80 -> c
+    3:7:com.android.tools.r8.BaseCommand makeCommand():31 -> c
+    8:8:java.nio.file.Path getOutputPath():50:50 -> c
+    8:8:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():81 -> c
+    8:8:com.android.tools.r8.BaseCommand makeCommand():31 -> c
+    9:9:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():82:82 -> c
+    9:9:com.android.tools.r8.BaseCommand makeCommand():31 -> c
+    10:10:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():77:77 -> c
+    10:10:com.android.tools.r8.BaseCommand makeCommand():31 -> c
+    com.android.tools.r8.BaseCommand$Builder self() -> d
+    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setProguardMapFile(java.nio.file.Path):45:45 -> d
+com.android.tools.r8.ExtractMarker -> com.android.tools.r8.ExtractMarker:
+    1:1:void <init>():30:30 -> <init>
+    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):61:61 -> a
+    2:12:void addDexResources(com.android.tools.r8.utils.AndroidApp$Builder,java.nio.file.Path):81:91 -> a
+    13:23:void addDexResources(com.android.tools.r8.utils.AndroidApp$Builder,java.nio.file.Path):83:93 -> a
+    24:29:java.util.Collection extractMarker(com.android.tools.r8.utils.AndroidApp):99:104 -> a
+    1:8:int extractDexSize(java.nio.file.Path):54:61 -> extractDexSize
+    9:11:int extractDexSize(java.nio.file.Path):59:61 -> extractDexSize
+    1:2:java.util.Collection extractMarkerFromClassProgramData(byte[]):75:76 -> extractMarkerFromClassProgramData
+    1:3:java.util.Collection extractMarkerFromDexFile(java.nio.file.Path):48:50 -> extractMarkerFromDexFile
+    1:2:java.util.Collection extractMarkerFromDexProgramData(byte[]):69:70 -> extractMarkerFromDexProgramData
+    1:55:void main(java.lang.String[]):109:163 -> main
+    56:58:void main(java.lang.String[]):127:127 -> main
+    97:101:void main(java.lang.String[]):166:170 -> main
+com.android.tools.r8.ExtractMarker$VdexOrigin -> com.android.tools.r8.ExtractMarker$a:
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.origin.Origin,int):36:37 -> <init>
+    1:1:java.lang.String part():42:42 -> part
+com.android.tools.r8.ExtractMarkerCommand -> com.android.tools.r8.h:
+    java.lang.String USAGE_MESSAGE -> g
+    java.util.List programFiles -> f
+    boolean csv -> e
+    boolean printHelp -> a
+    boolean includeOther -> b
+    boolean verbose -> c
+    boolean summary -> d
+    1:1:void <clinit>():67:67 -> <clinit>
+    1:1:void <init>(boolean,com.android.tools.r8.ExtractMarkerCommand$1):14:14 -> <init>
+    2:2:void <init>(boolean,boolean,boolean,boolean,java.util.List,com.android.tools.r8.ExtractMarkerCommand$1):14:14 -> <init>
+    3:9:void <init>(boolean,boolean,boolean,boolean,java.util.List):118:124 -> <init>
+    10:16:void <init>(boolean):127:133 -> <init>
+    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder builder():77:77 -> a
+    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):81 -> a
+    2:20:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):87:105 -> a
+    2:20:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
+    21:21:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):103:103 -> a
+    21:21:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
+    22:22:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String) -> a
+    22:22:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):103 -> a
+    22:22:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
+    23:23:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):103:103 -> a
+    23:23:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
+    24:24:boolean getCSV():157:157 -> a
+    1:1:boolean getIncludeOther():145:145 -> b
+    1:1:java.util.List getProgramFiles():141:141 -> c
+    1:1:boolean getSummary():153:153 -> d
+    1:1:boolean getVerbose():149:149 -> e
+    1:1:boolean isPrintHelp():137:137 -> f
+com.android.tools.r8.ExtractMarkerCommand$1 -> com.android.tools.r8.g:
+com.android.tools.r8.ExtractMarkerCommand$Builder -> com.android.tools.r8.h$a:
+    java.util.List programFiles -> f
+    boolean csv -> e
+    boolean printHelp -> a
+    boolean includeOther -> b
+    boolean verbose -> c
+    boolean summary -> d
+    1:7:void <init>():16:22 -> <init>
+    1:1:boolean isPrintHelp():30:30 -> a
+    1:1:com.android.tools.r8.ExtractMarkerCommand build():60 -> a
+    2:2:com.android.tools.r8.ExtractMarkerCommand build():61:61 -> a
+    3:3:boolean isPrintHelp():30:30 -> a
+    3:3:com.android.tools.r8.ExtractMarkerCommand build():61 -> a
+    4:6:com.android.tools.r8.ExtractMarkerCommand build():61:63 -> a
+    7:7:com.android.tools.r8.ExtractMarkerCommand$Builder setCSV(boolean):49:49 -> a
+    8:8:com.android.tools.r8.ExtractMarkerCommand$Builder addProgramFile(java.nio.file.Path):54:54 -> a
+    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setIncludeOther(boolean):34:34 -> b
+    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setPrintHelp(boolean):25:25 -> c
+    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setSummary(boolean):44:44 -> d
+    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setVerbose(boolean):39:39 -> e
+com.android.tools.r8.FeatureSplit -> com.android.tools.r8.FeatureSplit:
+    java.util.List programResourceProviders -> b
+    com.android.tools.r8.ProgramConsumer programConsumer -> a
+    1:1:void <init>(com.android.tools.r8.ProgramConsumer,java.util.List,com.android.tools.r8.FeatureSplit$1):31:31 -> <init>
+    2:4:void <init>(com.android.tools.r8.ProgramConsumer,java.util.List):36:38 -> <init>
+    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():46:46 -> getProgramConsumer
+    1:1:java.util.List getProgramResourceProviders():42:42 -> getProgramResourceProviders
+com.android.tools.r8.FeatureSplit$1 -> com.android.tools.r8.FeatureSplit$a:
+com.android.tools.r8.FeatureSplit$Builder -> com.android.tools.r8.FeatureSplit$Builder:
+    java.util.List programResourceProviders -> b
+    com.android.tools.r8.ProgramConsumer programConsumer -> a
+    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.FeatureSplit$1):59:59 -> <init>
+    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):64:64 -> <init>
+    3:3:void <init>(com.android.tools.r8.DiagnosticsHandler):61:61 -> <init>
+    1:1:com.android.tools.r8.FeatureSplit$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):87:87 -> addProgramResourceProvider
+    1:1:com.android.tools.r8.FeatureSplit build():93:93 -> build
+    1:1:com.android.tools.r8.FeatureSplit$Builder setProgramConsumer(com.android.tools.r8.ProgramConsumer):77:77 -> setProgramConsumer
+com.android.tools.r8.GenerateLintFiles -> com.android.tools.r8.i:
+    com.android.tools.r8.utils.InternalOptions options -> c
+    java.util.Set parallelMethods -> f
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration desugaredLibraryConfiguration -> d
+    com.android.tools.r8.utils.Reporter reporter -> b
+    java.lang.String outputDirectory -> e
+    com.android.tools.r8.graph.DexItemFactory factory -> a
+    1:1:void <clinit>():60:60 -> <clinit>
+    1:1:void <init>(java.lang.String,java.lang.String):73:73 -> <init>
+    2:22:void <init>(java.lang.String,java.lang.String):64:84 -> <init>
+    23:35:void <init>(java.lang.String,java.lang.String):81:93 -> <init>
+    36:42:void <init>(java.lang.String,java.lang.String):92:98 -> <init>
+    43:45:void <init>(java.lang.String,java.lang.String):97:99 -> <init>
+    1:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration readDesugaredLibraryConfiguration(java.lang.String):110:112 -> a
+    4:14:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):128:138 -> a
+    15:22:com.android.tools.r8.graph.CfCode buildEmptyThrowingCfCode(com.android.tools.r8.graph.DexMethod):116:123 -> a
+    15:22:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):138 -> a
+    23:28:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):140:145 -> a
+    29:29:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int):224:224 -> a
+    29:29:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):145 -> a
+    30:63:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):148:181 -> a
+    64:64:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):202:202 -> a
+    65:66:java.nio.file.Path getAndroidJarPath(com.android.tools.r8.utils.AndroidApiLevel):104:105 -> a
+    65:66:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):202 -> a
+    67:124:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):202:259 -> a
+    125:125:java.util.List lambda$collectSupportedMethods$0(com.android.tools.r8.graph.DexClass):217:217 -> a
+    126:129:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):270:273 -> a
+    130:130:java.lang.String lintBaseFileName(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel):264:264 -> a
+    130:130:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):276 -> a
+    131:131:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):276:276 -> a
+    132:132:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):273:273 -> a
+    133:159:void writeLintFiles(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.GenerateLintFiles$SupportedMethods):286:312 -> a
+    160:179:void writeLintFiles(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.GenerateLintFiles$SupportedMethods):311:330 -> a
+    180:184:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):291:295 -> a
+    185:284:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():0:99 -> a
+    185:284:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):299 -> a
+    285:285:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):299:299 -> a
+    286:296:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):295:305 -> a
+    297:310:void generateLintFiles(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate,java.util.function.BiPredicate):338:351 -> a
+    311:311:boolean lambda$generateLintFiles$4(java.util.function.BiPredicate,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.graph.DexEncodedMethod):348:348 -> a
+    312:317:void run():356:361 -> a
+    318:318:void run():360:360 -> a
+    319:319:boolean lambda$run$5(com.android.tools.r8.utils.AndroidApiLevel):362:362 -> a
+    320:325:boolean lambda$run$6(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.graph.DexEncodedMethod):364:369 -> a
+    326:330:void main(java.lang.String[]):375:379 -> a
+    1:1:java.util.List lambda$collectSupportedMethods$1(com.android.tools.r8.graph.DexClass):239:239 -> b
+    1:1:java.util.List lambda$collectSupportedMethods$2(com.android.tools.r8.graph.DexClass):253:253 -> c
+com.android.tools.r8.GenerateLintFiles$SupportedMethods -> com.android.tools.r8.i$a:
+    java.util.Map supportedMethods -> b
+    java.util.Set classesWithAllMethodsSupported -> a
+    1:3:void <init>(java.util.Set,java.util.Map):190:192 -> <init>
+com.android.tools.r8.GenerateMainDexList -> com.android.tools.r8.GenerateMainDexList:
+    com.android.tools.r8.utils.Timing timing -> a
+    com.android.tools.r8.utils.InternalOptions options -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():37:37 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):42:42 -> <init>
+    2:6:void <init>(com.android.tools.r8.utils.InternalOptions):39:43 -> <init>
+    1:60:java.util.List run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):49:108 -> a
+    61:61:java.lang.String lambda$run$0(com.android.tools.r8.graph.DexType):74:74 -> a
+    62:66:java.lang.Iterable lambda$run$2(com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.graph.AppView):86:90 -> a
+    67:69:void lambda$run$3(com.android.tools.r8.utils.Box,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):156:158 -> a
+    70:70:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    70:70:void lambda$run$1(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):92 -> a
+    71:72:void lambda$run$1(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):93:94 -> a
+    1:13:void main(java.lang.String[]):165:177 -> main
+    1:5:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand):126:130 -> run
+    6:10:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):149:153 -> run
+    11:11:void com.android.tools.r8.utils.ExceptionUtils.withMainDexListHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):60:60 -> run
+    11:11:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):152 -> run
+    12:12:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):161:161 -> run
+com.android.tools.r8.GenerateMainDexListCommand -> com.android.tools.r8.GenerateMainDexListCommand:
+    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> g
+    java.lang.String USAGE_MESSAGE -> j
+    java.util.List mainDexKeepRules -> e
+    com.android.tools.r8.utils.Reporter reporter -> i
+    com.android.tools.r8.graph.DexItemFactory factory -> h
+    com.android.tools.r8.StringConsumer mainDexListConsumer -> f
+    1:1:void <clinit>():137:137 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApp,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.utils.Reporter,com.android.tools.r8.GenerateMainDexListCommand$1):26:26 -> <init>
+    2:2:void <init>(boolean,boolean,com.android.tools.r8.GenerateMainDexListCommand$1):26:26 -> <init>
+    3:8:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApp,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.utils.Reporter):206:211 -> <init>
+    9:14:void <init>(boolean,boolean):215:220 -> <init>
+    1:8:com.android.tools.r8.utils.InternalOptions getInternalOptions():225:232 -> a
+    1:1:com.android.tools.r8.utils.Reporter getReporter():169:169 -> b
+    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder builder():151:151 -> builder
+    2:2:com.android.tools.r8.GenerateMainDexListCommand$Builder builder(com.android.tools.r8.DiagnosticsHandler):155:155 -> builder
+    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():165:165 -> getMainDexListConsumer
+    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder parse(java.lang.String[]):159:159 -> parse
+    2:23:void parse(java.lang.String[],com.android.tools.r8.GenerateMainDexListCommand$Builder):173:194 -> parse
+    2:23:com.android.tools.r8.GenerateMainDexListCommand$Builder parse(java.lang.String[]):160 -> parse
+com.android.tools.r8.GenerateMainDexListCommand$1 -> com.android.tools.r8.GenerateMainDexListCommand$a:
+com.android.tools.r8.GenerateMainDexListCommand$Builder -> com.android.tools.r8.GenerateMainDexListCommand$Builder:
+    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> i
+    com.android.tools.r8.graph.DexItemFactory factory -> f
+    com.android.tools.r8.StringConsumer mainDexListConsumer -> h
+    java.util.List mainDexRules -> g
+    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.GenerateMainDexListCommand$1):35:35 -> <init>
+    2:2:void <init>(com.android.tools.r8.GenerateMainDexListCommand$1):35:35 -> <init>
+    3:3:void <init>():42:42 -> <init>
+    4:7:void <init>():37:40 -> <init>
+    8:8:void <init>(com.android.tools.r8.DiagnosticsHandler):46:46 -> <init>
+    9:12:void <init>(com.android.tools.r8.DiagnosticsHandler):37:40 -> <init>
+    1:2:void lambda$addMainDexRulesFiles$1(java.util.List):72:73 -> a
+    3:5:void lambda$addMainDexRules$2(java.util.List,com.android.tools.r8.origin.Origin):83:83 -> a
+    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRules(java.util.List,com.android.tools.r8.origin.Origin):83:83 -> addMainDexRules
+    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRulesFiles(java.nio.file.Path[]):59:59 -> addMainDexRulesFiles
+    2:2:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRulesFiles(java.util.List):71:71 -> addMainDexRulesFiles
+    1:2:void lambda$addMainDexRulesFiles$0(java.nio.file.Path[]):60:61 -> c
+    3:23:com.android.tools.r8.GenerateMainDexListCommand makeCommand():107:127 -> c
+    3:23:com.android.tools.r8.BaseCommand makeCommand():34 -> c
+    24:24:com.android.tools.r8.GenerateMainDexListCommand makeCommand():108:108 -> c
+    24:24:com.android.tools.r8.BaseCommand makeCommand():34 -> c
+    com.android.tools.r8.BaseCommand$Builder self() -> d
+    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):132:132 -> setMainDexKeptGraphConsumer
+    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexListConsumer(com.android.tools.r8.StringConsumer):100:100 -> setMainDexListConsumer
+    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexListOutputPath(java.nio.file.Path):94:94 -> setMainDexListOutputPath
+com.android.tools.r8.InternalProgramOutputPathConsumer -> com.android.tools.r8.j:
+com.android.tools.r8.JdkClassFileProvider -> com.android.tools.r8.JdkClassFileProvider:
+    com.android.tools.r8.origin.Origin origin -> a
+    java.util.Map descriptorToModule -> c
+    boolean $assertionsDisabled -> f
+    java.nio.file.FileSystem jrtFs -> e
+    java.util.Set descriptors -> b
+    java.net.URLClassLoader jrtFsJarLoader -> d
+    1:1:void <clinit>():37:37 -> <clinit>
+    1:1:void <init>():100:100 -> <init>
+    2:64:void <init>():40:102 -> <init>
+    65:65:void <init>(java.nio.file.Path):111:111 -> <init>
+    66:144:void <init>(java.nio.file.Path):40:118 -> <init>
+    1:3:void collectDescriptors(java.nio.file.FileSystem):122:124 -> a
+    4:8:void lambda$collectDescriptors$0(java.nio.file.Path):126:130 -> a
+    9:11:void lambda$collectDescriptors$0(java.nio.file.Path):129:131 -> a
+    1:3:void close():169:171 -> close
+    1:2:void finalize():163:164 -> finalize
+    1:1:com.android.tools.r8.ClassFileResourceProvider fromJavaRuntimeJar(java.nio.file.Path):97:97 -> fromJavaRuntimeJar
+    1:15:com.android.tools.r8.ClassFileResourceProvider fromJdkHome(java.nio.file.Path):79:93 -> fromJdkHome
+    1:1:com.android.tools.r8.ClassFileResourceProvider fromSystemJdk():52:52 -> fromSystemJdk
+    1:5:com.android.tools.r8.ClassFileResourceProvider fromSystemModulesJdk(java.nio.file.Path):62:66 -> fromSystemModulesJdk
+    6:6:com.android.tools.r8.ClassFileResourceProvider fromSystemModulesJdk(java.nio.file.Path):64:64 -> fromSystemModulesJdk
+    1:1:java.util.Set getClassDescriptors():138:138 -> getClassDescriptors
+    1:12:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):143:154 -> getProgramResource
+    13:13:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):151:151 -> getProgramResource
+    14:19:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):150:155 -> getProgramResource
+    20:30:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):147:157 -> getProgramResource
+    31:31:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> getProgramResource
+    31:31:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):157 -> getProgramResource
+    32:32:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):157:157 -> getProgramResource
+com.android.tools.r8.L8 -> com.android.tools.r8.L8:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():36:36 -> <clinit>
+    1:1:void <init>():37:37 -> <init>
+    1:2:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,boolean,com.android.tools.r8.D8Command,com.android.tools.r8.R8Command):77:78 -> a
+    3:3:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,boolean,com.android.tools.r8.D8Command,com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):90:90 -> a
+    4:4:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> a
+    4:4:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,boolean,com.android.tools.r8.D8Command,com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):90 -> a
+    5:10:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,boolean,com.android.tools.r8.D8Command,com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):96:101 -> a
+    11:41:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):107:137 -> a
+    11:41:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):93 -> a
+    42:42:com.android.tools.r8.ClassFileConsumer com.android.tools.r8.utils.InternalOptions.getClassFileConsumer():367:367 -> a
+    42:42:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):139 -> a
+    42:42:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):93 -> a
+    43:51:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):139:147 -> a
+    43:51:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):93 -> a
+    52:57:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):142:147 -> a
+    52:57:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):93 -> a
+    58:59:void run(java.lang.String[]):153:154 -> a
+    58:59:void lambda$main$1(java.lang.String[]):176 -> a
+    60:60:void com.android.tools.r8.utils.SelfRetraceTest.test():25:25 -> a
+    60:60:void run(java.lang.String[]):155 -> a
+    60:60:void lambda$main$1(java.lang.String[]):176 -> a
+    61:61:void run(java.lang.String[]):156:156 -> a
+    61:61:void lambda$main$1(java.lang.String[]):176 -> a
+    62:62:void com.android.tools.r8.utils.SelfRetraceTest.foo3():13:13 -> a
+    62:62:void com.android.tools.r8.utils.SelfRetraceTest.foo2():17 -> a
+    62:62:void com.android.tools.r8.utils.SelfRetraceTest.foo1():21 -> a
+    62:62:void com.android.tools.r8.utils.SelfRetraceTest.test():26 -> a
+    62:62:void run(java.lang.String[]):155 -> a
+    62:62:void lambda$main$1(java.lang.String[]):176 -> a
+    63:67:void run(java.lang.String[]):159:163 -> a
+    63:67:void lambda$main$1(java.lang.String[]):176 -> a
+    1:5:void main(java.lang.String[]):172:176 -> main
+    1:5:void run(com.android.tools.r8.L8Command):46:50 -> run
+    6:6:void run(com.android.tools.r8.L8Command):45:45 -> run
+    7:11:void run(com.android.tools.r8.L8Command,java.util.concurrent.ExecutorService):62:66 -> run
+    12:12:void run(com.android.tools.r8.L8Command,java.util.concurrent.ExecutorService):61:61 -> run
+com.android.tools.r8.L8Command -> com.android.tools.r8.L8Command:
+    com.android.tools.r8.graph.DexItemFactory factory -> s
+    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> r
+    boolean $assertionsDisabled -> u
+    com.android.tools.r8.D8Command d8Command -> p
+    java.lang.String USAGE_MESSAGE -> t
+    com.android.tools.r8.R8Command r8Command -> q
+    1:4:void <clinit>():26:29 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.R8Command,com.android.tools.r8.D8Command,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,java.util.List,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.L8Command$1):27:27 -> <init>
+    2:2:void <init>(boolean,boolean,com.android.tools.r8.L8Command$1):27:27 -> <init>
+    3:18:void <init>(com.android.tools.r8.R8Command,com.android.tools.r8.D8Command,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,java.util.List,com.android.tools.r8.graph.DexItemFactory):87:102 -> <init>
+    19:23:void <init>(boolean,boolean):106:110 -> <init>
+    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
+    1:43:com.android.tools.r8.utils.InternalOptions getInternalOptions():139:181 -> a
+    1:1:com.android.tools.r8.L8Command$Builder builder():130:130 -> builder
+    2:2:com.android.tools.r8.L8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):134:134 -> builder
+    1:1:com.android.tools.r8.D8Command getD8Command():41:41 -> d
+    1:1:com.android.tools.r8.R8Command getR8Command():45:45 -> e
+    1:1:boolean isShrinking():37:37 -> f
+    1:1:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):58:58 -> parse
+    2:2:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):72:72 -> parse
+com.android.tools.r8.L8Command$1 -> com.android.tools.r8.L8Command$a:
+com.android.tools.r8.L8Command$Builder -> com.android.tools.r8.L8Command$Builder:
+    java.util.List proguardConfigFiles -> t
+    java.util.List proguardConfigStrings -> s
+    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.L8Command$1):192:192 -> <init>
+    2:2:void <init>(com.android.tools.r8.L8Command$1):192:192 -> <init>
+    3:3:void <init>():198:198 -> <init>
+    4:4:void <init>(com.android.tools.r8.DiagnosticsHandler):202:202 -> <init>
+    5:6:void <init>(com.android.tools.r8.DiagnosticsHandler):194:195 -> <init>
+    1:1:com.android.tools.r8.L8Command$Builder addProguardConfiguration(java.util.List,com.android.tools.r8.origin.Origin):234:234 -> addProguardConfiguration
+    1:1:com.android.tools.r8.L8Command$Builder addProguardConfigurationFiles(java.nio.file.Path[]):222:222 -> addProguardConfigurationFiles
+    2:2:com.android.tools.r8.L8Command$Builder addProguardConfigurationFiles(java.util.List):228:228 -> addProguardConfigurationFiles
+    1:5:com.android.tools.r8.L8Command makeCommand():260:264 -> c
+    1:5:com.android.tools.r8.BaseCommand makeCommand():191 -> c
+    6:6:com.android.tools.r8.CompilationMode defaultCompilationMode():217:217 -> c
+    6:6:com.android.tools.r8.L8Command makeCommand():265 -> c
+    6:6:com.android.tools.r8.BaseCommand makeCommand():191 -> c
+    7:35:com.android.tools.r8.L8Command makeCommand():265:293 -> c
+    7:35:com.android.tools.r8.BaseCommand makeCommand():191 -> c
+    36:63:com.android.tools.r8.L8Command makeCommand():292:319 -> c
+    36:63:com.android.tools.r8.BaseCommand makeCommand():191 -> c
+    64:64:com.android.tools.r8.L8Command makeCommand():261:261 -> c
+    64:64:com.android.tools.r8.BaseCommand makeCommand():191 -> c
+    com.android.tools.r8.BaseCommand$Builder self() -> d
+    1:16:void validate():240:255 -> e
+    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():217:217 -> f
+    1:1:boolean isShrinking():207:207 -> isShrinking
+com.android.tools.r8.L8Command$DefaultL8DiagnosticsHandler -> com.android.tools.r8.L8Command$b:
+    1:1:void <init>():113:113 -> <init>
+    1:5:void error(com.android.tools.r8.Diagnostic):117:121 -> error
+    6:12:void error(com.android.tools.r8.Diagnostic):119:125 -> error
+com.android.tools.r8.L8Command$DesugaredLibrary -> com.android.tools.r8.L8Command$c:
+    java.util.List resources -> a
+    1:3:void <init>():324:326 -> <init>
+    1:3:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):332:334 -> accept
+    4:4:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):333:333 -> accept
+    5:5:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):332:332 -> accept
+    1:1:java.util.Collection getProgramResources():339:339 -> getProgramResources
+com.android.tools.r8.L8CommandParser -> com.android.tools.r8.k:
+    java.util.Set OPTIONS_WITH_PARAMETER -> d
+    1:26:void <clinit>():22:47 -> <clinit>
+    27:44:void <clinit>():37:54 -> <clinit>
+    45:45:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):449:449 -> <clinit>
+    45:45:void <clinit>():36 -> <clinit>
+    46:46:void <clinit>():34:34 -> <clinit>
+    1:1:void <init>():19:19 -> <init>
+    1:1:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):68:68 -> a
+    2:2:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):82:82 -> a
+    3:41:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.L8Command$Builder):91:129 -> a
+    42:68:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.L8Command$Builder):127:153 -> a
+    69:69:boolean com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder.isEmpty():65:65 -> a
+    69:69:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.L8Command$Builder):156 -> a
+    70:81:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.L8Command$Builder):157:168 -> a
+com.android.tools.r8.OutputMode -> com.android.tools.r8.OutputMode:
+    com.android.tools.r8.OutputMode[] $VALUES -> a
+    1:16:void <clinit>():11:26 -> <clinit>
+    17:17:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>(java.lang.String,int):8:8 -> <init>
+    1:1:com.android.tools.r8.OutputMode valueOf(java.lang.String):7:7 -> valueOf
+    1:1:com.android.tools.r8.OutputMode[] values():7:7 -> values
+com.android.tools.r8.ProgramResource -> com.android.tools.r8.ProgramResource:
+    1:1:com.android.tools.r8.ProgramResource fromBytes(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):52:52 -> fromBytes
+    1:1:com.android.tools.r8.ProgramResource fromFile(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path):41:41 -> fromFile
+com.android.tools.r8.ProgramResource$1 -> com.android.tools.r8.ProgramResource$a:
+com.android.tools.r8.ProgramResource$ByteResource -> com.android.tools.r8.ProgramResource$ByteResource:
+    com.android.tools.r8.origin.Origin origin -> a
+    java.util.Set classDescriptors -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ProgramResource$Kind kind -> b
+    byte[] bytes -> c
+    1:1:void <clinit>():111:111 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set,com.android.tools.r8.ProgramResource$1):112:112 -> <init>
+    2:7:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):118:123 -> <init>
+    1:1:java.io.InputStream getByteStream():138:138 -> getByteStream
+    1:1:java.util.Set getClassDescriptors():143:143 -> getClassDescriptors
+    1:1:com.android.tools.r8.ProgramResource$Kind getKind():133:133 -> getKind
+    1:1:com.android.tools.r8.origin.Origin getOrigin():128:128 -> getOrigin
+com.android.tools.r8.ProgramResource$FileResource -> com.android.tools.r8.ProgramResource$FileResource:
+    com.android.tools.r8.origin.Origin origin -> a
+    java.nio.file.Path file -> c
+    java.util.Set classDescriptors -> d
+    com.android.tools.r8.ProgramResource$Kind kind -> b
+    1:1:void <init>(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path,java.util.Set,com.android.tools.r8.ProgramResource$1):72:72 -> <init>
+    2:6:void <init>(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path,java.util.Set):78:82 -> <init>
+    1:3:java.io.InputStream getByteStream():98:100 -> getByteStream
+    1:1:java.util.Set getClassDescriptors():106:106 -> getClassDescriptors
+    1:1:com.android.tools.r8.ProgramResource$Kind getKind():92:92 -> getKind
+    1:1:com.android.tools.r8.origin.Origin getOrigin():87:87 -> getOrigin
+com.android.tools.r8.ProgramResource$Kind -> com.android.tools.r8.ProgramResource$Kind:
+    com.android.tools.r8.ProgramResource$Kind[] $VALUES -> a
+    1:3:void <clinit>():30:32 -> <clinit>
+    4:4:void <clinit>():27:27 -> <clinit>
+    1:1:void <init>(java.lang.String,int):28:28 -> <init>
+    1:1:com.android.tools.r8.ProgramResource$Kind valueOf(java.lang.String):27:27 -> valueOf
+    1:1:com.android.tools.r8.ProgramResource$Kind[] values():27:27 -> values
+com.android.tools.r8.R8 -> com.android.tools.r8.R8:
+    com.android.tools.r8.utils.Timing timing -> a
+    com.android.tools.r8.utils.InternalOptions options -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():145:145 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.utils.InternalOptions):151:157 -> <init>
+    1:1:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):190:190 -> a
+    2:3:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):204:205 -> a
+    4:4:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    4:4:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):206 -> a
+    5:5:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):207:207 -> a
+    6:6:com.android.tools.r8.ClassFileConsumer com.android.tools.r8.utils.InternalOptions.getClassFileConsumer():367:367 -> a
+    6:6:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):209 -> a
+    7:20:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):209:222 -> a
+    21:21:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    21:21:void lambda$run$5(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):587 -> a
+    22:23:void lambda$run$5(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):588:589 -> a
+    24:25:java.util.Set filterMissingClasses(java.util.Set,com.android.tools.r8.shaking.ProguardClassFilter):228:229 -> a
+    26:27:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):235:236 -> a
+    28:28:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):55:55 -> a
+    28:28:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):236 -> a
+    29:63:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):253:287 -> a
+    64:94:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):286:316 -> a
+    95:99:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):315:319 -> a
+    100:100:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):318:318 -> a
+    101:112:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):317:328 -> a
+    113:115:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):327:329 -> a
+    116:138:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):323:345 -> a
+    139:161:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):344:366 -> a
+    162:162:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):363:363 -> a
+    163:214:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):359:410 -> a
+    215:236:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):409:430 -> a
+    237:259:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):429:451 -> a
+    260:278:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):450:468 -> a
+    279:297:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):467:485 -> a
+    298:313:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):484:499 -> a
+    314:439:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):498:623 -> a
+    440:440:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):621:621 -> a
+    441:459:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):620:638 -> a
+    460:476:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):636:652 -> a
+    477:477:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):649:649 -> a
+    478:493:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):646:661 -> a
+    494:550:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):660:716 -> a
+    551:646:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):715:810 -> a
+    647:676:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):756:785 -> a
+    677:677:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):781:781 -> a
+    678:698:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):779:799 -> a
+    699:715:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):794:810 -> a
+    716:716:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):681:681 -> a
+    717:717:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):524:524 -> a
+    718:1150:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):378:810 -> a
+    1151:1153:void lambda$run$2(com.android.tools.r8.graph.DexType):291:291 -> a
+    1154:1154:void lambda$run$4(com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):353:353 -> a
+    1155:1159:java.lang.Iterable lambda$run$6(com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.graph.AppView):581:585 -> a
+    1160:1160:com.android.tools.r8.shaking.TreePrunerConfiguration lambda$run$7(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):637:637 -> a
+    1161:1161:java.lang.Iterable lambda$run$8(com.android.tools.r8.graph.AppView):662:662 -> a
+    1162:1162:void lambda$run$9(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):693:693 -> a
+    1163:1163:void lambda$run$10(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):701:701 -> a
+    1164:1164:void lambda$run$11(java.lang.String):750:750 -> a
+    1165:1165:void lambda$run$12(com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder,com.android.tools.r8.graph.DexEncodedMethod):761:761 -> a
+    1166:1166:boolean lambda$run$13(com.android.tools.r8.graph.DexProgramClass):773:773 -> a
+    1167:1175:com.android.tools.r8.graph.AppView runEnqueuer(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.AppView):817:825 -> a
+    1176:1184:com.android.tools.r8.graph.AppView runEnqueuer(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.AppView):823:831 -> a
+    1185:1185:com.android.tools.r8.graph.AppView runEnqueuer(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.AppView):829:829 -> a
+    1186:1186:com.android.tools.r8.graph.AppView runEnqueuer(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.AppView):828:828 -> a
+    1187:1189:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):848:850 -> a
+    1190:1212:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):849:871 -> a
+    1213:1224:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):869:880 -> a
+    1225:1230:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):879:884 -> a
+    1231:1236:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):882:887 -> a
+    1237:1237:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    1237:1237:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):887 -> a
+    1238:1238:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    1238:1238:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    1238:1238:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):887 -> a
+    1239:1239:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):887:887 -> a
+    1240:1246:void computeKotlinInfoForProgramClasses(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService):893:899 -> a
+    1247:1247:void computeKotlinInfoForProgramClasses(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService):898:898 -> a
+    1248:1250:void lambda$computeKotlinInfoForProgramClasses$14(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass):901:903 -> a
+    1251:1254:boolean verifyNoJarApplicationReaders(java.util.List):910:913 -> a
+    1255:1255:void lambda$run$15(com.android.tools.r8.R8Command,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):935:935 -> a
+    1256:1256:void lambda$main$16(java.lang.String[]):951:951 -> a
+    boolean lambda$run$3(com.android.tools.r8.graph.DexType) -> b
+    1:3:void lambda$runForTesting$1(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):240:242 -> b
+    4:5:void run(java.lang.String[]):921:922 -> b
+    6:6:void com.android.tools.r8.utils.SelfRetraceTest.test():25:25 -> b
+    6:6:void run(java.lang.String[]):923 -> b
+    7:7:void run(java.lang.String[]):924:924 -> b
+    8:8:void com.android.tools.r8.utils.SelfRetraceTest.foo3():13:13 -> b
+    8:8:void com.android.tools.r8.utils.SelfRetraceTest.foo2():17 -> b
+    8:8:void com.android.tools.r8.utils.SelfRetraceTest.foo1():21 -> b
+    8:8:void com.android.tools.r8.utils.SelfRetraceTest.test():26 -> b
+    8:8:void run(java.lang.String[]):923 -> b
+    9:16:void run(java.lang.String[]):927:934 -> b
+    17:17:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):55:55 -> b
+    17:17:void run(java.lang.String[]):934 -> b
+    18:18:void run(java.lang.String[]):937:937 -> b
+    1:1:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):249:249 -> c
+    1:5:void main(java.lang.String[]):947:951 -> main
+    1:3:void run(com.android.tools.r8.R8Command):169:171 -> run
+    4:7:void run(com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):185:188 -> run
+    8:8:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):55:55 -> run
+    8:8:void run(com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):187 -> run
+com.android.tools.r8.R8Command -> com.android.tools.r8.R8Command:
+    java.lang.String USAGE_MESSAGE -> F
+    java.util.List mainDexKeepRules -> p
+    com.android.tools.r8.StringConsumer proguardConfigurationConsumer -> y
+    boolean forceProguardCompatibility -> u
+    com.android.tools.r8.StringConsumer proguardUsageConsumer -> w
+    com.android.tools.r8.features.FeatureSplitConfiguration featureSplitConfiguration -> E
+    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> x
+    com.android.tools.r8.StringConsumer proguardMapConsumer -> v
+    boolean enableTreeShaking -> r
+    boolean enableMinification -> s
+    boolean disableVerticalClassMerging -> t
+    com.android.tools.r8.shaking.ProguardConfiguration proguardConfiguration -> q
+    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> z
+    java.util.function.Consumer syntheticProguardRulesConsumer -> B
+    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> A
+    boolean $assertionsDisabled -> G
+    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> D
+    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> C
+    1:577:void <clinit>():58:634 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.ProgramConsumer,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.CompilationMode,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,boolean,boolean,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,java.util.function.Consumer,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,com.android.tools.r8.features.FeatureSplitConfiguration,java.util.List,com.android.tools.r8.R8Command$1):59:59 -> <init>
+    2:2:void <init>(boolean,boolean,com.android.tools.r8.R8Command$1):59:59 -> <init>
+    3:32:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.ProgramConsumer,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.CompilationMode,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,boolean,boolean,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,java.util.function.Consumer,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,com.android.tools.r8.features.FeatureSplitConfiguration,java.util.List):728:757 -> <init>
+    33:49:void <init>(boolean,boolean):761:777 -> <init>
+    1:1:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.utils.AndroidApp):665:665 -> a
+    2:2:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):670:670 -> a
+    3:55:com.android.tools.r8.utils.InternalOptions getInternalOptions():792:844 -> a
+    56:66:com.android.tools.r8.utils.InternalOptions getInternalOptions():841:851 -> a
+    67:77:com.android.tools.r8.utils.InternalOptions getInternalOptions():848:858 -> a
+    78:88:com.android.tools.r8.utils.InternalOptions getInternalOptions():855:865 -> a
+    89:111:com.android.tools.r8.utils.InternalOptions getInternalOptions():862:884 -> a
+    112:112:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    112:112:com.android.tools.r8.utils.InternalOptions getInternalOptions():889 -> a
+    113:127:com.android.tools.r8.utils.InternalOptions getInternalOptions():890:904 -> a
+    128:130:com.android.tools.r8.StringConsumer wrapStringConsumer(com.android.tools.r8.StringConsumer,boolean,java.nio.file.Path):913:915 -> a
+    1:1:com.android.tools.r8.R8Command$Builder builder():655:655 -> builder
+    2:2:void com.android.tools.r8.R8Command$Builder.<init>():111:111 -> builder
+    2:2:com.android.tools.r8.R8Command$Builder builder():655 -> builder
+    3:3:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):660:660 -> builder
+    1:1:boolean getEnableMinification():787:787 -> getEnableMinification
+    1:1:boolean getEnableTreeShaking():782:782 -> getEnableTreeShaking
+    1:1:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):683:683 -> parse
+    2:2:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):697:697 -> parse
+com.android.tools.r8.R8Command$1 -> com.android.tools.r8.R8Command$a:
+com.android.tools.r8.R8Command$Builder -> com.android.tools.r8.R8Command$Builder:
+    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> F
+    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> G
+    java.util.function.Consumer proguardConfigurationConsumerForTesting -> t
+    boolean allowTestProguardOptions -> I
+    boolean $assertionsDisabled -> J
+    java.util.List mainDexRules -> s
+    java.util.function.Consumer syntheticProguardRulesConsumer -> u
+    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> v
+    java.util.List proguardConfigs -> w
+    boolean disableTreeShaking -> x
+    boolean disableMinification -> y
+    boolean disableVerticalClassMerging -> z
+    com.android.tools.r8.StringConsumer proguardConfigurationConsumer -> E
+    java.util.List featureSplits -> H
+    boolean forceProguardCompatibility -> A
+    com.android.tools.r8.StringConsumer proguardUsageConsumer -> C
+    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> D
+    com.android.tools.r8.StringConsumer proguardMapConsumer -> B
+    1:1:void <clinit>():66:66 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.R8Command$1):67:67 -> <init>
+    2:2:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.R8Command$1):67:67 -> <init>
+    3:3:void <init>():111:111 -> <init>
+    4:4:void <init>(com.android.tools.r8.DiagnosticsHandler):115:115 -> <init>
+    5:25:void <init>(com.android.tools.r8.DiagnosticsHandler):87:107 -> <init>
+    26:26:void <init>(com.android.tools.r8.utils.AndroidApp):119:119 -> <init>
+    27:47:void <init>(com.android.tools.r8.utils.AndroidApp):87:107 -> <init>
+    48:48:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):123:123 -> <init>
+    49:69:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):87:107 -> <init>
+    1:3:void lambda$addMainDexRules$3(java.util.List,com.android.tools.r8.origin.Origin):190:190 -> a
+    4:5:void lambda$addProguardConfigurationFiles$5(java.util.List):208:209 -> a
+    6:6:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):394:394 -> a
+    7:9:void lambda$makeR8Command$7(com.android.tools.r8.DataResourceProvider$Visitor,com.android.tools.r8.utils.Reporter,com.android.tools.r8.DataResourceProvider):513:515 -> a
+    10:11:void addProguardConfigurationConsumerForTesting(java.util.function.Consumer):577:578 -> a
+    12:14:void lambda$addProguardConfigurationConsumerForTesting$8(java.util.function.Consumer,java.util.function.Consumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):581:583 -> a
+    1:1:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):368:368 -> addFeatureSplit
+    2:2:com.android.tools.r8.FeatureSplit$Builder com.android.tools.r8.FeatureSplit.builder(com.android.tools.r8.DiagnosticsHandler):50:50 -> addFeatureSplit
+    2:2:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):368 -> addFeatureSplit
+    3:6:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):368:371 -> addFeatureSplit
+    7:21:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):370:384 -> addFeatureSplit
+    1:1:com.android.tools.r8.R8Command$Builder addMainDexRules(java.util.List,com.android.tools.r8.origin.Origin):190:190 -> addMainDexRules
+    1:1:com.android.tools.r8.R8Command$Builder addMainDexRulesFiles(java.nio.file.Path[]):170:170 -> addMainDexRulesFiles
+    2:2:com.android.tools.r8.R8Command$Builder addMainDexRulesFiles(java.util.Collection):180:180 -> addMainDexRulesFiles
+    1:1:com.android.tools.r8.BaseCommand$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):66:66 -> addProgramResourceProvider
+    2:2:com.android.tools.r8.R8Command$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):355:355 -> addProgramResourceProvider
+    1:1:com.android.tools.r8.R8Command$Builder addProguardConfiguration(java.util.List,com.android.tools.r8.origin.Origin):217:217 -> addProguardConfiguration
+    1:1:com.android.tools.r8.R8Command$Builder addProguardConfigurationFiles(java.nio.file.Path[]):197:197 -> addProguardConfigurationFiles
+    2:2:com.android.tools.r8.R8Command$Builder addProguardConfigurationFiles(java.util.List):207:207 -> addProguardConfigurationFiles
+    1:1:java.lang.Boolean lambda$new$0(java.lang.String,java.lang.Long):102:102 -> b
+    2:4:void lambda$addProguardConfiguration$6(java.util.List,com.android.tools.r8.origin.Origin):217:217 -> b
+    5:7:void addSyntheticProguardRulesConsumerForTesting(java.util.function.Consumer):590:592 -> b
+    1:1:com.android.tools.r8.BaseCommand makeCommand():66:66 -> c
+    2:2:void setDisableVerticalClassMerging(boolean):133:133 -> c
+    3:4:void lambda$addMainDexRulesFiles$1(java.nio.file.Path[]):171:172 -> c
+    com.android.tools.r8.BaseCommand$Builder self() -> d
+    1:2:void lambda$addProguardConfigurationFiles$4(java.nio.file.Path[]):198:199 -> d
+    1:18:void validate():399:416 -> e
+    19:44:void validate():414:439 -> e
+    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():143:143 -> f
+    2:3:void lambda$addMainDexRulesFiles$2(java.util.Collection):181:182 -> f
+    void allowPartiallyImplementedProguardOptions() -> k
+    1:1:void allowTestProguardOptions():603:603 -> l
+    1:1:void internalForceProguardCompatibility():129:129 -> m
+    1:4:com.android.tools.r8.R8Command makeCommand():445:448 -> n
+    5:5:com.android.tools.r8.R8Command makeCommand():446:446 -> n
+    1:85:com.android.tools.r8.R8Command makeR8Command():452:536 -> o
+    86:86:com.android.tools.r8.utils.InternalOptions$DesugarState com.android.tools.r8.BaseCompilerCommand$Builder.getDesugaringState():445:445 -> o
+    86:86:com.android.tools.r8.R8Command makeR8Command():537 -> o
+    87:117:com.android.tools.r8.R8Command makeR8Command():540:570 -> o
+    1:1:com.android.tools.r8.R8Command$Builder setDesugaredLibraryKeepRuleConsumer(com.android.tools.r8.StringConsumer):257:257 -> setDesugaredLibraryKeepRuleConsumer
+    1:1:com.android.tools.r8.R8Command$Builder setDisableMinification(boolean):164:164 -> setDisableMinification
+    1:1:com.android.tools.r8.R8Command$Builder setDisableTreeShaking(boolean):153:153 -> setDisableTreeShaking
+    1:1:com.android.tools.r8.R8Command$Builder setKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):300:300 -> setKeptGraphConsumer
+    1:1:com.android.tools.r8.R8Command$Builder setMainDexKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):308:308 -> setMainDexKeptGraphConsumer
+    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):66:66 -> setOutput
+    2:2:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):66:66 -> setOutput
+    3:3:com.android.tools.r8.R8Command$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):327:327 -> setOutput
+    4:4:com.android.tools.r8.R8Command$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):350:350 -> setOutput
+    1:1:com.android.tools.r8.R8Command$Builder setProguardConfigurationConsumer(com.android.tools.r8.StringConsumer):292:292 -> setProguardConfigurationConsumer
+    1:1:com.android.tools.r8.R8Command$Builder setProguardMapConsumer(com.android.tools.r8.StringConsumer):246:246 -> setProguardMapConsumer
+    1:2:com.android.tools.r8.R8Command$Builder setProguardMapOutputPath(java.nio.file.Path):232:233 -> setProguardMapOutputPath
+    1:1:com.android.tools.r8.R8Command$Builder setProguardSeedsConsumer(com.android.tools.r8.StringConsumer):281:281 -> setProguardSeedsConsumer
+    1:1:com.android.tools.r8.R8Command$Builder setProguardUsageConsumer(com.android.tools.r8.StringConsumer):269:269 -> setProguardUsageConsumer
+com.android.tools.r8.R8Command$Builder$1 -> com.android.tools.r8.R8Command$Builder$a:
+    com.android.tools.r8.ProgramResourceProvider val$programResourceProvider -> a
+    1:1:void <init>(com.android.tools.r8.R8Command$Builder,com.android.tools.r8.ProgramResourceProvider):373:373 -> <init>
+    1:1:java.util.Collection getProgramResources():376:376 -> getProgramResources
+com.android.tools.r8.R8Command$Builder$2 -> com.android.tools.r8.R8Command$Builder$b:
+    com.android.tools.r8.shaking.ProguardConfigurationParser val$parser -> a
+    com.android.tools.r8.utils.Reporter val$reporter -> b
+    1:1:void <init>(com.android.tools.r8.R8Command$Builder,com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.utils.Reporter):484:484 -> <init>
+    1:6:void visit(com.android.tools.r8.DataEntryResource):492:497 -> visit
+    7:15:void visit(com.android.tools.r8.DataEntryResource):493:501 -> visit
+    16:18:void visit(com.android.tools.r8.DataEntryResource):498:498 -> visit
+com.android.tools.r8.R8Command$Builder$DefaultR8DiagnosticsHandler -> com.android.tools.r8.R8Command$Builder$c:
+    1:1:void <init>():69:69 -> <init>
+    2:2:void <init>(com.android.tools.r8.R8Command$1):69:69 -> <init>
+    1:6:void error(com.android.tools.r8.Diagnostic):73:78 -> error
+    7:14:void error(com.android.tools.r8.Diagnostic):76:83 -> error
+com.android.tools.r8.R8Command$EnsureNonDexProgramResourceProvider -> com.android.tools.r8.R8Command$b:
+    com.android.tools.r8.ProgramResourceProvider provider -> a
+    1:2:void <init>(com.android.tools.r8.ProgramResourceProvider):612:613 -> <init>
+    1:1:com.android.tools.r8.DataResourceProvider getDataResourceProvider():630:630 -> getDataResourceProvider
+    1:4:java.util.Collection getProgramResources():618:621 -> getProgramResources
+com.android.tools.r8.R8Command$StandardOutConsumer -> com.android.tools.r8.R8Command$c:
+    1:1:void <init>(com.android.tools.r8.StringConsumer):924:924 -> <init>
+    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):929:930 -> accept
+com.android.tools.r8.R8CommandParser -> com.android.tools.r8.n:
+    java.util.Set OPTIONS_WITH_PARAMETER -> d
+    java.lang.String USAGE_MESSAGE -> e
+    1:50:void <clinit>():19:68 -> <clinit>
+    51:82:void <clinit>():54:85 -> <clinit>
+    83:83:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):449:449 -> <clinit>
+    83:83:void <clinit>():53 -> <clinit>
+    84:84:void <clinit>():51:51 -> <clinit>
+    1:1:void <init>():17:17 -> <init>
+    1:1:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):98:98 -> a
+    2:2:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):112:112 -> a
+    3:3:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):116:116 -> a
+    4:57:void parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder,com.android.tools.r8.R8CommandParser$ParseState):129:182 -> a
+    4:57:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):117 -> a
+    58:109:void parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder,com.android.tools.r8.R8CommandParser$ParseState):179:230 -> a
+    58:109:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):117 -> a
+    110:115:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):118:123 -> a
+com.android.tools.r8.R8CommandParser$1 -> com.android.tools.r8.l:
+com.android.tools.r8.R8CommandParser$ParseState -> com.android.tools.r8.m:
+    java.nio.file.Path outputPath -> c
+    com.android.tools.r8.OutputMode outputMode -> b
+    boolean includeDataResources -> e
+    com.android.tools.r8.CompilationMode mode -> a
+    boolean hasDefinedApiLevel -> d
+    1:6:void <init>():42:47 -> <init>
+    7:7:void <init>(com.android.tools.r8.R8CommandParser$1):42:42 -> <init>
+    1:1:boolean access$100(com.android.tools.r8.R8CommandParser$ParseState):42:42 -> a
+    2:2:boolean access$102(com.android.tools.r8.R8CommandParser$ParseState,boolean):42:42 -> a
+com.android.tools.r8.ResourceException -> com.android.tools.r8.ResourceException:
+    com.android.tools.r8.origin.Origin origin -> a
+    1:2:void <init>(com.android.tools.r8.origin.Origin,java.lang.String):20:21 -> <init>
+    3:4:void <init>(com.android.tools.r8.origin.Origin,java.lang.Throwable):25:26 -> <init>
+    5:6:void <init>(com.android.tools.r8.origin.Origin,java.lang.String,java.lang.Throwable):30:31 -> <init>
+    1:1:com.android.tools.r8.origin.Origin getOrigin():35:35 -> getOrigin
+com.android.tools.r8.ResourceShrinker -> com.android.tools.r8.ResourceShrinker:
+    1:1:void <init>():94:94 -> <init>
+    1:3:void run(com.android.tools.r8.ResourceShrinker$Command,com.android.tools.r8.ResourceShrinker$ReferenceChecker):449:451 -> run
+    4:4:com.android.tools.r8.utils.InternalOptions com.android.tools.r8.ResourceShrinker$Command.getInternalOptions():105:105 -> run
+    4:4:void run(com.android.tools.r8.ResourceShrinker$Command,com.android.tools.r8.ResourceShrinker$ReferenceChecker):452 -> run
+    5:7:void run(com.android.tools.r8.ResourceShrinker$Command,com.android.tools.r8.ResourceShrinker$ReferenceChecker):452:454 -> run
+com.android.tools.r8.ResourceShrinker$Builder -> com.android.tools.r8.ResourceShrinker$Builder:
+    1:1:void <init>():110:110 -> <init>
+    1:1:com.android.tools.r8.ResourceShrinker$Command makeCommand():119:119 -> c
+    1:1:com.android.tools.r8.BaseCommand makeCommand():109 -> c
+    com.android.tools.r8.BaseCommand$Builder self() -> d
+com.android.tools.r8.ResourceShrinker$Command -> com.android.tools.r8.ResourceShrinker$Command:
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp):100:100 -> <init>
+    1:1:com.android.tools.r8.utils.InternalOptions getInternalOptions():105:105 -> a
+com.android.tools.r8.ResourceShrinker$DexClassUsageVisitor -> com.android.tools.r8.ResourceShrinker$a:
+    com.android.tools.r8.graph.DexProgramClass classDef -> a
+    com.android.tools.r8.ResourceShrinker$ReferenceChecker callback -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():145:145 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ResourceShrinker$ReferenceChecker):150:152 -> <init>
+    1:6:void visit():156:161 -> a
+    7:17:void processFieldValue(com.android.tools.r8.graph.DexValue):177:187 -> a
+    7:17:void visit():163 -> a
+    18:18:void visit():167:167 -> a
+    19:19:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):194:194 -> a
+    19:19:void visit():168 -> a
+    20:20:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> a
+    20:20:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):198 -> a
+    20:20:void visit():168 -> a
+    21:21:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList():88:88 -> a
+    21:21:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):201 -> a
+    21:21:void visit():168 -> a
+    22:26:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):203:207 -> a
+    22:26:void visit():168 -> a
+    27:44:void processIntConstInstruction(com.android.tools.r8.code.Instruction):319:336 -> a
+    27:44:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):208 -> a
+    27:44:void visit():168 -> a
+    45:45:void processIntConstInstruction(com.android.tools.r8.code.Instruction):333:333 -> a
+    45:45:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):208 -> a
+    45:45:void visit():168 -> a
+    46:46:boolean isStringConstInstruction(com.android.tools.r8.code.Instruction):340:340 -> a
+    46:46:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):209 -> a
+    46:46:void visit():168 -> a
+    47:47:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):345:345 -> a
+    47:47:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):210 -> a
+    47:47:void visit():168 -> a
+    48:48:boolean isStringConstInstruction(com.android.tools.r8.code.Instruction):340:340 -> a
+    48:48:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):345 -> a
+    48:48:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):210 -> a
+    48:48:void visit():168 -> a
+    49:62:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):345:358 -> a
+    49:62:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):210 -> a
+    49:62:void visit():168 -> a
+    63:63:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):355:355 -> a
+    63:63:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):210 -> a
+    63:63:void visit():168 -> a
+    64:64:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211:211 -> a
+    64:64:void visit():168 -> a
+    65:93:void processGetStatic(com.android.tools.r8.code.Instruction):373:401 -> a
+    65:93:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):212 -> a
+    65:93:void visit():168 -> a
+    94:94:void processGetStatic(com.android.tools.r8.code.Instruction):398:398 -> a
+    94:94:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):212 -> a
+    94:94:void visit():168 -> a
+    95:95:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):213:213 -> a
+    95:95:void visit():168 -> a
+    96:103:void processInvokeInstruction(com.android.tools.r8.code.Instruction):414:421 -> a
+    96:103:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):214 -> a
+    96:103:void visit():168 -> a
+    104:203:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():0:99 -> a
+    104:203:void processInvokeInstruction(com.android.tools.r8.code.Instruction):422 -> a
+    104:203:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):214 -> a
+    104:203:void visit():168 -> a
+    204:204:void processInvokeInstruction(com.android.tools.r8.code.Instruction):419:419 -> a
+    204:204:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):214 -> a
+    204:204:void visit():168 -> a
+    205:205:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215:215 -> a
+    205:205:void visit():168 -> a
+    206:213:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):435:442 -> a
+    206:213:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):216 -> a
+    206:213:void visit():168 -> a
+    214:313:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():0:99 -> a
+    214:313:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):443 -> a
+    214:313:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):216 -> a
+    214:313:void visit():168 -> a
+    314:314:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):440:440 -> a
+    314:314:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):216 -> a
+    314:314:void visit():168 -> a
+    315:315:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217:217 -> a
+    315:315:void visit():168 -> a
+    316:318:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):275:277 -> a
+    316:318:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):218 -> a
+    316:318:void visit():168 -> a
+    319:319:com.android.tools.r8.graph.DexType com.android.tools.r8.code.NewArray.getType():46:46 -> a
+    319:319:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):278 -> a
+    319:319:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):218 -> a
+    319:319:void visit():168 -> a
+    320:327:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):278:285 -> a
+    320:327:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):218 -> a
+    320:327:void visit():168 -> a
+    328:334:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):219:225 -> a
+    328:334:void visit():168 -> a
+    335:340:boolean isIntArrayPayload(com.android.tools.r8.code.Instruction,java.util.Set):265:270 -> a
+    335:340:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):226 -> a
+    335:340:void visit():168 -> a
+    341:343:void processIntArrayPayload(com.android.tools.r8.code.Instruction):257:259 -> a
+    341:343:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):227 -> a
+    341:343:void visit():168 -> a
+    344:345:void visit():171:172 -> a
+    346:346:void processAnnotations(com.android.tools.r8.graph.DexProgramClass):234:234 -> a
+    347:347:java.util.stream.Stream com.android.tools.r8.graph.DexAnnotationSet.stream():59:59 -> a
+    347:347:void processAnnotations(com.android.tools.r8.graph.DexProgramClass):234 -> a
+    348:357:void processAnnotations(com.android.tools.r8.graph.DexProgramClass):236:245 -> a
+    358:358:java.util.stream.Stream lambda$processAnnotations$0(com.android.tools.r8.graph.DexEncodedField):238:238 -> a
+    359:359:java.util.stream.Stream com.android.tools.r8.graph.DexAnnotationSet.stream():59:59 -> a
+    359:359:java.util.stream.Stream lambda$processAnnotations$0(com.android.tools.r8.graph.DexEncodedField):238 -> a
+    360:360:java.util.stream.Stream lambda$processAnnotations$1(com.android.tools.r8.graph.DexEncodedMethod):242:242 -> a
+    361:361:java.util.stream.Stream com.android.tools.r8.graph.DexAnnotationSet.stream():59:59 -> a
+    361:361:java.util.stream.Stream lambda$processAnnotations$1(com.android.tools.r8.graph.DexEncodedMethod):242 -> a
+    362:364:void lambda$processAnnotations$2(com.android.tools.r8.graph.DexAnnotation):247:249 -> a
+    365:379:void processAnnotationValue(com.android.tools.r8.graph.DexValue):289:303 -> a
+    380:380:boolean isGetStatic(com.android.tools.r8.code.Instruction):362:362 -> a
+    1:1:boolean isIntConstInstruction(com.android.tools.r8.code.Instruction):309:309 -> b
+    1:1:boolean isInvokeInstruction(com.android.tools.r8.code.Instruction):405:405 -> c
+    1:1:boolean isInvokeRangeInstruction(com.android.tools.r8.code.Instruction):426:426 -> d
+com.android.tools.r8.StringConsumer -> com.android.tools.r8.StringConsumer:
+    1:1:com.android.tools.r8.StringConsumer$EmptyConsumer emptyConsumer():47:47 -> emptyConsumer
+com.android.tools.r8.StringConsumer$EmptyConsumer -> com.android.tools.r8.StringConsumer$a:
+    com.android.tools.r8.StringConsumer$EmptyConsumer EMPTY_CONSUMER -> a
+    1:1:void <clinit>():53:53 -> <clinit>
+    1:1:void <init>():51:51 -> <init>
+    1:1:com.android.tools.r8.StringConsumer$EmptyConsumer access$000():51:51 -> a
+com.android.tools.r8.StringConsumer$FileConsumer -> com.android.tools.r8.StringConsumer$FileConsumer:
+    java.nio.charset.Charset encoding -> c
+    java.nio.file.Path outputPath -> b
+    boolean failedToCreateDelegate -> e
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.StringConsumer$WriterConsumer delegate -> d
+    1:1:void <clinit>():92:92 -> <clinit>
+    1:1:void <init>(java.nio.file.Path):102:102 -> <init>
+    2:2:void <init>(java.nio.file.Path,com.android.tools.r8.StringConsumer):107:107 -> <init>
+    3:15:void <init>(java.nio.file.Path,com.android.tools.r8.StringConsumer):96:108 -> <init>
+    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):132:133 -> accept
+    3:12:void ensureDelegate(com.android.tools.r8.DiagnosticsHandler):155:164 -> accept
+    3:12:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):136 -> accept
+    13:13:void com.android.tools.r8.StringConsumer$WriterConsumer.<init>(com.android.tools.r8.origin.Origin,java.io.Writer):184:184 -> accept
+    13:13:void ensureDelegate(com.android.tools.r8.DiagnosticsHandler):164 -> accept
+    13:13:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):136 -> accept
+    14:17:void ensureDelegate(com.android.tools.r8.DiagnosticsHandler):164:167 -> accept
+    14:17:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):136 -> accept
+    18:19:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):137:138 -> accept
+    1:7:void finished(com.android.tools.r8.DiagnosticsHandler):144:150 -> finished
+    1:1:java.nio.charset.Charset getEncoding():127:127 -> getEncoding
+    1:1:java.nio.file.Path getOutputPath():113:113 -> getOutputPath
+    1:5:void setEncoding(java.nio.charset.Charset):118:122 -> setEncoding
+    6:6:void setEncoding(java.nio.charset.Charset):120:120 -> setEncoding
+com.android.tools.r8.StringConsumer$ForwardingConsumer -> com.android.tools.r8.StringConsumer$b:
+    com.android.tools.r8.StringConsumer consumer -> a
+    1:2:void <init>(com.android.tools.r8.StringConsumer):72:73 -> <init>
+    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):78:79 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):85:86 -> finished
+com.android.tools.r8.StringConsumer$WriterConsumer -> com.android.tools.r8.StringConsumer$c:
+    com.android.tools.r8.origin.Origin origin -> b
+    java.io.Writer writer -> c
+    1:3:void <init>(com.android.tools.r8.origin.Origin,java.io.Writer,com.android.tools.r8.StringConsumer):189:191 -> <init>
+    1:6:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):196:201 -> accept
+    1:5:void finished(com.android.tools.r8.DiagnosticsHandler):207:211 -> finished
+com.android.tools.r8.StringResource -> com.android.tools.r8.o:
+    java.lang.String getString() -> a
+    1:1:com.android.tools.r8.StringResource fromString(java.lang.String,com.android.tools.r8.origin.Origin):26:26 -> a
+    2:2:com.android.tools.r8.StringResource fromFile(java.nio.file.Path):37:37 -> a
+    3:3:com.android.tools.r8.StringResource fromFile(java.nio.file.Path,java.nio.charset.Charset):49:49 -> a
+    3:3:com.android.tools.r8.StringResource fromFile(java.nio.file.Path):37 -> a
+com.android.tools.r8.StringResource$1 -> com.android.tools.r8.o$a:
+com.android.tools.r8.StringResource$FileResource -> com.android.tools.r8.o$b:
+    java.nio.charset.Charset charset -> b
+    com.android.tools.r8.origin.Origin origin -> c
+    java.nio.file.Path file -> a
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():82:82 -> <clinit>
+    1:1:void <init>(java.nio.file.Path,java.nio.charset.Charset,com.android.tools.r8.StringResource$1):82:82 -> <init>
+    2:7:void <init>(java.nio.file.Path,java.nio.charset.Charset):87:92 -> <init>
+    1:3:java.lang.String getString():103:105 -> a
+    1:1:com.android.tools.r8.origin.Origin getOrigin():97:97 -> getOrigin
+com.android.tools.r8.StringResource$StringContentResource -> com.android.tools.r8.o$c:
+    com.android.tools.r8.origin.Origin origin -> a
+    java.lang.String content -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():60:60 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.origin.Origin,java.lang.String,com.android.tools.r8.StringResource$1):60:60 -> <init>
+    2:6:void <init>(com.android.tools.r8.origin.Origin,java.lang.String):64:68 -> <init>
+    1:1:java.lang.String getString():78:78 -> a
+    1:1:com.android.tools.r8.origin.Origin getOrigin():73:73 -> getOrigin
+com.android.tools.r8.Version -> com.android.tools.r8.Version:
+    1:6:int getMajorVersion(java.lang.String):34:39 -> a
+    7:7:boolean isDevelopmentVersion(java.lang.String,boolean):110:110 -> a
+    1:6:int getMinorVersion(java.lang.String):52:57 -> b
+    1:7:int getPatchVersion(java.lang.String):70:76 -> c
+    1:6:java.lang.String getPreReleaseString(java.lang.String):90:95 -> d
+    1:1:int getMajorVersion():30:30 -> getMajorVersion
+    1:1:int getMinorVersion():48:48 -> getMinorVersion
+    1:1:int getPatchVersion():66:66 -> getPatchVersion
+    1:1:java.lang.String getPreReleaseString():86:86 -> getPreReleaseString
+    1:1:java.lang.String getVersionString():21:21 -> getVersionString
+    1:1:boolean isDevelopmentVersion():106:106 -> isDevelopmentVersion
+com.android.tools.r8.bisect.Bisect -> com.android.tools.r8.p.a:
+    1:4:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):76:79 -> a
+    5:17:void writeApp(com.android.tools.r8.graph.DexApplication,java.nio.file.Path,java.util.concurrent.ExecutorService):183:195 -> a
+    5:17:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):82 -> a
+    18:25:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):83:90 -> a
+com.android.tools.r8.bisect.Bisect$Command -> com.android.tools.r8.p.a$a:
+    com.android.tools.r8.bisect.BisectOptions$Result apply(com.android.tools.r8.graph.DexApplication) -> a
+com.android.tools.r8.bisect.BisectOptions$Result -> com.android.tools.r8.p.b:
+    com.android.tools.r8.bisect.BisectOptions$Result UNKNOWN -> a
+    com.android.tools.r8.bisect.BisectOptions$Result GOOD -> b
+    com.android.tools.r8.bisect.BisectOptions$Result BAD -> c
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:1:void <init>(java.lang.String,int):33:33 -> <init>
+com.android.tools.r8.bisect.BisectState -> com.android.tools.r8.p.c:
+    java.nio.file.Path stateFile -> e
+    com.android.tools.r8.graph.DexApplication badApp -> b
+    java.util.Map indexMap -> d
+    com.android.tools.r8.bisect.BisectState$Range nextRange -> g
+    java.util.List runs -> f
+    java.util.List sortedGoodClasses -> c
+    java.lang.String signature -> a
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.nio.file.Path):156:156 -> <init>
+    2:20:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.nio.file.Path):151:169 -> <init>
+    21:21:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.nio.file.Path):161:161 -> <init>
+    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):190:190 -> a
+    2:9:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):202:209 -> a
+    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    10:10:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):209 -> a
+    11:18:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):209:216 -> a
+    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    19:19:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):216 -> a
+    20:26:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):216:222 -> a
+    27:27:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):203:203 -> a
+    28:28:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    28:28:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):203 -> a
+    29:29:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):203:203 -> a
+    30:36:com.android.tools.r8.graph.DexApplication bisect():241:247 -> a
+    37:39:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():289:291 -> a
+    37:39:com.android.tools.r8.graph.DexApplication bisect():250 -> a
+    40:40:boolean com.android.tools.r8.bisect.BisectState$Run.isBad():141:141 -> a
+    40:40:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():292 -> a
+    40:40:com.android.tools.r8.graph.DexApplication bisect():250 -> a
+    41:41:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():293:293 -> a
+    41:41:com.android.tools.r8.graph.DexApplication bisect():250 -> a
+    42:123:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.sub(com.android.tools.r8.bisect.BisectState$Range):0:81 -> a
+    42:123:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():293 -> a
+    42:123:com.android.tools.r8.graph.DexApplication bisect():250 -> a
+    124:131:com.android.tools.r8.graph.DexApplication bisect():251:258 -> a
+    132:133:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.split():85:86 -> a
+    132:133:com.android.tools.r8.graph.DexApplication bisect():259 -> a
+    134:140:com.android.tools.r8.graph.DexApplication bisect():259:265 -> a
+    141:142:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):281:282 -> a
+    141:142:com.android.tools.r8.graph.DexApplication bisect():266 -> a
+    143:143:boolean com.android.tools.r8.bisect.BisectState$Range.contains(int):90:90 -> a
+    143:143:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):282 -> a
+    143:143:com.android.tools.r8.graph.DexApplication bisect():266 -> a
+    144:144:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):283:283 -> a
+    144:144:com.android.tools.r8.graph.DexApplication bisect():266 -> a
+    145:154:com.android.tools.r8.graph.DexApplication bisect():268:277 -> a
+    155:155:com.android.tools.r8.graph.DexApplication bisect():252:252 -> a
+    156:156:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    156:156:com.android.tools.r8.graph.DexApplication bisect():252 -> a
+    157:157:com.android.tools.r8.graph.DexApplication bisect():252:252 -> a
+    158:158:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():295:295 -> a
+    158:158:com.android.tools.r8.graph.DexApplication bisect():250 -> a
+    159:166:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.add(com.android.tools.r8.bisect.BisectState$Range):62:69 -> a
+    159:166:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():295 -> a
+    159:166:com.android.tools.r8.graph.DexApplication bisect():250 -> a
+    167:167:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():297:297 -> a
+    167:167:com.android.tools.r8.graph.DexApplication bisect():250 -> a
+    168:171:java.util.List getSortedClasses(com.android.tools.r8.graph.DexApplication):326:329 -> a
+    1:3:com.android.tools.r8.graph.DexProgramClass getFinalClass():233:235 -> b
+    4:9:java.lang.String makeSignature(com.android.tools.r8.graph.DexApplication):335:340 -> b
+    1:10:void read():173:182 -> c
+    11:11:java.lang.String readSignature(java.io.BufferedReader):305:305 -> c
+    11:11:void read():182 -> c
+    12:28:void read():182:198 -> c
+    29:29:void read():183:183 -> c
+    30:30:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> c
+    30:30:void read():183 -> c
+    31:31:void read():183:183 -> c
+    32:41:void read():181:190 -> c
+    1:7:void write():309:315 -> d
+    8:10:void com.android.tools.r8.bisect.BisectState$Run.write(java.io.Writer):135:137 -> d
+    8:10:void write():316 -> d
+    11:16:void write():317:322 -> d
+    17:27:void write():312:322 -> d
+com.android.tools.r8.bisect.BisectState$Range -> com.android.tools.r8.p.c$a:
+    int end -> b
+    boolean $assertionsDisabled -> c
+    int start -> a
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:4:void <init>(int,int):34:37 -> <init>
+    5:9:void <init>(java.lang.String):40:44 -> <init>
+    1:3:void write(java.io.Writer):48:50 -> a
+    4:4:boolean isEmpty():54:54 -> a
+    1:1:int size():58:58 -> b
+    1:1:boolean verify():113:113 -> c
+    1:5:boolean equals(java.lang.Object):100:104 -> equals
+    1:1:int hashCode():109:109 -> hashCode
+    1:1:java.lang.String toString():95:95 -> toString
+com.android.tools.r8.bisect.BisectState$Run -> com.android.tools.r8.p.c$b:
+    boolean good -> a
+    boolean $assertionsDisabled -> c
+    com.android.tools.r8.bisect.BisectState$Range range -> b
+    1:1:void <clinit>():117:117 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.bisect.BisectOptions$Result,com.android.tools.r8.bisect.BisectState$Range):121:124 -> <init>
+    5:9:void <init>(java.lang.String):127:131 -> <init>
+com.android.tools.r8.cf.CfCodePrinter -> com.android.tools.r8.q.a:
+    java.util.Map knownTypeFields -> q
+    boolean pendingComma -> o
+    java.util.Set imports -> j
+    java.lang.StringBuilder builder -> p
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap labelToIndex -> n
+    boolean $assertionsDisabled -> r
+    java.util.Set methodNames -> l
+    java.util.List sortedLabels -> m
+    java.util.List methods -> k
+    1:1:void <clinit>():73:73 -> <clinit>
+    1:1:void <init>():88:88 -> <init>
+    2:183:void <init>():75:256 -> <init>
+    void print(com.android.tools.r8.cf.code.CfNop) -> a
+    void print(com.android.tools.r8.cf.code.CfPosition) -> a
+    1:10:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):101:110 -> a
+    11:11:java.lang.String r8Type(java.lang.String,java.lang.String):188:188 -> a
+    11:11:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):111 -> a
+    12:15:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):111:114 -> a
+    16:16:java.lang.String r8Type(java.lang.String,java.lang.String):188:188 -> a
+    16:16:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):115 -> a
+    17:18:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):115:116 -> a
+    19:19:java.lang.String r8Type(java.lang.String,java.lang.String):188:188 -> a
+    19:19:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):117 -> a
+    20:35:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):117:132 -> a
+    36:36:java.lang.String r8Type(java.lang.String,java.lang.String):188:188 -> a
+    36:36:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):133 -> a
+    37:62:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):133:158 -> a
+    63:73:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):153:163 -> a
+    74:74:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):102:102 -> a
+    75:78:java.lang.String r8Type(java.lang.String,java.util.List):192:192 -> a
+    79:79:java.lang.String numericType(com.android.tools.r8.ir.code.NumericType):214:214 -> a
+    80:80:java.lang.String dexString(com.android.tools.r8.graph.DexString):226:226 -> a
+    81:81:java.lang.String quote(java.lang.String):167:167 -> a
+    81:81:java.lang.String dexString(com.android.tools.r8.graph.DexString):226 -> a
+    82:82:java.lang.String dexString(com.android.tools.r8.graph.DexString):226:226 -> a
+    83:86:void ensureComma():289:292 -> a
+    83:86:void printNewInstruction(java.lang.String,java.lang.String[]):296 -> a
+    87:88:void printNewInstruction(java.lang.String,java.lang.String[]):297:298 -> a
+    89:89:void printNewVarInstruction(java.lang.String,com.android.tools.r8.ir.code.ValueType,int):302:302 -> a
+    90:90:void printNewJumpInstruction(java.lang.String,com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):306:306 -> a
+    91:91:java.lang.String ifTypeKind(com.android.tools.r8.ir.code.If$Type):222:222 -> a
+    91:91:void printNewJumpInstruction(java.lang.String,com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):306 -> a
+    92:92:void printNewJumpInstruction(java.lang.String,com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):306:306 -> a
+    93:96:void print(com.android.tools.r8.cf.code.CfStackInstruction):316:316 -> a
+    97:97:void print(com.android.tools.r8.cf.code.CfThrow):323:323 -> a
+    98:98:void print(com.android.tools.r8.cf.code.CfConstNull):328:328 -> a
+    99:100:void print(com.android.tools.r8.cf.code.CfConstNumber):333:334 -> a
+    101:101:java.lang.String longValue(long):171:171 -> a
+    101:101:void print(com.android.tools.r8.cf.code.CfConstNumber):334 -> a
+    102:102:void print(com.android.tools.r8.cf.code.CfConstNumber):334:334 -> a
+    103:103:void print(com.android.tools.r8.cf.code.CfConstNumber):333:333 -> a
+    104:104:void print(com.android.tools.r8.cf.code.CfConstClass):339:339 -> a
+    105:105:void print(com.android.tools.r8.cf.code.CfReturnVoid):344:344 -> a
+    106:106:void print(com.android.tools.r8.cf.code.CfReturn):349:349 -> a
+    107:107:void print(com.android.tools.r8.cf.code.CfMonitor):354:354 -> a
+    108:112:void print(com.android.tools.r8.cf.code.CfArithmeticBinop):359:359 -> a
+    113:115:void print(com.android.tools.r8.cf.code.CfCmp):367:367 -> a
+    116:120:void print(com.android.tools.r8.cf.code.CfLogicalBinop):373:373 -> a
+    121:121:void print(com.android.tools.r8.cf.code.CfNeg):381:381 -> a
+    122:126:void print(com.android.tools.r8.cf.code.CfNumberConversion):386:386 -> a
+    127:127:void print(com.android.tools.r8.cf.code.CfConstString):394:394 -> a
+    128:128:void print(com.android.tools.r8.cf.code.CfDexItemBasedConstString):399:399 -> a
+    129:129:void print(com.android.tools.r8.cf.code.CfArrayLoad):404:404 -> a
+    130:130:void print(com.android.tools.r8.cf.code.CfArrayStore):409:409 -> a
+    131:134:void print(com.android.tools.r8.cf.code.CfInvoke):414:417 -> a
+    135:136:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):279:280 -> a
+    135:136:void print(com.android.tools.r8.cf.code.CfInvoke):417 -> a
+    137:144:java.lang.String dexProto(com.android.tools.r8.graph.DexProto):268:275 -> a
+    137:144:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):282 -> a
+    137:144:void print(com.android.tools.r8.cf.code.CfInvoke):417 -> a
+    145:147:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):282:284 -> a
+    145:147:void print(com.android.tools.r8.cf.code.CfInvoke):417 -> a
+    148:149:void print(com.android.tools.r8.cf.code.CfInvoke):417:418 -> a
+    150:150:void print(com.android.tools.r8.cf.code.CfInvoke):414:414 -> a
+    151:151:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):423:423 -> a
+    152:152:void print(com.android.tools.r8.cf.code.CfFrame):428:428 -> a
+    153:153:void print(com.android.tools.r8.cf.code.CfInstanceOf):433:433 -> a
+    154:154:void print(com.android.tools.r8.cf.code.CfCheckCast):438:438 -> a
+    155:155:void print(com.android.tools.r8.cf.code.CfFieldInstruction):443:443 -> a
+    156:156:void print(com.android.tools.r8.cf.code.CfNew):448:448 -> a
+    157:157:void print(com.android.tools.r8.cf.code.CfNewArray):453:453 -> a
+    158:158:void print(com.android.tools.r8.cf.code.CfMultiANewArray):458:458 -> a
+    159:159:void print(com.android.tools.r8.cf.code.CfArrayLength):463:463 -> a
+    160:160:void print(com.android.tools.r8.cf.code.CfGoto):479:479 -> a
+    161:161:void print(com.android.tools.r8.cf.code.CfIf):485:485 -> a
+    162:162:void print(com.android.tools.r8.cf.code.CfIf):484:484 -> a
+    163:163:void print(com.android.tools.r8.cf.code.CfIfCmp):491:491 -> a
+    164:164:void print(com.android.tools.r8.cf.code.CfIfCmp):490:490 -> a
+    165:165:void print(com.android.tools.r8.cf.code.CfSwitch):496:496 -> a
+    166:166:void print(com.android.tools.r8.cf.code.CfLoad):501:501 -> a
+    167:167:void print(com.android.tools.r8.cf.code.CfStore):506:506 -> a
+    168:172:void print(com.android.tools.r8.cf.code.CfIinc):511:511 -> a
+    173:173:void print(com.android.tools.r8.cf.code.CfConstMethodHandle):519:519 -> a
+    174:174:void print(com.android.tools.r8.cf.code.CfConstMethodType):524:524 -> a
+    1:3:java.lang.String type(java.lang.String,java.util.List):177:179 -> b
+    4:4:java.lang.String valueType(com.android.tools.r8.ir.code.ValueType):210:210 -> b
+    5:5:java.lang.String memberType(com.android.tools.r8.ir.code.MemberType):218:218 -> b
+    6:11:java.lang.String dexType(com.android.tools.r8.graph.DexType):259:264 -> b
+    12:12:java.lang.String quote(java.lang.String):167:167 -> b
+    12:12:java.lang.String dexType(com.android.tools.r8.graph.DexType):264 -> b
+    13:13:java.lang.String dexType(com.android.tools.r8.graph.DexType):264:264 -> b
+    14:17:void ensureComma():289:292 -> b
+    14:17:void print(com.android.tools.r8.cf.code.CfLabel):468 -> b
+    18:18:void print(com.android.tools.r8.cf.code.CfLabel):469:469 -> b
+    1:1:java.lang.String cfType(java.lang.String):202:202 -> c
+    2:2:java.lang.String labelName(com.android.tools.r8.cf.code.CfLabel):206:206 -> c
+    1:2:java.util.List getImports():91:92 -> d
+    3:3:java.lang.String irType(java.lang.String):198:198 -> d
+    1:1:java.util.List getMethods():97:97 -> e
+    2:2:boolean lambda$type$0(java.lang.String):178:178 -> e
+    1:1:java.lang.String immutableListType():184:184 -> f
+com.android.tools.r8.cf.CfPrinter -> com.android.tools.r8.q.b:
+    java.util.List sortedLabels -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap labelToIndex -> c
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.naming.ClassNameMapper mapper -> f
+    java.util.List localsAtLabel -> d
+    int instructionIndexSpace -> h
+    int nextInstructionIndex -> g
+    java.lang.String indent -> a
+    java.lang.StringBuilder builder -> e
+    1:1:void <clinit>():87:87 -> <clinit>
+    1:1:void <init>():108:108 -> <init>
+    2:16:void <init>():101:115 -> <init>
+    17:17:void <init>(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):124:124 -> <init>
+    18:105:void <init>(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):101:188 -> <init>
+    1:22:java.util.List computeLocalsAtLabels(java.util.List):197:218 -> a
+    23:23:boolean lambda$computeLocalsAtLabels$0(int,com.android.tools.r8.graph.CfCode$LocalVariableInfo):202:202 -> a
+    24:24:int lambda$computeLocalsAtLabels$1(com.android.tools.r8.graph.CfCode$LocalVariableInfo,com.android.tools.r8.graph.CfCode$LocalVariableInfo):217:217 -> a
+    25:26:java.util.List getSortedLocalVariables(com.android.tools.r8.graph.CfCode):224:225 -> a
+    27:28:void print(java.lang.String):246:247 -> a
+    27:28:void print(com.android.tools.r8.cf.code.CfArrayLength):489 -> a
+    29:30:void print(java.lang.String):246:247 -> a
+    29:30:void print(com.android.tools.r8.cf.code.CfConstNull):293 -> a
+    31:32:void print(java.lang.String):246:247 -> a
+    31:32:void print(com.android.tools.r8.cf.code.CfNop):251 -> a
+    33:34:void print(java.lang.String):246:247 -> a
+    33:34:void print(com.android.tools.r8.cf.code.CfReturnVoid):324 -> a
+    35:36:void print(java.lang.String):246:247 -> a
+    35:36:void print(com.android.tools.r8.cf.code.CfThrow):289 -> a
+    37:66:void print(com.android.tools.r8.cf.code.CfStackInstruction):255:284 -> a
+    67:68:void print(java.lang.String):246:247 -> a
+    67:68:void print(com.android.tools.r8.cf.code.CfStackInstruction):281 -> a
+    69:70:void print(java.lang.String):246:247 -> a
+    69:70:void print(com.android.tools.r8.cf.code.CfStackInstruction):278 -> a
+    71:72:void print(java.lang.String):246:247 -> a
+    71:72:void print(com.android.tools.r8.cf.code.CfStackInstruction):275 -> a
+    73:74:void print(java.lang.String):246:247 -> a
+    73:74:void print(com.android.tools.r8.cf.code.CfStackInstruction):272 -> a
+    75:76:void print(java.lang.String):246:247 -> a
+    75:76:void print(com.android.tools.r8.cf.code.CfStackInstruction):269 -> a
+    77:78:void print(java.lang.String):246:247 -> a
+    77:78:void print(com.android.tools.r8.cf.code.CfStackInstruction):266 -> a
+    79:80:void print(java.lang.String):246:247 -> a
+    79:80:void print(com.android.tools.r8.cf.code.CfStackInstruction):263 -> a
+    81:82:void print(java.lang.String):246:247 -> a
+    81:82:void print(com.android.tools.r8.cf.code.CfStackInstruction):260 -> a
+    83:84:void print(java.lang.String):246:247 -> a
+    83:84:void print(com.android.tools.r8.cf.code.CfStackInstruction):257 -> a
+    85:101:void print(com.android.tools.r8.cf.code.CfConstNumber):297:313 -> a
+    102:102:void print(com.android.tools.r8.cf.code.CfConstNumber):310:310 -> a
+    103:103:void print(com.android.tools.r8.cf.code.CfConstNumber):307:307 -> a
+    104:104:void print(com.android.tools.r8.cf.code.CfConstNumber):304:304 -> a
+    105:105:void print(com.android.tools.r8.cf.code.CfConstNumber):301:301 -> a
+    106:108:void print(com.android.tools.r8.cf.code.CfConstClass):318:320 -> a
+    109:112:void appendType(com.android.tools.r8.graph.DexType):697:700 -> a
+    109:112:void print(com.android.tools.r8.cf.code.CfConstClass):320 -> a
+    113:113:void appendType(com.android.tools.r8.graph.DexType):698:698 -> a
+    113:113:void print(com.android.tools.r8.cf.code.CfConstClass):320 -> a
+    114:114:void print(com.android.tools.r8.cf.code.CfReturn):328:328 -> a
+    115:115:void print(com.android.tools.r8.cf.code.CfMonitor):332:332 -> a
+    116:117:void print(java.lang.String):246:247 -> a
+    116:117:void print(com.android.tools.r8.cf.code.CfMonitor):332 -> a
+    118:118:void print(com.android.tools.r8.cf.code.CfArithmeticBinop):336:336 -> a
+    119:119:void print(com.android.tools.r8.cf.code.CfCmp):340:340 -> a
+    120:120:void print(com.android.tools.r8.cf.code.CfLogicalBinop):344:344 -> a
+    121:121:void print(com.android.tools.r8.cf.code.CfNeg):348:348 -> a
+    122:122:void print(com.android.tools.r8.cf.code.CfNumberConversion):352:352 -> a
+    123:124:void print(com.android.tools.r8.cf.code.CfConstString):356:357 -> a
+    125:126:void print(com.android.tools.r8.cf.code.CfDexItemBasedConstString):361:362 -> a
+    127:128:void print(com.android.tools.r8.cf.code.CfArrayLoad):366:367 -> a
+    129:130:void print(com.android.tools.r8.cf.code.CfArrayStore):371:372 -> a
+    131:133:void print(com.android.tools.r8.cf.code.CfInvoke):376:378 -> a
+    134:137:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):382:385 -> a
+    138:237:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():0:99 -> a
+    138:237:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):385 -> a
+    238:238:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):385:385 -> a
+    239:258:void print(com.android.tools.r8.cf.code.CfFrame):389:408 -> a
+    259:262:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):412:415 -> a
+    263:266:void appendType(com.android.tools.r8.graph.DexType):697:700 -> a
+    263:266:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):415 -> a
+    267:267:void appendType(com.android.tools.r8.graph.DexType):698:698 -> a
+    267:267:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):415 -> a
+    268:268:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):417:417 -> a
+    269:271:void print(com.android.tools.r8.cf.code.CfInstanceOf):422:424 -> a
+    272:274:void print(com.android.tools.r8.cf.code.CfCheckCast):428:430 -> a
+    275:290:void print(com.android.tools.r8.cf.code.CfFieldInstruction):434:449 -> a
+    291:291:void print(com.android.tools.r8.cf.code.CfFieldInstruction):440:440 -> a
+    292:301:void print(com.android.tools.r8.cf.code.CfFieldInstruction):437:446 -> a
+    302:310:void print(com.android.tools.r8.cf.code.CfFieldInstruction):443:451 -> a
+    311:316:void appendField(com.android.tools.r8.graph.DexField):718:723 -> a
+    311:316:void print(com.android.tools.r8.cf.code.CfFieldInstruction):451 -> a
+    317:318:void print(com.android.tools.r8.cf.code.CfFieldInstruction):452:453 -> a
+    319:323:void appendDescriptor(com.android.tools.r8.graph.DexType):689:693 -> a
+    319:323:void print(com.android.tools.r8.cf.code.CfFieldInstruction):453 -> a
+    324:326:void print(com.android.tools.r8.cf.code.CfNew):457:459 -> a
+    327:340:void print(com.android.tools.r8.cf.code.CfNewArray):463:476 -> a
+    341:344:void print(com.android.tools.r8.cf.code.CfMultiANewArray):482:485 -> a
+    345:349:void print(com.android.tools.r8.cf.code.CfPosition):508:512 -> a
+    350:351:void print(com.android.tools.r8.cf.code.CfGoto):517:518 -> a
+    352:356:void print(com.android.tools.r8.cf.code.CfIf):526:530 -> a
+    357:357:java.lang.String ifPostfix(com.android.tools.r8.ir.code.If$Type):522:522 -> a
+    357:357:void print(com.android.tools.r8.cf.code.CfIf):530 -> a
+    358:360:void print(com.android.tools.r8.cf.code.CfIf):530:532 -> a
+    361:364:void print(com.android.tools.r8.cf.code.CfIfCmp):536:539 -> a
+    365:365:java.lang.String ifPostfix(com.android.tools.r8.ir.code.If$Type):522:522 -> a
+    365:365:void print(com.android.tools.r8.cf.code.CfIfCmp):539 -> a
+    366:368:void print(com.android.tools.r8.cf.code.CfIfCmp):539:541 -> a
+    369:386:void print(com.android.tools.r8.cf.code.CfSwitch):545:562 -> a
+    387:387:void print(com.android.tools.r8.cf.code.CfLoad):566:566 -> a
+    388:389:void printPrefixed(com.android.tools.r8.ir.code.ValueType,java.lang.String,int):583:584 -> a
+    388:389:void print(com.android.tools.r8.cf.code.CfLoad):566 -> a
+    390:390:void print(com.android.tools.r8.cf.code.CfStore):570:570 -> a
+    391:392:void printPrefixed(com.android.tools.r8.ir.code.ValueType,java.lang.String,int):583:584 -> a
+    391:392:void print(com.android.tools.r8.cf.code.CfStore):570 -> a
+    393:398:void print(com.android.tools.r8.cf.code.CfIinc):574:579 -> a
+    399:411:char typePrefix(com.android.tools.r8.ir.code.ValueType):588:600 -> a
+    412:430:char typePrefix(com.android.tools.r8.ir.code.MemberType):605:623 -> a
+    431:433:void print(com.android.tools.r8.cf.code.CfConstMethodHandle):646:648 -> a
+    434:436:void print(com.android.tools.r8.cf.code.CfConstMethodType):652:654 -> a
+    437:437:java.lang.String getLabel(com.android.tools.r8.cf.code.CfLabel):658:658 -> a
+    438:440:void indent():674:676 -> a
+    441:441:void appendComment(java.lang.String):685:685 -> a
+    442:450:void appendClass(com.android.tools.r8.graph.DexType):705:713 -> a
+    451:451:void appendClass(com.android.tools.r8.graph.DexType):712:712 -> a
+    452:452:void appendClass(com.android.tools.r8.graph.DexType):711:711 -> a
+    453:460:void appendMethod(com.android.tools.r8.graph.DexMethod):727:734 -> a
+    461:560:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():0:99 -> a
+    461:560:void appendMethod(com.android.tools.r8.graph.DexMethod):734 -> a
+    561:561:void appendMethod(com.android.tools.r8.graph.DexMethod):734:734 -> a
+    562:562:java.lang.String opcodeName(int):738:738 -> a
+    1:13:int lambda$getSortedLocalVariables$2(com.android.tools.r8.graph.CfCode$LocalVariableInfo,com.android.tools.r8.graph.CfCode$LocalVariableInfo):228:240 -> b
+    14:15:void print(java.lang.String):246:247 -> b
+    16:26:void print(com.android.tools.r8.cf.code.CfLabel):493:503 -> b
+    27:27:void print(com.android.tools.r8.cf.code.CfLabel):501:501 -> b
+    28:28:void print(com.android.tools.r8.cf.code.CfLabel):499:499 -> b
+    29:30:void instructionIndex():668:669 -> b
+    1:2:void newline():662:663 -> c
+    1:1:java.lang.String toString():743:743 -> toString
+com.android.tools.r8.cf.CfRegisterAllocator -> com.android.tools.r8.q.d:
+    boolean $assertionsDisabled -> n
+    int maxRegisterNumber -> l
+    com.android.tools.r8.graph.AppView appView -> a
+    int maxArgumentRegisterNumber -> m
+    int nextUnusedRegisterNumber -> k
+    com.android.tools.r8.ir.code.IRCode code -> b
+    com.android.tools.r8.cf.TypeVerificationHelper typeHelper -> c
+    java.util.PriorityQueue unhandled -> i
+    java.util.NavigableSet freeRegisters -> j
+    java.util.Map liveAtEntrySets -> d
+    java.util.List liveIntervals -> f
+    java.util.List inactive -> h
+    java.util.List active -> g
+    java.util.Map lazyTypeInfoAtBlockEntry -> e
+    1:1:void <clinit>():58:58 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):115:115 -> <init>
+    2:28:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):92:118 -> <init>
+    1:1:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):128:128 -> a
+    2:6:int getRegisterForValue(com.android.tools.r8.ir.code.Value):132:136 -> a
+    7:7:com.android.tools.r8.utils.InternalOptions options():146:146 -> a
+    8:29:int getNextFreeRegister(boolean):263:284 -> a
+    30:33:void freeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):288:291 -> a
+    34:34:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):349:349 -> a
+    34:34:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):333 -> a
+    35:36:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):334:335 -> a
+    37:40:void updateRegisterState(int,boolean):342:345 -> a
+    37:40:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):335 -> a
+    41:45:void updateHints(com.android.tools.r8.ir.regalloc.LiveIntervals):304:308 -> a
+    41:45:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):336 -> a
+    46:46:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):337:337 -> a
+    47:51:void addToLiveAtEntrySet(com.android.tools.r8.ir.code.BasicBlock,java.util.Collection):353:357 -> a
+    52:52:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry getTypesAtBlockEntry(com.android.tools.r8.ir.code.BasicBlock):363:363 -> a
+    53:75:boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):399:421 -> a
+    76:83:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):528:535 -> a
+    84:84:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    84:84:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):535 -> a
+    85:87:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):537:539 -> a
+    88:91:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):471:474 -> a
+    88:91:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):538 -> a
+    92:119:boolean tryApplyInstructionWithDependentOutType(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque):432:459 -> a
+    92:119:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):476 -> a
+    92:119:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):538 -> a
+    120:140:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):479:499 -> a
+    120:140:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):538 -> a
+    141:147:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):544:550 -> a
+    148:148:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet.<init>(int):95:95 -> a
+    148:148:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):550 -> a
+    149:149:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):551:551 -> a
+    150:163:void applyInstructionsBackwardsToRegisterLiveness(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet,int):506:519 -> a
+    150:163:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):552 -> a
+    164:165:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):558:559 -> a
+    166:166:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> a
+    166:166:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):559 -> a
+    167:167:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):560:560 -> a
+    168:168:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntIterator.next():57:57 -> a
+    168:168:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntIterator.next():33 -> a
+    168:168:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):560 -> a
+    169:176:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):560:567 -> a
+    177:182:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):566:571 -> a
+    183:194:void updateFirstRegisterMapByJoiningTheSecond(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):578:589 -> a
+    195:204:void updateFirstStackByJoiningTheSecond(java.util.List,java.util.List):596:605 -> a
+    1:1:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):141:141 -> b
+    2:7:void computeNeedsRegister():165:170 -> b
+    2:7:void allocateRegisters():151 -> b
+    8:11:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():176:179 -> b
+    8:11:void allocateRegisters():152 -> b
+    12:12:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():178:178 -> b
+    12:12:void allocateRegisters():152 -> b
+    13:53:void performLinearScan():184:224 -> b
+    13:53:void allocateRegisters():153 -> b
+    54:62:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals):315:323 -> b
+    54:62:void performLinearScan():231 -> b
+    54:62:void allocateRegisters():153 -> b
+    63:63:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> b
+    63:63:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals):323 -> b
+    63:63:void performLinearScan():231 -> b
+    63:63:void allocateRegisters():153 -> b
+    64:73:void performLinearScan():232:241 -> b
+    64:73:void allocateRegisters():153 -> b
+    74:74:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> b
+    74:74:void performLinearScan():242 -> b
+    74:74:void allocateRegisters():153 -> b
+    75:76:void performLinearScan():255:256 -> b
+    75:76:void allocateRegisters():153 -> b
+    77:77:void performLinearScan():251:251 -> b
+    77:77:void allocateRegisters():153 -> b
+    78:79:void allocateRegisters():158:159 -> b
+    80:83:void takeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):296:299 -> b
+    84:85:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):366:367 -> b
+    86:86:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> b
+    86:86:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):367 -> b
+    87:96:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):368:377 -> b
+    97:108:void mergeBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):383:394 -> b
+    1:1:int registersUsed():123:123 -> c
+com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry -> com.android.tools.r8.q.c:
+    java.util.List stack -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap registers -> a
+    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List):71:73 -> <init>
+    1:11:java.lang.String toString():78:88 -> toString
+com.android.tools.r8.cf.FixedLocalValue -> com.android.tools.r8.q.e:
+    com.android.tools.r8.ir.code.Phi phi -> q
+    1:2:void <init>(com.android.tools.r8.ir.code.Phi):21:22 -> <init>
+    boolean isConstant() -> L
+    boolean needsRegister() -> W
+    1:1:int getRegister(com.android.tools.r8.cf.CfRegisterAllocator):26:26 -> a
+    2:2:int com.android.tools.r8.cf.CfRegisterAllocator.getRegisterForValue(com.android.tools.r8.ir.code.Value,int):128:128 -> a
+    2:2:int getRegister(com.android.tools.r8.cf.CfRegisterAllocator):26 -> a
+    1:1:com.android.tools.r8.ir.code.Phi getPhi():30:30 -> h0
+    1:1:java.lang.String toString():45:45 -> toString
+com.android.tools.r8.cf.LoadStoreHelper -> com.android.tools.r8.q.g:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map clonableConstants -> d
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.ir.code.IRCode code -> b
+    com.android.tools.r8.cf.TypeVerificationHelper typesHelper -> c
+    java.util.ListIterator blockIterator -> e
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):41:41 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):38:44 -> <init>
+    1:11:void insertLoadsAndStores():99:109 -> a
+    12:32:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):114:134 -> a
+    33:36:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):245:248 -> a
+    33:36:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
+    37:39:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
+    37:39:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):248 -> a
+    37:39:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
+    40:47:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):249:256 -> a
+    40:47:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
+    48:50:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
+    48:50:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):256 -> a
+    48:50:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
+    51:51:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):257:257 -> a
+    51:51:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
+    52:55:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):136:139 -> a
+    56:56:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.ir.code.Value,int):143:143 -> a
+    57:57:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.graph.DexType,int):147:147 -> a
+    57:57:void popOutType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):214 -> a
+    58:58:void popOutType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):214:214 -> a
+    59:67:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):152:160 -> a
+    68:68:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):287:287 -> a
+    68:68:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):161 -> a
+    69:71:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
+    69:71:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):287 -> a
+    69:71:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):161 -> a
+    72:72:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):163:163 -> a
+    73:73:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):287:287 -> a
+    73:73:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):163 -> a
+    74:76:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
+    74:76:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):287 -> a
+    74:76:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):163 -> a
+    77:79:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):165:167 -> a
+    80:86:void popOutValue(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):223:229 -> a
+    87:89:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
+    87:89:void popOutValue(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):229 -> a
+    90:110:com.android.tools.r8.ir.code.Instruction load(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):262:282 -> a
+    1:7:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):171:177 -> b
+    8:8:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):93:93 -> b
+    8:8:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
+    9:16:boolean hasLocalInfoOrUsersOutsideThisBlock(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock):48:55 -> b
+    9:16:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):94 -> b
+    9:16:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
+    17:17:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95:95 -> b
+    17:17:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
+    18:36:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):63:81 -> b
+    18:36:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95 -> b
+    18:36:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
+    37:37:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):77:77 -> b
+    37:37:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95 -> b
+    37:37:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
+    38:54:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):72:88 -> b
+    38:54:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95 -> b
+    38:54:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
+    55:55:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):84:84 -> b
+    55:55:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95 -> b
+    55:55:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
+    56:58:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):178:178 -> b
+    60:68:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):180:188 -> b
+    69:69:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.ir.code.Value,int):143:143 -> b
+    69:69:void popOutValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):218 -> b
+    69:69:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):188 -> b
+    70:70:void popOutValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):218:218 -> b
+    70:70:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):188 -> b
+    71:86:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):191:206 -> b
+    87:89:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> b
+    87:89:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):206 -> b
+    90:92:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):207:209 -> b
+com.android.tools.r8.cf.LoadStoreHelper$PhiMove -> com.android.tools.r8.q.f:
+    com.android.tools.r8.ir.code.Phi phi -> a
+    com.android.tools.r8.ir.code.Value operand -> b
+    1:3:void <init>(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value):236:238 -> <init>
+com.android.tools.r8.cf.TypeVerificationHelper -> com.android.tools.r8.q.m:
+    boolean computingVerificationTypes -> i
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.graph.AppView appView -> e
+    com.android.tools.r8.ir.code.IRCode code -> f
+    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo DOUBLE -> d
+    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo LONG -> c
+    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo FLOAT -> b
+    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo INT -> a
+    java.util.Map types -> g
+    java.util.Map newInstanceInfos -> h
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):115:115 -> <init>
+    2:15:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):110:123 -> <init>
+    1:8:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):127:134 -> a
+    9:9:boolean com.android.tools.r8.graph.DexType.isFloatType():229:229 -> a
+    9:9:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):136 -> a
+    10:12:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):137:139 -> a
+    13:13:boolean com.android.tools.r8.graph.DexType.isByteType():213:213 -> a
+    13:13:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):140 -> a
+    14:14:boolean com.android.tools.r8.graph.DexType.isCharType():217:217 -> a
+    14:14:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):141 -> a
+    15:15:boolean com.android.tools.r8.graph.DexType.isShortType():221:221 -> a
+    15:15:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):142 -> a
+    16:16:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):143:143 -> a
+    17:22:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):139:144 -> a
+    23:26:com.android.tools.r8.graph.DexType getDexType(com.android.tools.r8.ir.code.Value):148:151 -> a
+    27:32:com.android.tools.r8.graph.DexType join(java.util.Set):180:185 -> a
+    33:33:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getLatticeElement(com.android.tools.r8.graph.DexType):219:219 -> a
+    33:33:com.android.tools.r8.graph.DexType join(java.util.Set):185 -> a
+    34:35:com.android.tools.r8.graph.DexType join(java.util.Set):186:187 -> a
+    36:36:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getLatticeElement(com.android.tools.r8.graph.DexType):219:219 -> a
+    36:36:com.android.tools.r8.graph.DexType join(java.util.Set):187 -> a
+    37:47:com.android.tools.r8.graph.DexType join(java.util.Set):187:197 -> a
+    48:48:com.android.tools.r8.graph.DexType join(java.util.Set):196:196 -> a
+    49:49:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    49:49:com.android.tools.r8.graph.DexType join(java.util.Set):196 -> a
+    50:50:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    50:50:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    50:50:com.android.tools.r8.graph.DexType join(java.util.Set):196 -> a
+    51:51:com.android.tools.r8.graph.DexType join(java.util.Set):196:196 -> a
+    52:62:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo join(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):205:215 -> a
+    63:127:java.util.Map computeVerificationTypes():223:287 -> a
+    128:130:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.ir.code.Value):313:315 -> a
+    128:130:java.util.Map computeVerificationTypes():288 -> a
+    131:150:java.util.Map computeVerificationTypes():290:309 -> a
+    151:156:void addUsers(com.android.tools.r8.ir.code.Value,java.util.Set):319:324 -> a
+    1:19:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):155:173 -> b
+    20:20:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):171:171 -> b
+    21:21:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):169:169 -> b
+    22:22:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):167:167 -> b
+    23:23:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):165:165 -> b
+    24:24:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):163:163 -> b
+com.android.tools.r8.cf.TypeVerificationHelper$1 -> com.android.tools.r8.q.h:
+com.android.tools.r8.cf.TypeVerificationHelper$InitializedTypeInfo -> com.android.tools.r8.q.i:
+    com.android.tools.r8.graph.DexType type -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():41:41 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.cf.TypeVerificationHelper$1):41:41 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexType):44:46 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getDexType():51:51 -> a
+    1:1:java.lang.String toString():56:56 -> toString
+com.android.tools.r8.cf.TypeVerificationHelper$NewInstanceInfo -> com.android.tools.r8.q.j:
+    com.android.tools.r8.ir.code.NewInstance newInstance -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():60:60 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.NewInstance):63:65 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getDexType():70:70 -> a
+    1:1:java.lang.String toString():75:75 -> toString
+    2:2:com.android.tools.r8.graph.DexType getDexType():70:70 -> toString
+    2:2:java.lang.String toString():75 -> toString
+    3:3:java.lang.String toString():75:75 -> toString
+com.android.tools.r8.cf.TypeVerificationHelper$ThisInstanceInfo -> com.android.tools.r8.q.k:
+    com.android.tools.r8.ir.code.Argument thisArgument -> b
+    com.android.tools.r8.graph.DexType type -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():79:79 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.ir.code.Argument,com.android.tools.r8.graph.DexType):83:87 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getDexType():92:92 -> a
+    1:1:java.lang.String toString():97:97 -> toString
+    2:2:com.android.tools.r8.graph.DexType getDexType():92:92 -> toString
+    2:2:java.lang.String toString():97 -> toString
+    3:3:java.lang.String toString():97:97 -> toString
+com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo -> com.android.tools.r8.q.l:
+    com.android.tools.r8.graph.DexType getDexType() -> a
+com.android.tools.r8.cf.code.CfArithmeticBinop -> com.android.tools.r8.q.n.a:
+    com.android.tools.r8.ir.code.NumericType type -> b
+    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode opcode -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode,com.android.tools.r8.ir.code.NumericType):33:37 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():90:90 -> a
+    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):171 -> a
+    2:2:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):91:91 -> a
+    3:3:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):89:89 -> a
+    4:4:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):87:87 -> a
+    5:5:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):85:85 -> a
+    6:6:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):83:83 -> a
+    7:7:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):81:81 -> a
+    8:8:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):79:79 -> a
+    9:9:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):77:77 -> a
+    10:10:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):75:75 -> a
+    11:11:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):73:73 -> a
+    12:12:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):71:71 -> a
+    13:13:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):69:69 -> a
+    14:14:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):67:67 -> a
+    15:15:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):65:65 -> a
+    16:16:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):63:63 -> a
+    17:17:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):61:61 -> a
+    18:18:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):59:59 -> a
+    19:19:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):57:57 -> a
+    20:20:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):55:55 -> a
+    21:21:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):53:53 -> a
+    22:22:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):51:51 -> a
+    23:23:void print(com.android.tools.r8.cf.CfPrinter):127:127 -> a
+    24:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):132:132 -> a
+    25:45:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):143:163 -> a
+    46:46:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):160:160 -> a
+    47:47:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):157:157 -> a
+    48:48:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):154:154 -> a
+    49:49:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):151:151 -> a
+    50:50:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):148:148 -> a
+    1:1:boolean canThrow():137:137 -> e
+    1:13:int getAsmOpcode():96:108 -> r
+    14:14:int getAsmOpcode():106:106 -> r
+    15:15:int getAsmOpcode():104:104 -> r
+    16:16:int getAsmOpcode():102:102 -> r
+    17:17:int getAsmOpcode():100:100 -> r
+    18:18:int getAsmOpcode():98:98 -> r
+    1:1:int getAsmOpcodeTypeOffset():113:113 -> s
+    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getOpcode():41:41 -> t
+    1:1:com.android.tools.r8.ir.code.NumericType getType():45:45 -> u
+com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode -> com.android.tools.r8.q.n.a$a:
+    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode[] $VALUES -> f
+    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Sub -> b
+    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Add -> a
+    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Rem -> e
+    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Div -> d
+    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Mul -> c
+    1:5:void <clinit>():23:27 -> <clinit>
+    6:6:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(java.lang.String,int):22:22 -> <init>
+com.android.tools.r8.cf.code.CfArrayLength -> com.android.tools.r8.q.n.b:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:1:void <init>():18:18 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):22:22 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):27:27 -> a
+    3:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):37:40 -> a
+    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):39:39 -> a
+    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayLength():82:82 -> a
+    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):47 -> a
+    boolean canThrow() -> e
+com.android.tools.r8.cf.code.CfArrayLoad -> com.android.tools.r8.q.n.c:
+    boolean $assertionsDisabled -> b
+    com.android.tools.r8.ir.code.MemberType type -> a
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.MemberType):25:27 -> <init>
+    1:19:int getLoadType():35:53 -> a
+    1:19:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59 -> a
+    20:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:59 -> a
+    21:21:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> a
+    22:26:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):74:78 -> a
+    27:45:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):37:55 -> a
+    27:45:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
+    46:46:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):53:53 -> a
+    46:46:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
+    47:47:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):48:48 -> a
+    47:47:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
+    48:48:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):46:46 -> a
+    48:48:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
+    49:49:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):44:44 -> a
+    49:49:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
+    50:58:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):42:50 -> a
+    50:58:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
+    59:65:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):79:85 -> a
+    66:66:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayGet():78:78 -> a
+    66:66:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):92 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.ir.code.MemberType getType():31:31 -> r
+com.android.tools.r8.cf.code.CfArrayStore -> com.android.tools.r8.q.n.d:
+    com.android.tools.r8.ir.code.MemberType type -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.MemberType):24:25 -> <init>
+    1:19:int getStoreType():33:51 -> a
+    1:19:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):57 -> a
+    20:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):57:57 -> a
+    21:21:void print(com.android.tools.r8.cf.CfPrinter):62:62 -> a
+    22:25:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):72:75 -> a
+    26:26:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayPut():86:86 -> a
+    26:26:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):82 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.ir.code.MemberType getType():29:29 -> r
+com.android.tools.r8.cf.code.CfCheckCast -> com.android.tools.r8.q.n.e:
+    com.android.tools.r8.graph.DexType type -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexType):23:24 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
+    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):43:43 -> a
+    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):54:56 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):63:63 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.graph.DexType getType():28:28 -> r
+com.android.tools.r8.cf.code.CfCmp -> com.android.tools.r8.q.n.f:
+    com.android.tools.r8.ir.code.Cmp$Bias bias -> a
+    com.android.tools.r8.ir.code.NumericType type -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:8:void <init>(com.android.tools.r8.ir.code.Cmp$Bias,com.android.tools.r8.ir.code.NumericType):27:34 -> <init>
+    1:1:com.android.tools.r8.cf.code.CfCmp fromAsm(int):58:58 -> a
+    2:2:com.android.tools.r8.cf.code.CfCmp fromAsm(int):56:56 -> a
+    3:3:com.android.tools.r8.cf.code.CfCmp fromAsm(int):54:54 -> a
+    4:4:com.android.tools.r8.cf.code.CfCmp fromAsm(int):52:52 -> a
+    5:5:com.android.tools.r8.cf.code.CfCmp fromAsm(int):50:50 -> a
+    6:6:com.android.tools.r8.cf.code.CfCmp fromAsm(int):48:48 -> a
+    7:7:void print(com.android.tools.r8.cf.CfPrinter):77:77 -> a
+    8:8:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):82:82 -> a
+    9:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):87:89 -> a
+    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():90:90 -> a
+    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):96 -> a
+    1:9:int getAsmOpcode():63:71 -> r
+    10:10:int getAsmOpcode():69:69 -> r
+    11:11:int getAsmOpcode():67:67 -> r
+    1:1:com.android.tools.r8.ir.code.Cmp$Bias getBias():38:38 -> s
+    1:1:com.android.tools.r8.ir.code.NumericType getType():42:42 -> t
+com.android.tools.r8.cf.code.CfConstClass -> com.android.tools.r8.q.n.g:
+    com.android.tools.r8.graph.DexType type -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexType):23:24 -> <init>
+    1:1:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
+    2:23:java.lang.String getInternalName(com.android.tools.r8.naming.NamingLens):47:68 -> a
+    2:23:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33 -> a
+    24:24:java.lang.String getInternalName(com.android.tools.r8.naming.NamingLens):50:50 -> a
+    24:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33 -> a
+    25:25:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
+    26:26:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):74:74 -> a
+    27:27:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):79:79 -> a
+    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):86:86 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.graph.DexType getType():28:28 -> r
+com.android.tools.r8.cf.code.CfConstMethodHandle -> com.android.tools.r8.q.n.h:
+    com.android.tools.r8.graph.DexMethodHandle handle -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexMethodHandle):23:24 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
+    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):43:43 -> a
+    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):54:54 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodHandle():333:333 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):62 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.graph.DexMethodHandle getHandle():28:28 -> r
+com.android.tools.r8.cf.code.CfConstMethodType -> com.android.tools.r8.q.n.i:
+    com.android.tools.r8.graph.DexProto type -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexProto):23:24 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
+    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):43:43 -> a
+    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):54:54 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodType():337:337 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):62 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.graph.DexProto getType():28:28 -> r
+com.android.tools.r8.cf.code.CfConstNull -> com.android.tools.r8.q.n.j:
+    1:1:void <init>():18:18 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):22:22 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):27:27 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):32:32 -> a
+    4:1145:void com.android.tools.r8.ir.conversion.IRBuilder.addNullConst(int):0:1141 -> a
+    4:1145:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):32 -> a
+    1146:1146:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():107:107 -> a
+    1146:1146:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):39 -> a
+com.android.tools.r8.cf.code.CfConstNumber -> com.android.tools.r8.q.n.k:
+    com.android.tools.r8.ir.code.ValueType type -> b
+    long value -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:3:void <init>(long,com.android.tools.r8.ir.code.ValueType):24:26 -> <init>
+    1:53:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:111 -> a
+    54:61:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):99:106 -> a
+    62:62:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):101:101 -> a
+    63:63:boolean isNegativeZeroDouble(double):116:116 -> a
+    63:63:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):102 -> a
+    64:64:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):103:103 -> a
+    65:69:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):76:80 -> a
+    70:85:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):78:93 -> a
+    86:86:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):88:88 -> a
+    87:87:boolean isNegativeZeroFloat(float):120:120 -> a
+    87:87:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):89 -> a
+    88:88:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):90:90 -> a
+    89:97:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):62:70 -> a
+    98:98:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():107:107 -> a
+    98:98:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):137 -> a
+    99:99:boolean isNegativeZeroDouble(double):116:116 -> a
+    100:100:boolean isNegativeZeroFloat(float):120:120 -> a
+    101:101:void print(com.android.tools.r8.cf.CfPrinter):125:125 -> a
+    102:102:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130:130 -> a
+    103:113:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():125:135 -> a
+    103:113:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
+    114:114:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():133:133 -> a
+    114:114:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
+    115:115:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():131:131 -> a
+    115:115:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
+    116:116:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():129:129 -> a
+    116:116:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
+    117:117:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():127:127 -> a
+    117:117:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
+    118:118:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130:130 -> a
+    1:2:double getDoubleValue():53:54 -> r
+    1:2:float getFloatValue():48:49 -> s
+    1:2:int getIntValue():38:39 -> t
+    1:2:long getLongValue():43:44 -> u
+    1:1:long getRawValue():34:34 -> v
+    1:1:com.android.tools.r8.ir.code.ValueType getType():30:30 -> w
+com.android.tools.r8.cf.code.CfConstString -> com.android.tools.r8.q.n.l:
+    com.android.tools.r8.graph.DexString string -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexString):21:22 -> <init>
+    com.android.tools.r8.cf.code.CfConstString asConstString() -> a
+    1:1:void setString(com.android.tools.r8.graph.DexString):30:30 -> a
+    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):45:45 -> a
+    3:3:void print(com.android.tools.r8.cf.CfPrinter):50:50 -> a
+    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):61:61 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():107:107 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):69 -> a
+    boolean canThrow() -> e
+    boolean isConstString() -> i
+    1:1:com.android.tools.r8.graph.DexString getString():26:26 -> r
+com.android.tools.r8.cf.code.CfDexItemBasedConstString -> com.android.tools.r8.q.n.m:
+    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> b
+    com.android.tools.r8.graph.DexReference item -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):25:27 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):50:50 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):56:56 -> a
+    3:5:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):67:69 -> a
+    6:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):75:75 -> a
+    9:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDexItemBasedConstString(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType):95:95 -> a
+    9:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):85 -> a
+    com.android.tools.r8.cf.code.CfDexItemBasedConstString asDexItemBasedConstString() -> b
+    boolean canThrow() -> e
+    boolean isDexItemBasedConstString() -> j
+    1:1:com.android.tools.r8.graph.DexReference getItem():31:31 -> r
+    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():35:35 -> s
+com.android.tools.r8.cf.code.CfFieldInstruction -> com.android.tools.r8.q.n.n:
+    com.android.tools.r8.graph.DexField field -> b
+    com.android.tools.r8.graph.DexField declaringField -> c
+    boolean $assertionsDisabled -> d
+    int opcode -> a
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:5:void <init>(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):27:31 -> <init>
+    1:4:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):54:57 -> a
+    5:5:void print(com.android.tools.r8.cf.CfPrinter):62:62 -> a
+    6:20:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):67:81 -> a
+    21:21:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):72:72 -> a
+    22:31:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):69:78 -> a
+    32:32:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):75:75 -> a
+    33:60:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):92:119 -> a
+    61:63:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):113:115 -> a
+    64:65:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):107:108 -> a
+    66:67:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):101:102 -> a
+    68:68:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):96:96 -> a
+    69:79:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):127:137 -> a
+    80:80:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):135:135 -> a
+    81:81:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):133:133 -> a
+    82:82:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):131:131 -> a
+    83:83:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):129:129 -> a
+    com.android.tools.r8.cf.code.CfFieldInstruction asFieldInstruction() -> c
+    boolean canThrow() -> e
+    boolean isFieldInstruction() -> k
+    1:1:com.android.tools.r8.graph.DexField getField():35:35 -> r
+    1:1:int getOpcode():39:39 -> s
+com.android.tools.r8.cf.code.CfFrame -> com.android.tools.r8.q.n.p:
+    java.util.List stack -> b
+    boolean $assertionsDisabled -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap locals -> a
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap,java.util.List):198:202 -> <init>
+    1:1:int computeStackCount():223:223 -> a
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):215 -> a
+    2:8:java.lang.Object[] computeStackTypes(int,com.android.tools.r8.naming.NamingLens):227:233 -> a
+    2:8:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):216 -> a
+    9:18:int computeLocalsCount():239:248 -> a
+    9:18:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):217 -> a
+    19:25:java.lang.Object[] computeLocalsTypes(int,com.android.tools.r8.naming.NamingLens):259:265 -> a
+    19:25:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):218 -> a
+    26:26:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):219:219 -> a
+    27:27:void print(com.android.tools.r8.cf.CfPrinter):279:279 -> a
+    28:28:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):285:285 -> a
+    29:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):297:297 -> a
+    boolean emitsIR() -> f
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getLocals():206:206 -> r
+    1:1:java.util.List getStack():210:210 -> s
+    1:1:java.lang.String toString():274:274 -> toString
+com.android.tools.r8.cf.code.CfFrame$1 -> com.android.tools.r8.q.n.o:
+com.android.tools.r8.cf.code.CfFrame$FrameType -> com.android.tools.r8.q.n.p$a:
+    1:1:void <init>(com.android.tools.r8.cf.code.CfFrame$1):26:26 -> <init>
+    2:2:void <init>():74:74 -> <init>
+    com.android.tools.r8.graph.DexType getInitializedType() -> a
+    java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens) -> a
+    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType initialized(com.android.tools.r8.graph.DexType):29:29 -> a
+    2:2:com.android.tools.r8.cf.code.CfFrame$FrameType uninitializedNew(com.android.tools.r8.cf.code.CfLabel):33:33 -> a
+    com.android.tools.r8.cf.code.CfLabel getUninitializedLabel() -> b
+    boolean isInitialized() -> c
+    boolean isTop() -> d
+    boolean isUninitializedNew() -> e
+    boolean isUninitializedThis() -> f
+    boolean isWide() -> g
+    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType top():41:41 -> h
+    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType uninitializedThis():37:37 -> i
+com.android.tools.r8.cf.code.CfFrame$InitializedType -> com.android.tools.r8.q.n.q:
+    com.android.tools.r8.graph.DexType type -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():77:77 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.cf.code.CfFrame$1):77:77 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexType):81:83 -> <init>
+    1:16:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):93:108 -> a
+    17:17:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):100:100 -> a
+    18:26:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):98:106 -> a
+    27:27:com.android.tools.r8.graph.DexType getInitializedType():124:124 -> a
+    boolean isInitialized() -> c
+    1:1:boolean isWide():114:114 -> g
+    1:1:java.lang.String toString():88:88 -> toString
+com.android.tools.r8.cf.code.CfFrame$Top -> com.android.tools.r8.q.n.r:
+    com.android.tools.r8.cf.code.CfFrame$Top SINGLETON -> a
+    1:1:void <clinit>():130:130 -> <clinit>
+    1:1:void <init>():128:128 -> <init>
+    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):139:139 -> a
+    boolean isTop() -> d
+    1:1:com.android.tools.r8.cf.code.CfFrame$Top access$300():128:128 -> j
+com.android.tools.r8.cf.code.CfFrame$UninitializedNew -> com.android.tools.r8.q.n.s:
+    com.android.tools.r8.cf.code.CfLabel label -> a
+    1:1:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfFrame$1):148:148 -> <init>
+    2:3:void <init>(com.android.tools.r8.cf.code.CfLabel):151:152 -> <init>
+    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):162:162 -> a
+    1:1:com.android.tools.r8.cf.code.CfLabel getUninitializedLabel():172:172 -> b
+    boolean isUninitializedNew() -> e
+com.android.tools.r8.cf.code.CfFrame$UninitializedThis -> com.android.tools.r8.q.n.t:
+    1:1:void <init>(com.android.tools.r8.cf.code.CfFrame$1):176:176 -> <init>
+    2:2:void <init>():177:177 -> <init>
+    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):181:181 -> a
+    boolean isUninitializedThis() -> f
+com.android.tools.r8.cf.code.CfGoto -> com.android.tools.r8.q.n.u:
+    com.android.tools.r8.cf.code.CfLabel target -> a
+    1:2:void <init>(com.android.tools.r8.cf.code.CfLabel):21:22 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47:47 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):52:52 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):57:57 -> a
+    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
+    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):64 -> a
+    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():42:42 -> g
+    boolean isJump() -> m
+com.android.tools.r8.cf.code.CfIf -> com.android.tools.r8.q.n.v:
+    com.android.tools.r8.ir.code.If$Type kind -> a
+    com.android.tools.r8.ir.code.ValueType type -> b
+    com.android.tools.r8.cf.code.CfLabel target -> c
+    1:4:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):27:30 -> <init>
+    1:1:void print(com.android.tools.r8.cf.CfPrinter):67:67 -> a
+    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72:72 -> a
+    3:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):87:90 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):97 -> a
+    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():43:43 -> g
+    boolean isConditionalJump() -> h
+    boolean isJump() -> m
+    1:1:com.android.tools.r8.ir.code.If$Type getKind():38:38 -> r
+    1:15:int getOpcode():47:61 -> s
+    16:16:int getOpcode():59:59 -> s
+    17:17:int getOpcode():49:49 -> s
+    1:1:com.android.tools.r8.ir.code.ValueType getType():34:34 -> t
+com.android.tools.r8.cf.code.CfIfCmp -> com.android.tools.r8.q.n.w:
+    com.android.tools.r8.ir.code.If$Type kind -> a
+    com.android.tools.r8.ir.code.ValueType type -> b
+    com.android.tools.r8.cf.code.CfLabel target -> c
+    1:4:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):27:30 -> <init>
+    1:15:int getOpcode():47:61 -> a
+    1:15:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72 -> a
+    16:16:int getOpcode():59:59 -> a
+    16:16:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72 -> a
+    17:17:int getOpcode():49:49 -> a
+    17:17:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72 -> a
+    18:18:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72:72 -> a
+    19:19:void print(com.android.tools.r8.cf.CfPrinter):67:67 -> a
+    20:24:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):87:91 -> a
+    25:1371:void com.android.tools.r8.ir.conversion.IRBuilder.addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int,int):0:1346 -> a
+    25:1371:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):91 -> a
+    1372:1372:void com.android.tools.r8.ir.conversion.IRBuilder.addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int,int):1344:1344 -> a
+    1372:1372:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):91 -> a
+    1373:1373:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
+    1373:1373:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):98 -> a
+    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():43:43 -> g
+    boolean isConditionalJump() -> h
+    boolean isJump() -> m
+    1:1:com.android.tools.r8.ir.code.If$Type getKind():34:34 -> r
+    1:1:com.android.tools.r8.ir.code.ValueType getType():38:38 -> s
+com.android.tools.r8.cf.code.CfIinc -> com.android.tools.r8.q.n.x:
+    int increment -> b
+    int var -> a
+    1:3:void <init>(int,int):22:24 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):29:29 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):34:34 -> a
+    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):47:48 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):55:55 -> a
+    1:1:int getIncrement():42:42 -> r
+    1:1:int getLocalIndex():38:38 -> s
+com.android.tools.r8.cf.code.CfInstanceOf -> com.android.tools.r8.q.n.y:
+    com.android.tools.r8.graph.DexType type -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexType):22:23 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):42:42 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):47:47 -> a
+    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):52:52 -> a
+    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):62:64 -> a
+    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):63:63 -> a
+    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):71:71 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.graph.DexType getType():27:27 -> r
+com.android.tools.r8.cf.code.CfInstruction -> com.android.tools.r8.q.n.z:
+    1:1:void <init>():17:17 -> <init>
+    com.android.tools.r8.cf.code.CfConstString asConstString() -> a
+    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode) -> a
+    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType) -> a
+    void print(com.android.tools.r8.cf.CfPrinter) -> a
+    void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType) -> a
+    void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens) -> a
+    com.android.tools.r8.cf.code.CfDexItemBasedConstString asDexItemBasedConstString() -> b
+    com.android.tools.r8.cf.code.CfFieldInstruction asFieldInstruction() -> c
+    com.android.tools.r8.cf.code.CfInvoke asInvoke() -> d
+    boolean canThrow() -> e
+    boolean emitsIR() -> f
+    com.android.tools.r8.cf.code.CfLabel getTarget() -> g
+    boolean isConditionalJump() -> h
+    boolean isConstString() -> i
+    boolean isDexItemBasedConstString() -> j
+    boolean isFieldInstruction() -> k
+    boolean isInvoke() -> l
+    boolean isJump() -> m
+    boolean isLabel() -> n
+    boolean isLoad() -> o
+    boolean isReturn() -> p
+    boolean isStore() -> q
+    1:3:java.lang.String toString():25:27 -> toString
+com.android.tools.r8.cf.code.CfInvoke -> com.android.tools.r8.q.n.A:
+    int opcode -> b
+    com.android.tools.r8.graph.DexMethod method -> a
+    boolean itf -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():34:34 -> <clinit>
+    1:7:void <init>(int,com.android.tools.r8.graph.DexMethod,boolean):40:46 -> <init>
+    1:4:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):73:76 -> a
+    5:5:void print(com.android.tools.r8.cf.CfPrinter):81:81 -> a
+    6:26:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):86:106 -> a
+    27:42:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):88:103 -> a
+    43:48:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):94:99 -> a
+    49:49:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):91:91 -> a
+    50:52:boolean isInvokeSuper(com.android.tools.r8.graph.DexType):111:113 -> a
+    53:103:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):126:176 -> a
+    104:147:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):129:172 -> a
+    148:152:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):159:163 -> a
+    153:154:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):275:276 -> a
+    153:154:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
+    155:159:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):301:305 -> a
+    155:159:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):276 -> a
+    155:159:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
+    160:176:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):280:296 -> a
+    160:176:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
+    177:177:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    177:177:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    177:177:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):296 -> a
+    177:177:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
+    178:178:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):296:296 -> a
+    178:178:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
+    179:179:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):165:165 -> a
+    180:235:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):135:190 -> a
+    236:239:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):189:192 -> a
+    240:301:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):200:261 -> a
+    302:331:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):209:238 -> a
+    332:364:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):214:246 -> a
+    365:365:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    365:365:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):247 -> a
+    366:382:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):248:264 -> a
+    383:383:boolean noNeedToUseGraphLense(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.GraphLense):269:269 -> a
+    com.android.tools.r8.cf.code.CfInvoke asInvoke() -> d
+    boolean canThrow() -> e
+    boolean isInvoke() -> l
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():50:50 -> r
+    1:1:int getOpcode():54:54 -> s
+    1:1:boolean isInterface():58:58 -> t
+com.android.tools.r8.cf.code.CfInvokeDynamic -> com.android.tools.r8.q.n.B:
+    com.android.tools.r8.graph.DexCallSite callSite -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexCallSite):39:40 -> <init>
+    1:5:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):45:49 -> a
+    6:21:java.lang.Object decodeBootstrapArgument(com.android.tools.r8.graph.DexValue,com.android.tools.r8.naming.NamingLens):58:73 -> a
+    6:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49 -> a
+    22:22:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49:49 -> a
+    23:24:java.lang.Object decodeBootstrapArgument(com.android.tools.r8.graph.DexValue,com.android.tools.r8.naming.NamingLens):75:76 -> a
+    23:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49 -> a
+    25:28:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):51:54 -> a
+    29:29:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):53:53 -> a
+    30:30:void print(com.android.tools.r8.cf.CfPrinter):82:82 -> a
+    31:31:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):91:91 -> a
+    32:34:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):101:103 -> a
+    35:219:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):0:184 -> a
+    35:219:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):103 -> a
+    220:229:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):103:112 -> a
+    230:230:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forInvokeCustom():169:169 -> a
+    230:230:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):120 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():86:86 -> r
+com.android.tools.r8.cf.code.CfLabel -> com.android.tools.r8.q.n.C:
+    com.android.tools.r8.org.objectweb.asm.Label label -> a
+    1:3:void <init>():17:19 -> <init>
+    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode) -> a
+    1:1:void print(com.android.tools.r8.cf.CfPrinter):40:40 -> a
+    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):45:45 -> a
+    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):62:62 -> a
+    boolean emitsIR() -> f
+    boolean isLabel() -> n
+    1:4:com.android.tools.r8.org.objectweb.asm.Label getLabel():22:25 -> r
+com.android.tools.r8.cf.code.CfLoad -> com.android.tools.r8.q.n.D:
+    com.android.tools.r8.ir.code.ValueType type -> b
+    int var -> a
+    1:3:void <init>(com.android.tools.r8.ir.code.ValueType,int):25:27 -> <init>
+    1:13:int getLoadType():31:43 -> a
+    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59 -> a
+    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:59 -> a
+    15:15:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> a
+    16:18:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:79 -> a
+    19:1255:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> a
+    19:1255:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):79 -> a
+    1256:1256:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forLoad():265:265 -> a
+    1256:1256:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):91 -> a
+    boolean emitsIR() -> f
+    boolean isLoad() -> o
+    1:1:int getLocalIndex():72:72 -> r
+    1:1:com.android.tools.r8.ir.code.ValueType getType():68:68 -> s
+com.android.tools.r8.cf.code.CfLogicalBinop -> com.android.tools.r8.q.n.E:
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode opcode -> a
+    com.android.tools.r8.ir.code.NumericType type -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.cf.code.CfLogicalBinop$Opcode,com.android.tools.r8.ir.code.NumericType):34:39 -> <init>
+    1:1:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):77:77 -> a
+    2:2:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):75:75 -> a
+    3:3:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):73:73 -> a
+    4:4:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):71:71 -> a
+    5:5:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):69:69 -> a
+    6:6:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):67:67 -> a
+    7:7:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):65:65 -> a
+    8:8:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):63:63 -> a
+    9:9:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):61:61 -> a
+    10:10:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):59:59 -> a
+    11:11:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):57:57 -> a
+    12:12:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):55:55 -> a
+    13:13:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):53:53 -> a
+    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():90:90 -> a
+    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):143 -> a
+    15:15:void print(com.android.tools.r8.cf.CfPrinter):102:102 -> a
+    16:16:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):107:107 -> a
+    17:40:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):112:135 -> a
+    41:41:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):132:132 -> a
+    42:42:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):129:129 -> a
+    43:43:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):126:126 -> a
+    44:44:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):123:123 -> a
+    45:45:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):120:120 -> a
+    46:46:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):117:117 -> a
+    1:15:int getAsmOpcode():82:96 -> r
+    16:16:int getAsmOpcode():94:94 -> r
+    17:17:int getAsmOpcode():92:92 -> r
+    18:18:int getAsmOpcode():90:90 -> r
+    19:19:int getAsmOpcode():88:88 -> r
+    20:20:int getAsmOpcode():86:86 -> r
+    21:21:int getAsmOpcode():84:84 -> r
+    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getOpcode():47:47 -> s
+    1:1:com.android.tools.r8.ir.code.NumericType getType():43:43 -> t
+com.android.tools.r8.cf.code.CfLogicalBinop$Opcode -> com.android.tools.r8.q.n.E$a:
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Shl -> a
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode[] $VALUES -> g
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode And -> d
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Or -> e
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Shr -> b
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Ushr -> c
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Xor -> f
+    1:6:void <clinit>():23:28 -> <clinit>
+    7:7:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(java.lang.String,int):22:22 -> <init>
+com.android.tools.r8.cf.code.CfMonitor -> com.android.tools.r8.q.n.F:
+    com.android.tools.r8.ir.code.Monitor$Type type -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.Monitor$Type):23:24 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
+    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):48:49 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():269:269 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):56 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.ir.code.Monitor$Type getType():28:28 -> r
+com.android.tools.r8.cf.code.CfMultiANewArray -> com.android.tools.r8.q.n.G:
+    com.android.tools.r8.graph.DexType type -> a
+    int dimensions -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexType,int):23:25 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):38:38 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):43:43 -> a
+    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):48:48 -> a
+    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):58:60 -> a
+    7:191:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):0:184 -> a
+    7:191:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):60 -> a
+    192:192:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):61:61 -> a
+    193:193:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):68:68 -> a
+    boolean canThrow() -> e
+    1:1:int getDimensions():33:33 -> r
+    1:1:com.android.tools.r8.graph.DexType getType():29:29 -> s
+com.android.tools.r8.cf.code.CfNeg -> com.android.tools.r8.q.n.H:
+    com.android.tools.r8.ir.code.NumericType type -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.NumericType):24:25 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):34:34 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):39:39 -> a
+    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:78 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():329:329 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):85 -> a
+    1:14:int getAsmOpcode():43:56 -> r
+    1:1:com.android.tools.r8.ir.code.NumericType getType():29:29 -> s
+com.android.tools.r8.cf.code.CfNew -> com.android.tools.r8.q.n.I:
+    com.android.tools.r8.graph.DexType type -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexType):22:23 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):32:32 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):37:37 -> a
+    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):42:42 -> a
+    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):52:52 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):59:59 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.graph.DexType getType():27:27 -> r
+com.android.tools.r8.cf.code.CfNewArray -> com.android.tools.r8.q.n.J:
+    com.android.tools.r8.graph.DexType type -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexType):25:27 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):67:67 -> a
+    2:20:int getPrimitiveTypeCode():35:53 -> a
+    2:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):68 -> a
+    21:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):68:68 -> a
+    22:26:java.lang.String getElementInternalName(com.android.tools.r8.naming.NamingLens):58:62 -> a
+    22:26:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):70 -> a
+    27:27:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):70:70 -> a
+    28:28:void print(com.android.tools.r8.cf.CfPrinter):76:76 -> a
+    29:30:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):81:82 -> a
+    31:33:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):93:95 -> a
+    34:34:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):102:102 -> a
+    boolean canThrow() -> e
+    1:1:com.android.tools.r8.graph.DexType getType():31:31 -> r
+com.android.tools.r8.cf.code.CfNop -> com.android.tools.r8.q.n.K:
+    1:1:void <init>():17:17 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):21:21 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):26:26 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):31:31 -> a
+    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):43:43 -> a
+    boolean emitsIR() -> f
+com.android.tools.r8.cf.code.CfNumberConversion -> com.android.tools.r8.q.n.L:
+    com.android.tools.r8.ir.code.NumericType to -> b
+    com.android.tools.r8.ir.code.NumericType from -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType):25:31 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):44:44 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):49:49 -> a
+    3:3:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):142:142 -> a
+    4:4:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):140:140 -> a
+    5:5:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):138:138 -> a
+    6:6:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):136:136 -> a
+    7:7:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):134:134 -> a
+    8:8:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):132:132 -> a
+    9:9:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):130:130 -> a
+    10:10:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):128:128 -> a
+    11:11:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):126:126 -> a
+    12:12:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):124:124 -> a
+    13:13:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):122:122 -> a
+    14:14:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):120:120 -> a
+    15:15:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):118:118 -> a
+    16:16:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):116:116 -> a
+    17:17:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):114:114 -> a
+    18:18:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):112:112 -> a
+    19:20:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):148:149 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():329:329 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):156 -> a
+    1:53:int getAsmOpcode():53:105 -> r
+    54:101:int getAsmOpcode():55:102 -> r
+    102:110:int getAsmOpcode():83:91 -> r
+    111:119:int getAsmOpcode():72:80 -> r
+    1:1:com.android.tools.r8.ir.code.NumericType getFromType():35:35 -> s
+    1:1:com.android.tools.r8.ir.code.NumericType getToType():39:39 -> t
+com.android.tools.r8.cf.code.CfPosition -> com.android.tools.r8.q.n.M:
+    com.android.tools.r8.cf.code.CfLabel label -> a
+    com.android.tools.r8.ir.code.Position position -> b
+    1:3:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.ir.code.Position):22:24 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):29:29 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):34:34 -> a
+    3:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):62:64 -> a
+    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):71:71 -> a
+    boolean emitsIR() -> f
+    1:1:com.android.tools.r8.cf.code.CfLabel getLabel():42:42 -> r
+    1:1:com.android.tools.r8.ir.code.Position getPosition():38:38 -> s
+com.android.tools.r8.cf.code.CfReturn -> com.android.tools.r8.q.n.N:
+    com.android.tools.r8.ir.code.ValueType type -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.ValueType):24:25 -> <init>
+    1:13:int getOpcode():33:45 -> a
+    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):56 -> a
+    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):56:56 -> a
+    15:15:void print(com.android.tools.r8.cf.CfPrinter):61:61 -> a
+    16:17:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):71:72 -> a
+    18:18:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():301:301 -> a
+    18:18:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):79 -> a
+    boolean isJump() -> m
+    boolean isReturn() -> p
+    1:1:com.android.tools.r8.ir.code.ValueType getType():29:29 -> r
+com.android.tools.r8.cf.code.CfReturnVoid -> com.android.tools.r8.q.n.O:
+    1:1:void <init>():17:17 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):26:26 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):31:31 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):41:41 -> a
+    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():301:301 -> a
+    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):48 -> a
+    boolean isJump() -> m
+    boolean isReturn() -> p
+com.android.tools.r8.cf.code.CfStackInstruction -> com.android.tools.r8.q.n.P:
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode opcode -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.cf.code.CfStackInstruction$Opcode):72:73 -> <init>
+    1:1:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):64:64 -> a
+    2:2:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):62:62 -> a
+    3:3:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):60:60 -> a
+    4:4:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):58:58 -> a
+    5:5:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):56:56 -> a
+    6:6:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):54:54 -> a
+    7:7:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):52:52 -> a
+    8:8:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):50:50 -> a
+    9:9:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):48:48 -> a
+    10:10:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):46:46 -> a
+    11:11:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):78:78 -> a
+    12:12:void print(com.android.tools.r8.cf.CfPrinter):83:83 -> a
+    13:135:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):92:214 -> a
+    136:155:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):166:185 -> a
+    156:156:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):181:181 -> a
+    157:157:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    157:157:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):181 -> a
+    158:173:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):181:196 -> a
+    174:183:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):288:297 -> a
+    174:183:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    184:1420:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> a
+    184:1420:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):297 -> a
+    184:1420:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1421:1421:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):299:299 -> a
+    1421:1421:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1422:1422:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    1422:1422:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):299 -> a
+    1422:1422:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1423:1423:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):301:301 -> a
+    1423:1423:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1424:1424:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    1424:1424:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):301 -> a
+    1424:1424:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1425:1425:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):303:303 -> a
+    1425:1425:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1426:1426:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    1426:1426:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):303 -> a
+    1426:1426:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1427:1427:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):305:305 -> a
+    1427:1427:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1428:1428:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    1428:1428:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):305 -> a
+    1428:1428:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1429:1429:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):307:307 -> a
+    1429:1429:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1430:1430:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    1430:1430:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):307 -> a
+    1430:1430:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
+    1431:1431:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):197:197 -> a
+    1432:1432:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    1432:1432:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):197 -> a
+    1433:1433:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):197:197 -> a
+    1434:1434:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):189:189 -> a
+    1435:1435:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    1435:1435:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):189 -> a
+    1436:1436:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):189:189 -> a
+    1437:1445:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):152:160 -> a
+    1446:1448:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):140:142 -> a
+    1449:2685:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> a
+    1449:2685:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):142 -> a
+    2686:2687:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):144:145 -> a
+    2688:3924:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> a
+    2688:3924:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):145 -> a
+    3925:3925:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):146:146 -> a
+    3926:3926:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    3926:3926:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):146 -> a
+    3927:3935:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):126:134 -> a
+    3936:3940:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):117:121 -> a
+    3941:3943:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):110:112 -> a
+    3944:5180:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> a
+    3944:5180:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):112 -> a
+    5181:5184:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):101:104 -> a
+    5185:5186:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):95:96 -> a
+    5187:5192:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):224:229 -> a
+    5193:6429:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> a
+    5193:6429:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):229 -> a
+    6430:6430:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):231:231 -> a
+    6431:6431:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    6431:6431:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):231 -> a
+    6432:6432:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):233:233 -> a
+    6433:6433:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    6433:6433:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):233 -> a
+    6434:6440:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):241:247 -> a
+    6441:7677:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> a
+    6441:7677:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):247 -> a
+    7678:7678:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):249:249 -> a
+    7679:7679:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    7679:7679:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):249 -> a
+    7680:7680:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):251:251 -> a
+    7681:7681:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    7681:7681:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):251 -> a
+    7682:7682:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):253:253 -> a
+    7683:7683:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    7683:7683:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):253 -> a
+    7684:7684:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):319:319 -> a
+    1:8:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):260:267 -> b
+    9:1245:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> b
+    9:1245:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):267 -> b
+    1246:1246:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):269:269 -> b
+    1247:1247:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> b
+    1247:1247:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):269 -> b
+    1248:1248:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):271:271 -> b
+    1249:1249:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> b
+    1249:1249:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):271 -> b
+    1250:1250:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):273:273 -> b
+    1251:1251:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> b
+    1251:1251:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):273 -> b
+    1252:1252:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):275:275 -> b
+    1253:1253:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> b
+    1253:1253:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):275 -> b
+    boolean emitsIR() -> f
+    1:1:com.android.tools.r8.cf.code.CfStackInstruction$Opcode getOpcode():87:87 -> r
+com.android.tools.r8.cf.code.CfStackInstruction$Opcode -> com.android.tools.r8.q.n.P$a:
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Swap -> j
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode[] $VALUES -> k
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2X2 -> i
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2X1 -> h
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2 -> g
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode DupX2 -> f
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode DupX1 -> e
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup -> d
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Pop2 -> c
+    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Pop -> b
+    int opcode -> a
+    1:9:void <clinit>():24:32 -> <clinit>
+    10:10:void <clinit>():23:23 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int):36:37 -> <init>
+    1:1:int access$000(com.android.tools.r8.cf.code.CfStackInstruction$Opcode):23:23 -> a
+com.android.tools.r8.cf.code.CfStore -> com.android.tools.r8.q.n.Q:
+    com.android.tools.r8.ir.code.ValueType type -> b
+    int var -> a
+    1:3:void <init>(com.android.tools.r8.ir.code.ValueType,int):25:27 -> <init>
+    1:13:int getStoreType():31:43 -> a
+    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59 -> a
+    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:59 -> a
+    15:15:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> a
+    16:17:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:78 -> a
+    18:1254:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):0:1236 -> a
+    18:1254:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
+    1255:1255:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forStore():317:317 -> a
+    1255:1255:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):90 -> a
+    boolean emitsIR() -> f
+    boolean isStore() -> q
+    1:1:int getLocalIndex():72:72 -> r
+    1:1:com.android.tools.r8.ir.code.ValueType getType():68:68 -> s
+com.android.tools.r8.cf.code.CfSwitch -> com.android.tools.r8.q.n.S:
+    com.android.tools.r8.cf.code.CfLabel defaultTarget -> b
+    int[] keys -> c
+    java.util.List targets -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.cf.code.CfSwitch$Kind kind -> a
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.cf.code.CfSwitch$Kind,com.android.tools.r8.cf.code.CfLabel,int[],java.util.List):30:36 -> <init>
+    1:12:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72:83 -> a
+    13:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):78:78 -> a
+    14:14:void print(com.android.tools.r8.cf.CfPrinter):90:90 -> a
+    15:20:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):95:100 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):107 -> a
+    boolean isJump() -> m
+    1:1:com.android.tools.r8.cf.code.CfLabel getDefaultTarget():44:44 -> r
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getKeys():48:48 -> s
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>(int[]):135:135 -> s
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getKeys():48 -> s
+    1:1:com.android.tools.r8.cf.code.CfSwitch$Kind getKind():40:40 -> t
+    1:1:java.util.List getSwitchTargets():52:52 -> u
+com.android.tools.r8.cf.code.CfSwitch$Kind -> com.android.tools.r8.q.n.S$a:
+    com.android.tools.r8.cf.code.CfSwitch$Kind[] $VALUES -> c
+    com.android.tools.r8.cf.code.CfSwitch$Kind TABLE -> b
+    com.android.tools.r8.cf.code.CfSwitch$Kind LOOKUP -> a
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>(java.lang.String,int):23:23 -> <init>
+com.android.tools.r8.cf.code.CfThrow -> com.android.tools.r8.q.n.T:
+    1:1:void <init>():18:18 -> <init>
+    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):27:27 -> a
+    2:2:void print(com.android.tools.r8.cf.CfPrinter):32:32 -> a
+    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):42:43 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):50 -> a
+    boolean canThrow() -> e
+    boolean isJump() -> m
+com.android.tools.r8.cf.code.CfTryCatch -> com.android.tools.r8.q.n.U:
+    com.android.tools.r8.cf.code.CfLabel start -> a
+    com.android.tools.r8.cf.code.CfLabel end -> b
+    java.util.List targets -> d
+    java.util.List guards -> c
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,java.util.List,java.util.List):19:24 -> <init>
+    1:2:boolean verifyAllNonNull(java.util.List):28:29 -> a
+    3:8:com.android.tools.r8.cf.code.CfTryCatch fromBuilder(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.ir.code.CatchHandlers,com.android.tools.r8.ir.conversion.CfBuilder):39:44 -> a
+com.android.tools.r8.code.AddDouble -> com.android.tools.r8.code.b:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddDouble2Addr -> com.android.tools.r8.code.a:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddFloat -> com.android.tools.r8.code.d:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddFloat2Addr -> com.android.tools.r8.code.c:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddInt -> com.android.tools.r8.code.f:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddInt2Addr -> com.android.tools.r8.code.e:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddIntLit16 -> com.android.tools.r8.code.g:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddIntLit8 -> com.android.tools.r8.code.h:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddLong -> com.android.tools.r8.code.j:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AddLong2Addr -> com.android.tools.r8.code.i:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Aget -> com.android.tools.r8.code.k:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AgetBoolean -> com.android.tools.r8.code.l:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AgetByte -> com.android.tools.r8.code.m:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AgetChar -> com.android.tools.r8.code.n:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AgetObject -> com.android.tools.r8.code.o:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AgetShort -> com.android.tools.r8.code.p:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AgetWide -> com.android.tools.r8.code.q:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AndInt -> com.android.tools.r8.code.s:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AndInt2Addr -> com.android.tools.r8.code.r:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AndIntLit16 -> com.android.tools.r8.code.t:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AndIntLit8 -> com.android.tools.r8.code.u:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AndLong -> com.android.tools.r8.code.w:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AndLong2Addr -> com.android.tools.r8.code.v:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Aput -> com.android.tools.r8.code.x:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AputBoolean -> com.android.tools.r8.code.y:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AputByte -> com.android.tools.r8.code.z:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AputChar -> com.android.tools.r8.code.A:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AputObject -> com.android.tools.r8.code.B:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AputShort -> com.android.tools.r8.code.C:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.AputWide -> com.android.tools.r8.code.D:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ArrayLength -> com.android.tools.r8.code.E:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Base1Format -> com.android.tools.r8.code.F:
+    1:1:void <init>(com.android.tools.r8.code.BytecodeStream):11:11 -> <init>
+    2:2:void <init>():14:14 -> <init>
+    int getSize() -> m
+com.android.tools.r8.code.Base2Format -> com.android.tools.r8.code.G:
+    1:1:void <init>():10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
+    int getSize() -> m
+com.android.tools.r8.code.Base3Format -> com.android.tools.r8.code.H:
+    1:1:void <init>():10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
+    int getSize() -> m
+com.android.tools.r8.code.Base4Format -> com.android.tools.r8.code.I:
+    1:1:void <init>():10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
+    int getSize() -> m
+com.android.tools.r8.code.Base5Format -> com.android.tools.r8.code.J:
+    1:1:void <init>():10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
+    int getSize() -> m
+com.android.tools.r8.code.BaseInstructionFactory -> com.android.tools.r8.code.K:
+    1:1:void <init>():8:8 -> <init>
+com.android.tools.r8.code.BytecodeStream -> com.android.tools.r8.code.L:
+com.android.tools.r8.code.CheckCast -> com.android.tools.r8.code.M:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    boolean isCheckCast() -> q
+    1:1:com.android.tools.r8.graph.DexType getType():51:51 -> z
+com.android.tools.r8.code.CmpLong -> com.android.tools.r8.code.N:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
+    2:2:void <init>(int,int,int):21:21 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.CmpgDouble -> com.android.tools.r8.code.O:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
+    2:2:void <init>(int,int,int):21:21 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.CmpgFloat -> com.android.tools.r8.code.P:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
+    2:2:void <init>(int,int,int):21:21 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.CmplDouble -> com.android.tools.r8.code.Q:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
+    2:2:void <init>(int,int,int):21:21 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.CmplFloat -> com.android.tools.r8.code.S:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
+    2:2:void <init>(int,int,int):21:21 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Const -> com.android.tools.r8.code.V:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
+    2:2:void <init>(int,int):23:23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void com.android.tools.r8.code.Format31i.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    3:3:int decodedValue():43:43 -> a
+    4:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
+    7:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Const16 -> com.android.tools.r8.code.T:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
+    2:2:void <init>(int,int):23:23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):12:12 -> a
+    2:3:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    4:4:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):36 -> a
+    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    5:5:int decodedValue():43:43 -> a
+    6:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:57 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Const4 -> com.android.tools.r8.code.U:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
+    2:2:void <init>(int,int):23:23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:void com.android.tools.r8.code.Format11n.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:39 -> a
+    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    2:2:int decodedValue():43:43 -> a
+    3:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
+    6:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ConstClass -> com.android.tools.r8.code.W:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    com.android.tools.r8.code.ConstClass asConstClass() -> b
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    boolean isConstClass() -> r
+    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> z
+com.android.tools.r8.code.ConstHigh16 -> com.android.tools.r8.code.X:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
+    2:2:void <init>(int,int):23:23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    4:4:int decodedValue():43:43 -> a
+    5:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
+    8:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ConstMethodHandle -> com.android.tools.r8.code.Y:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23:23 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexMethodHandle):27:27 -> <init>
+    1:1:com.android.tools.r8.graph.DexMethodHandle getMethodHandle():31:31 -> a
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):62 -> a
+    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry):62:62 -> a
+    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry):61:61 -> a
+    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> a
+    5:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
+    6:7:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    6:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):71 -> a
+    8:8:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69:69 -> a
+    9:9:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    9:9:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):16 -> a
+    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):76:76 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):51:51 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ConstMethodType -> com.android.tools.r8.code.Z:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):22:22 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexProto):26:26 -> <init>
+    1:1:com.android.tools.r8.graph.DexProto getMethodType():30:30 -> a
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):60 -> a
+    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry):60:60 -> a
+    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> a
+    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):65:65 -> a
+    5:6:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    5:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69 -> a
+    7:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
+    8:8:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    8:8:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):15 -> a
+    9:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):74:74 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):50:50 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ConstString -> com.android.tools.r8.code.a0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21:21 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexString):25:25 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
+    2:2:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):14 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69:69 -> a
+    4:5:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    4:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):73 -> a
+    6:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):71:71 -> a
+    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):78:78 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
+    com.android.tools.r8.code.ConstString asConstString() -> c
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    boolean isConstString() -> s
+    1:1:com.android.tools.r8.graph.DexString getString():29:29 -> z
+com.android.tools.r8.code.ConstStringJumbo -> com.android.tools.r8.code.b0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexString):22:22 -> <init>
+    1:2:void com.android.tools.r8.code.Format31c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write32BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):115:115 -> a
+    3:3:void com.android.tools.r8.code.Format31c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):61:61 -> a
+    5:5:void com.android.tools.r8.code.Format31c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64:64 -> a
+    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    6:251:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> a
+    6:251:void com.android.tools.r8.code.Format31c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64 -> a
+    6:251:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    252:252:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):66:66 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> b
+    com.android.tools.r8.code.ConstStringJumbo asConstStringJumbo() -> d
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    boolean isConstStringJumbo() -> t
+    1:1:com.android.tools.r8.graph.DexString getString():26:26 -> z
+com.android.tools.r8.code.ConstWide -> com.android.tools.r8.code.e0:
+    short com.android.tools.r8.code.Format51l.AA -> f
+    long com.android.tools.r8.code.Format51l.BBBBBBBBBBBBBBBB -> g
+    boolean com.android.tools.r8.code.Format51l.$assertionsDisabled -> h
+    1:1:void com.android.tools.r8.code.Format51l.<clinit>():13:13 -> <clinit>
+    1:2:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):20:21 -> <init>
+    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
+    3:4:long com.android.tools.r8.code.Instruction.read64BitValue(com.android.tools.r8.code.BytecodeStream):70:71 -> <init>
+    3:4:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):22 -> <init>
+    3:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
+    5:5:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):22:22 -> <init>
+    5:5:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
+    6:9:void com.android.tools.r8.code.Format51l.<init>(int,long):25:28 -> <init>
+    6:9:void <init>(int,long):23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void com.android.tools.r8.code.Format51l.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    3:4:void com.android.tools.r8.code.Instruction.write64BitValue(long,java.nio.ShortBuffer):102:103 -> a
+    3:4:void com.android.tools.r8.code.Format51l.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34 -> a
+    3:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    5:5:long decodedValue():43:43 -> a
+    6:8:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
+    9:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    1:5:boolean com.android.tools.r8.code.Format51l.equals(java.lang.Object):44:48 -> equals
+    1:5:boolean com.android.tools.r8.code.Format51l.equals(java.lang.Object):0 -> equals
+    1:1:int com.android.tools.r8.code.Format51l.hashCode():39:39 -> hashCode
+    1:1:int com.android.tools.r8.code.Format51l.hashCode():0 -> hashCode
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ConstWide16 -> com.android.tools.r8.code.c0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
+    2:2:void <init>(int,int):23:23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):36 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    4:4:long decodedValue():43:43 -> a
+    5:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
+    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ConstWide32 -> com.android.tools.r8.code.d0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
+    2:2:void <init>(int,int):23:23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void com.android.tools.r8.code.Format31i.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    3:3:long decodedValue():43:43 -> a
+    4:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
+    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ConstWideHigh16 -> com.android.tools.r8.code.f0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
+    2:2:void <init>(int,int):23:23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
+    4:4:long decodedValue():43:43 -> a
+    5:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
+    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DexItemBasedConstString -> com.android.tools.r8.code.g0:
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> i
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:2:void <init>(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):24:25 -> <init>
+    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():33:33 -> A
+    1:1:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):15 -> a
+    2:2:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):71:71 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):76:76 -> a
+    4:5:void registerUse(com.android.tools.r8.graph.UseRegistry):82:83 -> a
+    6:6:com.android.tools.r8.graph.DexReference getItem():29:29 -> a
+    6:6:void registerUse(com.android.tools.r8.graph.UseRegistry):83 -> a
+    7:7:void registerUse(com.android.tools.r8.graph.UseRegistry):83:83 -> a
+    8:8:com.android.tools.r8.graph.DexReference getItem():29:29 -> a
+    8:8:void registerUse(com.android.tools.r8.graph.UseRegistry):84 -> a
+    9:9:void registerUse(com.android.tools.r8.graph.UseRegistry):84:84 -> a
+    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):90:90 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):65:65 -> b
+    com.android.tools.r8.code.DexItemBasedConstString asDexItemBasedConstString() -> e
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    1:1:int getOpcode():48:48 -> k
+    java.lang.String getSmaliName() -> n
+    boolean isDexItemBasedConstString() -> u
+    1:1:com.android.tools.r8.graph.DexReference getItem():29:29 -> z
+com.android.tools.r8.code.DivDouble -> com.android.tools.r8.code.i0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivDouble2Addr -> com.android.tools.r8.code.h0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivFloat -> com.android.tools.r8.code.k0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivFloat2Addr -> com.android.tools.r8.code.j0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivInt -> com.android.tools.r8.code.m0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivInt2Addr -> com.android.tools.r8.code.l0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivIntLit16 -> com.android.tools.r8.code.n0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivIntLit8 -> com.android.tools.r8.code.o0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivLong -> com.android.tools.r8.code.q0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DivLong2Addr -> com.android.tools.r8.code.p0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DoubleToFloat -> com.android.tools.r8.code.r0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DoubleToInt -> com.android.tools.r8.code.s0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.DoubleToLong -> com.android.tools.r8.code.t0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.FillArrayData -> com.android.tools.r8.code.u0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    2:2:int com.android.tools.r8.code.Format31t.getPayloadOffset():45:45 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.FillArrayDataPayload -> com.android.tools.r8.code.v0:
+    short[] data -> h
+    boolean $assertionsDisabled -> i
+    long size -> g
+    int element_width -> f
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:29 -> <init>
+    11:14:void <init>(int,long,short[]):33:36 -> <init>
+    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):46:47 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):47 -> a
+    4:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):48:50 -> a
+    7:7:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    7:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):50 -> a
+    8:47:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):86:125 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):80:80 -> b
+    2:2:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> b
+    2:2:java.lang.String com.android.tools.r8.code.Nop.toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
+    2:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):80 -> b
+    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):80:80 -> b
+    1:6:boolean equals(java.lang.Object):56:61 -> equals
+    1:4:int hashCode():66:69 -> hashCode
+    1:1:int getSize():75:75 -> m
+    boolean isPayload() -> w
+com.android.tools.r8.code.FilledNewArray -> com.android.tools.r8.code.w0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17:17 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexType,int,int,int,int,int):21:21 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getType():40:40 -> a
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.FilledNewArrayRange -> com.android.tools.r8.code.x0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17:17 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):21:21 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getType():40:40 -> a
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.FloatToDouble -> com.android.tools.r8.code.y0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.FloatToInt -> com.android.tools.r8.code.z0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.FloatToLong -> com.android.tools.r8.code.A0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Format10x -> com.android.tools.r8.code.B0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
+    2:2:void <init>():20:20 -> <init>
+    1:1:boolean equals(java.lang.Object):35:35 -> equals
+com.android.tools.r8.code.Format11n -> com.android.tools.r8.code.C0:
+    boolean $assertionsDisabled -> h
+    byte A -> f
+    byte B -> g
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:8:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:26 -> <init>
+    9:13:void <init>(int,int):30:34 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):58:58 -> b
+    1:5:boolean equals(java.lang.Object):49:53 -> equals
+    1:1:int hashCode():44:44 -> hashCode
+com.android.tools.r8.code.Format11x -> com.android.tools.r8.code.D0:
+    short AA -> f
+    boolean $assertionsDisabled -> g
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:20 -> <init>
+    3:5:void <init>(int):23:25 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    1:4:boolean equals(java.lang.Object):40:43 -> equals
+    1:1:int hashCode():35:35 -> hashCode
+com.android.tools.r8.code.Format12x -> com.android.tools.r8.code.E0:
+    boolean $assertionsDisabled -> h
+    byte A -> f
+    byte B -> g
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:21 -> <init>
+    4:8:void <init>(int,int):24:28 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):57:57 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):52:52 -> b
+    1:5:boolean equals(java.lang.Object):43:47 -> equals
+    1:1:int hashCode():38:38 -> hashCode
+com.android.tools.r8.code.Format21c -> com.android.tools.r8.code.F0:
+    short AA -> f
+    com.android.tools.r8.graph.IndexedDexItem BBBB -> g
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):22:24 -> <init>
+    4:7:void <init>(int,com.android.tools.r8.graph.IndexedDexItem):27:30 -> <init>
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):62:62 -> a
+    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> b
+    1:5:boolean equals(java.lang.Object):46:50 -> equals
+    1:1:int hashCode():41:41 -> hashCode
+com.android.tools.r8.code.Format21h -> com.android.tools.r8.code.G0:
+    char BBBB -> g
+    short AA -> f
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:21 -> <init>
+    4:8:void <init>(int,int):24:28 -> <init>
+    1:5:boolean equals(java.lang.Object):44:48 -> equals
+    1:1:int hashCode():39:39 -> hashCode
+com.android.tools.r8.code.Format21s -> com.android.tools.r8.code.H0:
+    short BBBB -> g
+    short AA -> f
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:23 -> <init>
+    4:8:void <init>(int,int):26:30 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):36 -> a
+    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):60:60 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> b
+    1:5:boolean equals(java.lang.Object):46:50 -> equals
+    1:1:int hashCode():41:41 -> hashCode
+com.android.tools.r8.code.Format21t -> com.android.tools.r8.code.I0:
+    short BBBB -> g
+    short AA -> f
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):23:25 -> <init>
+    4:8:void <init>(int,int):28:32 -> <init>
+    com.android.tools.r8.ir.code.If$Type getType() -> A
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38 -> a
+    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):66:68 -> a
+    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):78:78 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):73:73 -> b
+    1:5:boolean equals(java.lang.Object):48:52 -> equals
+    1:1:int hashCode():43:43 -> hashCode
+    1:1:int[] getTargets():61:61 -> o
+    com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint() -> z
+com.android.tools.r8.code.Format22b -> com.android.tools.r8.code.J0:
+    short BB -> g
+    short AA -> f
+    boolean $assertionsDisabled -> i
+    byte CC -> h
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):22:25 -> <init>
+    5:11:void <init>(int,int,int):28:34 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):40 -> a
+    4:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
+    1:5:boolean equals(java.lang.Object):50:54 -> equals
+    1:1:int hashCode():45:45 -> hashCode
+com.android.tools.r8.code.Format22c -> com.android.tools.r8.code.K0:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.IndexedDexItem CCCC -> h
+    byte A -> f
+    byte B -> g
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):23:26 -> <init>
+    5:10:void <init>(int,int,com.android.tools.r8.graph.IndexedDexItem):29:34 -> <init>
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
+    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):66:66 -> a
+    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):72:72 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
+    1:5:boolean equals(java.lang.Object):50:54 -> equals
+    1:1:int hashCode():45:45 -> hashCode
+com.android.tools.r8.code.Format22s -> com.android.tools.r8.code.L0:
+    short CCCC -> h
+    boolean $assertionsDisabled -> i
+    byte A -> f
+    byte B -> g
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):22:25 -> <init>
+    5:11:void <init>(int,int,int):28:34 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):40 -> a
+    4:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
+    1:5:boolean equals(java.lang.Object):50:54 -> equals
+    1:1:int hashCode():45:45 -> hashCode
+com.android.tools.r8.code.Format22t -> com.android.tools.r8.code.M0:
+    short CCCC -> h
+    boolean $assertionsDisabled -> i
+    byte A -> f
+    byte B -> g
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):24:27 -> <init>
+    5:11:void <init>(int,int,int):30:36 -> <init>
+    com.android.tools.r8.ir.code.If$Type getType() -> A
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):41:42 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):42 -> a
+    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):70:72 -> a
+    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):82:82 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):77:77 -> b
+    1:5:boolean equals(java.lang.Object):52:56 -> equals
+    1:1:int hashCode():47:47 -> hashCode
+    1:1:int[] getTargets():65:65 -> o
+    com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint() -> z
+com.android.tools.r8.code.Format22x -> com.android.tools.r8.code.N0:
+    char BBBB -> g
+    short AA -> f
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
+    4:8:void <init>(int,int):25:29 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> b
+    1:5:boolean equals(java.lang.Object):45:49 -> equals
+    1:1:int hashCode():40:40 -> hashCode
+com.android.tools.r8.code.Format23x -> com.android.tools.r8.code.O0:
+    short BB -> g
+    short CC -> h
+    short AA -> f
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:24 -> <init>
+    5:11:void <init>(int,int,int):27:33 -> <init>
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38:39 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39 -> a
+    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):63:63 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):58:58 -> b
+    1:5:boolean equals(java.lang.Object):49:53 -> equals
+    1:1:int hashCode():44:44 -> hashCode
+com.android.tools.r8.code.Format30t -> com.android.tools.r8.code.P0:
+    int AAAAAAAA -> f
+    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):18:19 -> <init>
+    3:4:void <init>(int):22:23 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):28:29 -> a
+    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):52:52 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
+    2:2:java.lang.String com.android.tools.r8.code.Instruction.formatOffset(int):191:191 -> b
+    2:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):47 -> b
+    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
+    1:4:boolean equals(java.lang.Object):39:42 -> equals
+    1:1:int hashCode():34:34 -> hashCode
+com.android.tools.r8.code.Format31c -> com.android.tools.r8.code.Q0:
+    short AA -> f
+    com.android.tools.r8.graph.DexString BBBBBBBB -> g
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexString[]):24:26 -> <init>
+    4:7:void <init>(int,com.android.tools.r8.graph.DexString):29:32 -> <init>
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write32BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):115:115 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38 -> a
+    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64:64 -> a
+    5:250:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> a
+    5:250:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64 -> a
+    1:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):57:57 -> b
+    1:5:boolean equals(java.lang.Object):48:52 -> equals
+    1:1:int hashCode():43:43 -> hashCode
+com.android.tools.r8.code.Format31i -> com.android.tools.r8.code.R0:
+    short AA -> f
+    int BBBBBBBB -> g
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
+    4:7:void <init>(int,int):25:28 -> <init>
+    1:5:boolean equals(java.lang.Object):44:48 -> equals
+    1:1:int hashCode():39:39 -> hashCode
+com.android.tools.r8.code.Format31t -> com.android.tools.r8.code.S0:
+    short AA -> f
+    int BBBBBBBB -> g
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
+    4:7:void <init>(int,int):25:28 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:35 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):68:68 -> b
+    1:1:void setPayloadOffset(int):49:49 -> c
+    1:5:boolean equals(java.lang.Object):59:63 -> equals
+    1:1:int hashCode():54:54 -> hashCode
+    1:1:int getPayloadOffset():45:45 -> l
+    boolean hasPayload() -> p
+com.android.tools.r8.code.Format32x -> com.android.tools.r8.code.T0:
+    int AAAA -> f
+    int BBBB -> g
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:23 -> <init>
+    4:8:void <init>(int,int):26:30 -> <init>
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):36 -> a
+    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:37 -> a
+    5:5:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    5:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37 -> a
+    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):61:61 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> b
+    1:5:boolean equals(java.lang.Object):47:51 -> equals
+    1:1:int hashCode():42:42 -> hashCode
+com.android.tools.r8.code.Format35c -> com.android.tools.r8.code.U0:
+    boolean $assertionsDisabled -> m
+    byte F -> j
+    byte E -> i
+    byte G -> k
+    com.android.tools.r8.graph.IndexedDexItem BBBB -> l
+    byte A -> f
+    byte D -> h
+    byte C -> g
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):27:36 -> <init>
+    11:24:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):39:52 -> <init>
+    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):57:59 -> a
+    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):59 -> a
+    5:13:void appendRegisterArguments(java.lang.StringBuilder,java.lang.String):79:87 -> a
+    14:19:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):105:110 -> a
+    20:20:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):116:116 -> a
+    1:9:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):92:100 -> b
+    1:6:boolean equals(java.lang.Object):70:75 -> equals
+    1:2:int hashCode():64:65 -> hashCode
+com.android.tools.r8.code.Format3rc -> com.android.tools.r8.code.V0:
+    char CCCC -> g
+    short AA -> f
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.IndexedDexItem BBBB -> h
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):23:26 -> <init>
+    5:10:void <init>(int,int,com.android.tools.r8.graph.IndexedDexItem):29:34 -> <init>
+    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:41 -> a
+    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):41 -> a
+    5:11:void appendRegisterRange(java.lang.StringBuilder):59:65 -> a
+    12:17:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):83:88 -> a
+    18:18:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):94:94 -> a
+    1:9:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):70:78 -> b
+    1:5:boolean equals(java.lang.Object):51:55 -> equals
+    1:1:int hashCode():46:46 -> hashCode
+com.android.tools.r8.code.Goto -> com.android.tools.r8.code.Y0:
+    boolean com.android.tools.r8.code.Format10t.$assertionsDisabled -> g
+    byte com.android.tools.r8.code.Format10t.AA -> f
+    1:1:void com.android.tools.r8.code.Format10t.<clinit>():12:12 -> <clinit>
+    1:3:void com.android.tools.r8.code.Format10t.<init>(int,com.android.tools.r8.code.BytecodeStream):18:20 -> <init>
+    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):15 -> <init>
+    4:6:void com.android.tools.r8.code.Format10t.<init>(int):23:25 -> <init>
+    4:6:void <init>(int):19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:void com.android.tools.r8.code.Format10t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
+    3:3:java.lang.String com.android.tools.r8.code.Format10t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
+    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
+    1:1:java.lang.String com.android.tools.r8.code.Format10t.toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
+    1:4:boolean com.android.tools.r8.code.Format10t.equals(java.lang.Object):40:43 -> equals
+    1:4:boolean com.android.tools.r8.code.Format10t.equals(java.lang.Object):0 -> equals
+    1:1:int com.android.tools.r8.code.Format10t.hashCode():35:35 -> hashCode
+    1:1:int com.android.tools.r8.code.Format10t.hashCode():0 -> hashCode
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:int[] getTargets():39:39 -> o
+com.android.tools.r8.code.Goto16 -> com.android.tools.r8.code.W0:
+    short com.android.tools.r8.code.Format20t.AAAA -> f
+    boolean com.android.tools.r8.code.Format20t.$assertionsDisabled -> g
+    1:1:void com.android.tools.r8.code.Format20t.<clinit>():12:12 -> <clinit>
+    1:2:void com.android.tools.r8.code.Format20t.<init>(int,com.android.tools.r8.code.BytecodeStream):18:19 -> <init>
+    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):15 -> <init>
+    3:5:void com.android.tools.r8.code.Format20t.<init>(int):22:24 -> <init>
+    3:5:void <init>(int):19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:2:void com.android.tools.r8.code.Format20t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):29:30 -> a
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void com.android.tools.r8.code.Format20t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
+    5:5:java.lang.String com.android.tools.r8.code.Format20t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
+    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
+    1:1:java.lang.String com.android.tools.r8.code.Format20t.toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
+    1:4:boolean com.android.tools.r8.code.Format20t.equals(java.lang.Object):40:43 -> equals
+    1:4:boolean com.android.tools.r8.code.Format20t.equals(java.lang.Object):0 -> equals
+    1:1:int com.android.tools.r8.code.Format20t.hashCode():35:35 -> hashCode
+    1:1:int com.android.tools.r8.code.Format20t.hashCode():0 -> hashCode
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:int[] getTargets():39:39 -> o
+com.android.tools.r8.code.Goto32 -> com.android.tools.r8.code.X0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:3:void com.android.tools.r8.code.Format30t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):28:29 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
+    1:1:java.lang.String com.android.tools.r8.code.Format30t.toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
+    2:2:java.lang.String com.android.tools.r8.code.Instruction.formatOffset(int):191:191 -> b
+    2:2:java.lang.String com.android.tools.r8.code.Format30t.toString(com.android.tools.r8.naming.ClassNameMapper):47 -> b
+    2:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
+    3:3:java.lang.String com.android.tools.r8.code.Format30t.toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
+    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:int[] getTargets():39:39 -> o
+com.android.tools.r8.code.IfEq -> com.android.tools.r8.code.Z0:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfEqz -> com.android.tools.r8.code.a1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfGe -> com.android.tools.r8.code.b1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfGez -> com.android.tools.r8.code.c1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfGt -> com.android.tools.r8.code.d1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfGtz -> com.android.tools.r8.code.e1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfLe -> com.android.tools.r8.code.f1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfLez -> com.android.tools.r8.code.g1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfLt -> com.android.tools.r8.code.h1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfLtz -> com.android.tools.r8.code.i1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfNe -> com.android.tools.r8.code.j1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.IfNez -> com.android.tools.r8.code.k1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
+com.android.tools.r8.code.Iget -> com.android.tools.r8.code.l1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IgetBoolean -> com.android.tools.r8.code.m1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IgetByte -> com.android.tools.r8.code.n1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IgetChar -> com.android.tools.r8.code.o1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IgetObject -> com.android.tools.r8.code.p1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IgetShort -> com.android.tools.r8.code.q1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IgetWide -> com.android.tools.r8.code.r1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InstanceOf -> com.android.tools.r8.code.s1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> z
+com.android.tools.r8.code.Instruction -> com.android.tools.r8.code.t1:
+    int[] NO_TARGETS -> c
+    int[] EXIT_TARGET -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.code.Instruction[] EMPTY_ARRAY -> b
+    int offset -> a
+    1:5:void <clinit>():21:25 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.code.BytecodeStream):29:31 -> <init>
+    4:5:void <init>():34:35 -> <init>
+    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    short combineBytes(int,int) -> a
+    void registerUse(com.android.tools.r8.graph.UseRegistry) -> a
+    java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper) -> a
+    void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
+    1:1:char read16BitValue(com.android.tools.r8.code.BytecodeStream):52:52 -> a
+    2:2:void writeFirst(int,java.nio.ShortBuffer):85:85 -> a
+    3:3:void writeFirst(int,int,java.nio.ShortBuffer):89:89 -> a
+    4:5:void write32BitValue(long,java.nio.ShortBuffer):97:98 -> a
+    6:7:void write16BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):108:109 -> a
+    8:8:void write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    8:8:void write16BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):110 -> a
+    9:9:java.lang.String formatRelativeOffset(int):199:199 -> a
+    10:10:java.lang.String formatOffset(int):191:191 -> a
+    10:10:java.lang.String formatRelativeOffset(int):199 -> a
+    11:11:java.lang.String formatRelativeOffset(int):199:199 -> a
+    12:12:java.lang.String formatDecimalOffset(int):195:195 -> a
+    12:12:java.lang.String formatRelativeOffset(int):199 -> a
+    13:13:java.lang.String formatRelativeOffset(int):199:199 -> a
+    14:22:java.lang.String formatSmaliString(java.lang.String):212:220 -> a
+    23:23:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):260:260 -> a
+    24:24:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):272:272 -> a
+    com.android.tools.r8.code.ConstClass asConstClass() -> b
+    int makeByte(int,int) -> b
+    java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper) -> b
+    1:2:long read32BitValue(com.android.tools.r8.code.BytecodeStream):63:64 -> b
+    3:3:void setOffset(int):123:123 -> b
+    4:5:java.lang.String formatString(java.lang.String):203:204 -> b
+    6:6:java.lang.String formatOffset(int):191:191 -> b
+    6:6:java.lang.String formatString(java.lang.String):204 -> b
+    7:11:java.lang.String formatString(java.lang.String):204:208 -> b
+    com.android.tools.r8.code.ConstString asConstString() -> c
+    1:1:short read8BitValue(com.android.tools.r8.code.BytecodeStream):43:43 -> c
+    com.android.tools.r8.code.ConstStringJumbo asConstStringJumbo() -> d
+    1:1:short readSigned16BitValue(com.android.tools.r8.code.BytecodeStream):48:48 -> d
+    com.android.tools.r8.code.DexItemBasedConstString asDexItemBasedConstString() -> e
+    1:2:int readSigned32BitValue(com.android.tools.r8.code.BytecodeStream):56:57 -> e
+    boolean canThrow() -> f
+    1:1:byte readSigned8BitValue(com.android.tools.r8.code.BytecodeStream):39:39 -> f
+    com.android.tools.r8.graph.DexField getField() -> g
+    com.android.tools.r8.graph.DexMethod getMethod() -> h
+    java.lang.String getName() -> i
+    1:1:int getOffset():119:119 -> j
+    int getOpcode() -> k
+    int getPayloadOffset() -> l
+    int getSize() -> m
+    java.lang.String getSmaliName() -> n
+    int[] getTargets() -> o
+    boolean hasPayload() -> p
+    boolean isCheckCast() -> q
+    boolean isConstClass() -> r
+    boolean isConstString() -> s
+    boolean isConstStringJumbo() -> t
+    1:1:java.lang.String toString():277:277 -> toString
+    boolean isDexItemBasedConstString() -> u
+    boolean isIntSwitch() -> v
+    boolean isPayload() -> w
+    1:1:boolean isSimpleNop():163:163 -> x
+    boolean isSwitchPayload() -> y
+com.android.tools.r8.code.InstructionFactory -> com.android.tools.r8.code.u1:
+    1:1:void <init>():11:11 -> <init>
+    1:4:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):22:25 -> a
+    5:6:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):15:16 -> a
+    5:6:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    7:7:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):462:462 -> a
+    7:7:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    7:7:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    8:8:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):136:136 -> a
+    8:8:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    8:8:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    9:9:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):134:134 -> a
+    9:9:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    9:9:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    10:10:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):132:132 -> a
+    10:10:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    10:10:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    11:11:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):130:130 -> a
+    11:11:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    11:11:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    12:12:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):128:128 -> a
+    12:12:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    12:12:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    13:13:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):126:126 -> a
+    13:13:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    13:13:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    14:14:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):124:124 -> a
+    14:14:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    14:14:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    15:15:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):122:122 -> a
+    15:15:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    15:15:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    16:16:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):120:120 -> a
+    16:16:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    16:16:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    17:17:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):118:118 -> a
+    17:17:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    17:17:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    18:18:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):116:116 -> a
+    18:18:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    18:18:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    19:19:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):114:114 -> a
+    19:19:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    19:19:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    20:20:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):112:112 -> a
+    20:20:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    20:20:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    21:21:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):110:110 -> a
+    21:21:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    21:21:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    22:22:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):108:108 -> a
+    22:22:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    22:22:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    23:23:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):106:106 -> a
+    23:23:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    23:23:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    24:24:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):104:104 -> a
+    24:24:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    24:24:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    25:25:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):102:102 -> a
+    25:25:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    25:25:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    26:26:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):100:100 -> a
+    26:26:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    26:26:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    27:27:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):98:98 -> a
+    27:27:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    27:27:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    28:28:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):96:96 -> a
+    28:28:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    28:28:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    29:29:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):94:94 -> a
+    29:29:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    29:29:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    30:30:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):92:92 -> a
+    30:30:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    30:30:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    31:31:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):90:90 -> a
+    31:31:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    31:31:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    32:32:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):88:88 -> a
+    32:32:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    32:32:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    33:33:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):86:86 -> a
+    33:33:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    33:33:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    34:34:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):84:84 -> a
+    34:34:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    34:34:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    35:35:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):82:82 -> a
+    35:35:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    35:35:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    36:36:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):80:80 -> a
+    36:36:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    36:36:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    37:37:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):78:78 -> a
+    37:37:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    37:37:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    38:38:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):76:76 -> a
+    38:38:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    38:38:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    39:39:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):74:74 -> a
+    39:39:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    39:39:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    40:40:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):72:72 -> a
+    40:40:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    40:40:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    41:41:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):70:70 -> a
+    41:41:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    41:41:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    42:42:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):68:68 -> a
+    42:42:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    42:42:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    43:43:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):66:66 -> a
+    43:43:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    43:43:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    44:44:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):64:64 -> a
+    44:44:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    44:44:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    45:45:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):62:62 -> a
+    45:45:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    45:45:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    46:46:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):60:60 -> a
+    46:46:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    46:46:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    47:47:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):58:58 -> a
+    47:47:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    47:47:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    48:48:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):56:56 -> a
+    48:48:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    48:48:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    49:49:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):54:54 -> a
+    49:49:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    49:49:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    50:50:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):52:52 -> a
+    50:50:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    50:50:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    51:51:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):50:50 -> a
+    51:51:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    51:51:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    52:52:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):48:48 -> a
+    52:52:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    52:52:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    53:53:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):46:46 -> a
+    53:53:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    53:53:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    54:54:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):44:44 -> a
+    54:54:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    54:54:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    55:55:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):42:42 -> a
+    55:55:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    55:55:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    56:56:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):40:40 -> a
+    56:56:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    56:56:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    57:57:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):38:38 -> a
+    57:57:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    57:57:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    58:58:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):36:36 -> a
+    58:58:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    58:58:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    59:59:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):34:34 -> a
+    59:59:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    59:59:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    60:60:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):32:32 -> a
+    60:60:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    60:60:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    61:61:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):30:30 -> a
+    61:61:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    61:61:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    62:62:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):28:28 -> a
+    62:62:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    62:62:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    63:63:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):26:26 -> a
+    63:63:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    63:63:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    64:64:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):24:24 -> a
+    64:64:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    64:64:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    65:65:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):22:22 -> a
+    65:65:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    65:65:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    66:66:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> a
+    66:66:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    66:66:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    67:67:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> a
+    67:67:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    67:67:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    68:68:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):16:16 -> a
+    68:68:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    68:68:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    69:285:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):14:230 -> a
+    69:285:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    69:285:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    286:286:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):228:228 -> a
+    286:286:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    286:286:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    287:287:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):226:226 -> a
+    287:287:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    287:287:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    288:288:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):224:224 -> a
+    288:288:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    288:288:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    289:289:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):222:222 -> a
+    289:289:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    289:289:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    290:290:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):220:220 -> a
+    290:290:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    290:290:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    291:291:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):218:218 -> a
+    291:291:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    291:291:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    292:292:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):216:216 -> a
+    292:292:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    292:292:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    293:293:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):214:214 -> a
+    293:293:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    293:293:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    294:294:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):212:212 -> a
+    294:294:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    294:294:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    295:295:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):210:210 -> a
+    295:295:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    295:295:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    296:296:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):208:208 -> a
+    296:296:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    296:296:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    297:297:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):206:206 -> a
+    297:297:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    297:297:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    298:298:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):204:204 -> a
+    298:298:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    298:298:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    299:299:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):202:202 -> a
+    299:299:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    299:299:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    300:300:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):200:200 -> a
+    300:300:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    300:300:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    301:301:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):198:198 -> a
+    301:301:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    301:301:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    302:302:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):196:196 -> a
+    302:302:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    302:302:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    303:303:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):194:194 -> a
+    303:303:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    303:303:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    304:304:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):192:192 -> a
+    304:304:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    304:304:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    305:305:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):190:190 -> a
+    305:305:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    305:305:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    306:306:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):188:188 -> a
+    306:306:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    306:306:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    307:307:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):186:186 -> a
+    307:307:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    307:307:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    308:308:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):184:184 -> a
+    308:308:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    308:308:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    309:309:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):182:182 -> a
+    309:309:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    309:309:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    310:310:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):180:180 -> a
+    310:310:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    310:310:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    311:311:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):178:178 -> a
+    311:311:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    311:311:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    312:312:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):176:176 -> a
+    312:312:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    312:312:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    313:313:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):174:174 -> a
+    313:313:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    313:313:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    314:314:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):172:172 -> a
+    314:314:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    314:314:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    315:315:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):170:170 -> a
+    315:315:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    315:315:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    316:316:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):168:168 -> a
+    316:316:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    316:316:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    317:317:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):166:166 -> a
+    317:317:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    317:317:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    318:318:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):164:164 -> a
+    318:318:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    318:318:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    319:319:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):162:162 -> a
+    319:319:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    319:319:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    320:320:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):160:160 -> a
+    320:320:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    320:320:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    321:321:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):158:158 -> a
+    321:321:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    321:321:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    322:322:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):156:156 -> a
+    322:322:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    322:322:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    323:323:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):154:154 -> a
+    323:323:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    323:323:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    324:324:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):152:152 -> a
+    324:324:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    324:324:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    325:325:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):150:150 -> a
+    325:325:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    325:325:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    326:326:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):148:148 -> a
+    326:326:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    326:326:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    327:327:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):146:146 -> a
+    327:327:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    327:327:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    328:328:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):144:144 -> a
+    328:328:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    328:328:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    329:329:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):142:142 -> a
+    329:329:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    329:329:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    330:330:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):140:140 -> a
+    330:330:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    330:330:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    331:433:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):138:240 -> a
+    331:433:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    331:433:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    434:434:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):238:238 -> a
+    434:434:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    434:434:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    435:435:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):236:236 -> a
+    435:435:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    435:435:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    436:436:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):234:234 -> a
+    436:436:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    436:436:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    437:653:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):232:448 -> a
+    437:653:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    437:653:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    654:654:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):446:446 -> a
+    654:654:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    654:654:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    655:655:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):444:444 -> a
+    655:655:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    655:655:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    656:656:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):442:442 -> a
+    656:656:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    656:656:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    657:657:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):440:440 -> a
+    657:657:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    657:657:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    658:658:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):438:438 -> a
+    658:658:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    658:658:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    659:659:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):436:436 -> a
+    659:659:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    659:659:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    660:660:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):434:434 -> a
+    660:660:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    660:660:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    661:661:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):432:432 -> a
+    661:661:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    661:661:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    662:662:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):430:430 -> a
+    662:662:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    662:662:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    663:663:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):428:428 -> a
+    663:663:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    663:663:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    664:664:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):426:426 -> a
+    664:664:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    664:664:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    665:665:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):424:424 -> a
+    665:665:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    665:665:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    666:666:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):422:422 -> a
+    666:666:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    666:666:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    667:667:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):420:420 -> a
+    667:667:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    667:667:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    668:668:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):418:418 -> a
+    668:668:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    668:668:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    669:669:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):416:416 -> a
+    669:669:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    669:669:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    670:670:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):414:414 -> a
+    670:670:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    670:670:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    671:671:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):412:412 -> a
+    671:671:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    671:671:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    672:672:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):410:410 -> a
+    672:672:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    672:672:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    673:673:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):408:408 -> a
+    673:673:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    673:673:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    674:674:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):406:406 -> a
+    674:674:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    674:674:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    675:675:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):404:404 -> a
+    675:675:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    675:675:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    676:676:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):402:402 -> a
+    676:676:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    676:676:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    677:677:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):400:400 -> a
+    677:677:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    677:677:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    678:678:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):398:398 -> a
+    678:678:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    678:678:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    679:679:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):396:396 -> a
+    679:679:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    679:679:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    680:680:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):394:394 -> a
+    680:680:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    680:680:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    681:681:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):392:392 -> a
+    681:681:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    681:681:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    682:682:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):390:390 -> a
+    682:682:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    682:682:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    683:683:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):388:388 -> a
+    683:683:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    683:683:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    684:684:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):386:386 -> a
+    684:684:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    684:684:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    685:685:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):384:384 -> a
+    685:685:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    685:685:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    686:686:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):382:382 -> a
+    686:686:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    686:686:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    687:687:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):380:380 -> a
+    687:687:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    687:687:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    688:688:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):378:378 -> a
+    688:688:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    688:688:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    689:689:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):376:376 -> a
+    689:689:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    689:689:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    690:690:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):374:374 -> a
+    690:690:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    690:690:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    691:691:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):372:372 -> a
+    691:691:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    691:691:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    692:692:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):370:370 -> a
+    692:692:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    692:692:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    693:693:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):368:368 -> a
+    693:693:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    693:693:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    694:694:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):366:366 -> a
+    694:694:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    694:694:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    695:695:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):364:364 -> a
+    695:695:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    695:695:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    696:696:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):362:362 -> a
+    696:696:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    696:696:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    697:697:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):360:360 -> a
+    697:697:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    697:697:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    698:698:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):358:358 -> a
+    698:698:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    698:698:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    699:699:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):356:356 -> a
+    699:699:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    699:699:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    700:700:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):354:354 -> a
+    700:700:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    700:700:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    701:701:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):352:352 -> a
+    701:701:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    701:701:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    702:702:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):350:350 -> a
+    702:702:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    702:702:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    703:703:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):348:348 -> a
+    703:703:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    703:703:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    704:704:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):346:346 -> a
+    704:704:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    704:704:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    705:705:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):344:344 -> a
+    705:705:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    705:705:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    706:706:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):342:342 -> a
+    706:706:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    706:706:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    707:707:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):340:340 -> a
+    707:707:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    707:707:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    708:708:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):338:338 -> a
+    708:708:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    708:708:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    709:709:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):336:336 -> a
+    709:709:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    709:709:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    710:710:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):334:334 -> a
+    710:710:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    710:710:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    711:711:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):332:332 -> a
+    711:711:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    711:711:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    712:712:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):330:330 -> a
+    712:712:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    712:712:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    713:713:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):328:328 -> a
+    713:713:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    713:713:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    714:714:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):326:326 -> a
+    714:714:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    714:714:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    715:715:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):324:324 -> a
+    715:715:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    715:715:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    716:716:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):322:322 -> a
+    716:716:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    716:716:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    717:717:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):320:320 -> a
+    717:717:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    717:717:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    718:718:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):318:318 -> a
+    718:718:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    718:718:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    719:719:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):316:316 -> a
+    719:719:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    719:719:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    720:720:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):314:314 -> a
+    720:720:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    720:720:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    721:721:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):312:312 -> a
+    721:721:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    721:721:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    722:722:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):310:310 -> a
+    722:722:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    722:722:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    723:723:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):308:308 -> a
+    723:723:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    723:723:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    724:724:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):306:306 -> a
+    724:724:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    724:724:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    725:725:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):304:304 -> a
+    725:725:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    725:725:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    726:726:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):302:302 -> a
+    726:726:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    726:726:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    727:727:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):300:300 -> a
+    727:727:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    727:727:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    728:728:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):298:298 -> a
+    728:728:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    728:728:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    729:729:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):296:296 -> a
+    729:729:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    729:729:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    730:730:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):294:294 -> a
+    730:730:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    730:730:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    731:731:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):292:292 -> a
+    731:731:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    731:731:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    732:732:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):290:290 -> a
+    732:732:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    732:732:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    733:733:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):288:288 -> a
+    733:733:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    733:733:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    734:734:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):286:286 -> a
+    734:734:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    734:734:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    735:735:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):284:284 -> a
+    735:735:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    735:735:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    736:736:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):282:282 -> a
+    736:736:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    736:736:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    737:737:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):280:280 -> a
+    737:737:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    737:737:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    738:738:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):278:278 -> a
+    738:738:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    738:738:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    739:739:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):276:276 -> a
+    739:739:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    739:739:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    740:740:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):274:274 -> a
+    740:740:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    740:740:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    741:741:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):272:272 -> a
+    741:741:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    741:741:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    742:742:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):270:270 -> a
+    742:742:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    742:742:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    743:743:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):268:268 -> a
+    743:743:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    743:743:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    744:744:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):266:266 -> a
+    744:744:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    744:744:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    745:745:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):264:264 -> a
+    745:745:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    745:745:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    746:746:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):262:262 -> a
+    746:746:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    746:746:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    747:747:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):260:260 -> a
+    747:747:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    747:747:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    748:748:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):258:258 -> a
+    748:748:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    748:748:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    749:749:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):256:256 -> a
+    749:749:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    749:749:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    750:750:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):254:254 -> a
+    750:750:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    750:750:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    751:751:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):252:252 -> a
+    751:751:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    751:751:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    752:752:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):250:250 -> a
+    752:752:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    752:752:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    753:753:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):248:248 -> a
+    753:753:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    753:753:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    754:754:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):246:246 -> a
+    754:754:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    754:754:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    755:755:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):244:244 -> a
+    755:755:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    755:755:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    756:974:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):242:460 -> a
+    756:974:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    756:974:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    975:975:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):458:458 -> a
+    975:975:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    975:975:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    976:976:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):456:456 -> a
+    976:976:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    976:976:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    977:977:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):454:454 -> a
+    977:977:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    977:977:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    978:978:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):452:452 -> a
+    978:978:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    978:978:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    979:979:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):450:450 -> a
+    979:979:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
+    979:979:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
+    980:982:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):27:29 -> a
+com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream -> com.android.tools.r8.code.u1$a:
+    boolean cacheContainsValidByte -> f
+    boolean $assertionsDisabled -> g
+    int offset -> d
+    int nextByte -> e
+    int startIndex -> b
+    java.nio.ShortBuffer source -> c
+    int length -> a
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:1:void <init>(java.nio.ShortBuffer,int,int):42:42 -> <init>
+    2:9:void <init>(java.nio.ShortBuffer,int,int):38:45 -> <init>
+    1:1:int getOffset():77:77 -> a
+    1:1:boolean hasMore():72:72 -> b
+    1:7:int nextByte():59:65 -> c
+    1:4:int nextShort():50:53 -> d
+com.android.tools.r8.code.IntToByte -> com.android.tools.r8.code.v1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IntToChar -> com.android.tools.r8.code.w1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IntToDouble -> com.android.tools.r8.code.x1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IntToFloat -> com.android.tools.r8.code.y1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IntToLong -> com.android.tools.r8.code.z1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IntToShort -> com.android.tools.r8.code.A1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeCustom -> com.android.tools.r8.code.B1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):23:23 -> <init>
+    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():48:48 -> a
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    3:19:void com.android.tools.r8.ir.conversion.IRBuilder.addInvokeCustomRegisters(com.android.tools.r8.graph.DexCallSite,int,int[]):1480:1496 -> a
+    3:19:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53 -> a
+    20:20:com.android.tools.r8.graph.DexCallSite getCallSite():48:48 -> a
+    20:20:void registerUse(com.android.tools.r8.graph.UseRegistry):43 -> a
+    21:21:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeCustomRange -> com.android.tools.r8.code.C1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexCallSite):22:22 -> <init>
+    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():42:42 -> a
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    3:3:com.android.tools.r8.graph.DexCallSite getCallSite():42:42 -> a
+    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry):47 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeDirect -> com.android.tools.r8.code.D1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeDirectRange -> com.android.tools.r8.code.E1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):48:48 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():43:43 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeInterface -> com.android.tools.r8.code.F1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
+    2:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeInterfaceRange -> com.android.tools.r8.code.G1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokePolymorphic -> com.android.tools.r8.code.H1:
+    byte com.android.tools.r8.code.Format45cc.F -> j
+    boolean com.android.tools.r8.code.Format45cc.$assertionsDisabled -> n
+    byte com.android.tools.r8.code.Format45cc.E -> i
+    byte com.android.tools.r8.code.Format45cc.G -> k
+    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.BBBB -> l
+    byte com.android.tools.r8.code.Format45cc.A -> f
+    byte com.android.tools.r8.code.Format45cc.D -> h
+    com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.HHHH -> m
+    byte com.android.tools.r8.code.Format45cc.C -> g
+    1:1:void com.android.tools.r8.code.Format45cc.<clinit>():17:17 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23:23 -> <init>
+    2:12:void com.android.tools.r8.code.Format45cc.<init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexMethod[],com.android.tools.r8.graph.DexProto[]):29:39 -> <init>
+    2:12:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23 -> <init>
+    13:27:void com.android.tools.r8.code.Format45cc.<init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int,int,int,int):43:57 -> <init>
+    13:27:void <init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int,int,int,int):28 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):33:33 -> a
+    2:2:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():0:0 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34 -> a
+    3:3:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.getProto():156:156 -> a
+    3:3:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.getProto():0 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34 -> a
+    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34:34 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):33:33 -> a
+    6:6:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):92:92 -> a
+    6:6:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    7:7:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):43:43 -> a
+    7:7:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):92 -> a
+    7:7:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    8:8:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60:60 -> a
+    8:8:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):44 -> a
+    8:8:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):92 -> a
+    8:8:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    9:254:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> a
+    9:254:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60 -> a
+    9:254:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):44 -> a
+    9:254:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):92 -> a
+    9:254:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    255:255:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):93:93 -> a
+    255:255:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    256:258:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):98:100 -> a
+    256:258:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
+    259:259:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    259:259:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):100 -> a
+    259:259:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
+    260:260:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):101:101 -> a
+    260:260:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
+    261:268:java.lang.String com.android.tools.r8.code.Format45cc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):106:113 -> a
+    261:268:java.lang.String com.android.tools.r8.code.Format45cc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):0 -> a
+    269:271:java.lang.String com.android.tools.r8.code.Format45cc.itemToString(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.naming.ClassNameMapper):130:132 -> a
+    272:280:void com.android.tools.r8.code.Format45cc.appendRegisterArguments(java.lang.StringBuilder,java.lang.String):138:146 -> a
+    1:7:java.lang.String com.android.tools.r8.code.Format45cc.toString(com.android.tools.r8.naming.ClassNameMapper):118:124 -> b
+    1:7:java.lang.String com.android.tools.r8.code.Format45cc.toString(com.android.tools.r8.naming.ClassNameMapper):0 -> b
+    1:12:boolean com.android.tools.r8.code.Format45cc.equals(java.lang.Object):75:86 -> equals
+    1:12:boolean com.android.tools.r8.code.Format45cc.equals(java.lang.Object):0 -> equals
+    boolean canThrow() -> f
+    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod() -> h
+    1:9:int com.android.tools.r8.code.Format45cc.hashCode():62:70 -> hashCode
+    1:9:int com.android.tools.r8.code.Format45cc.hashCode():0 -> hashCode
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():151:151 -> z
+com.android.tools.r8.code.InvokePolymorphicRange -> com.android.tools.r8.code.I1:
+    char com.android.tools.r8.code.Format4rcc.CCCC -> g
+    com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.HHHH -> i
+    short com.android.tools.r8.code.Format4rcc.AA -> f
+    boolean com.android.tools.r8.code.Format4rcc.$assertionsDisabled -> j
+    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format4rcc.BBBB -> h
+    1:1:void com.android.tools.r8.code.Format4rcc.<clinit>():17:17 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21:21 -> <init>
+    2:6:void com.android.tools.r8.code.Format4rcc.<init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexMethod[],com.android.tools.r8.graph.DexProto[]):26:30 -> <init>
+    2:6:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21 -> <init>
+    7:13:void com.android.tools.r8.code.Format4rcc.<init>(int,int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto):33:39 -> <init>
+    7:13:void <init>(int,int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto):26 -> <init>
+    1:3:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):44:46 -> a
+    1:3:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
+    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    4:4:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):46 -> a
+    4:4:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
+    5:5:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):47:47 -> a
+    5:5:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
+    6:6:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> a
+    6:6:void registerUse(com.android.tools.r8.graph.UseRegistry):51 -> a
+    7:7:void registerUse(com.android.tools.r8.graph.UseRegistry):51:51 -> a
+    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
+    9:9:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> a
+    9:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56 -> a
+    10:10:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.getProto():131:131 -> a
+    10:10:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.getProto():0 -> a
+    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56 -> a
+    11:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
+    12:19:java.lang.String com.android.tools.r8.code.Format4rcc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):85:92 -> a
+    12:19:java.lang.String com.android.tools.r8.code.Format4rcc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):0 -> a
+    20:20:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):98:98 -> a
+    20:20:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    21:21:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):43:43 -> a
+    21:21:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):98 -> a
+    21:21:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    22:22:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60:60 -> a
+    22:22:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):44 -> a
+    22:22:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):98 -> a
+    22:22:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    23:268:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> a
+    23:268:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60 -> a
+    23:268:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):44 -> a
+    23:268:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):98 -> a
+    23:268:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    269:269:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):99:99 -> a
+    269:269:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
+    270:276:void com.android.tools.r8.code.Format4rcc.appendRegisterRange(java.lang.StringBuilder):115:121 -> a
+    1:14:java.lang.String com.android.tools.r8.code.Format4rcc.toString(com.android.tools.r8.naming.ClassNameMapper):67:80 -> b
+    1:14:java.lang.String com.android.tools.r8.code.Format4rcc.toString(com.android.tools.r8.naming.ClassNameMapper):0 -> b
+    1:5:boolean com.android.tools.r8.code.Format4rcc.equals(java.lang.Object):58:62 -> equals
+    1:5:boolean com.android.tools.r8.code.Format4rcc.equals(java.lang.Object):0 -> equals
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> h
+    1:2:int com.android.tools.r8.code.Format4rcc.hashCode():52:53 -> hashCode
+    1:2:int com.android.tools.r8.code.Format4rcc.hashCode():0 -> hashCode
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeStatic -> com.android.tools.r8.code.J1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexMethod,int,int,int,int,int):23:23 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeStaticRange -> com.android.tools.r8.code.K1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeSuper -> com.android.tools.r8.code.L1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeSuperRange -> com.android.tools.r8.code.M1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeVirtual -> com.android.tools.r8.code.N1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexMethod,int,int,int,int,int):23:23 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.InvokeVirtualRange -> com.android.tools.r8.code.O1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Iput -> com.android.tools.r8.code.P1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IputBoolean -> com.android.tools.r8.code.Q1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IputByte -> com.android.tools.r8.code.R1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IputChar -> com.android.tools.r8.code.S1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IputObject -> com.android.tools.r8.code.T1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IputShort -> com.android.tools.r8.code.U1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.IputWide -> com.android.tools.r8.code.V1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.LongToDouble -> com.android.tools.r8.code.W1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.LongToFloat -> com.android.tools.r8.code.X1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.LongToInt -> com.android.tools.r8.code.Y1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MonitorEnter -> com.android.tools.r8.code.Z1:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MonitorExit -> com.android.tools.r8.code.a2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Move -> com.android.tools.r8.code.c2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Move16 -> com.android.tools.r8.code.b2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveException -> com.android.tools.r8.code.d2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveFrom16 -> com.android.tools.r8.code.e2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    4:4:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35 -> a
+    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveObject -> com.android.tools.r8.code.g2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    4:4:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveObject16 -> com.android.tools.r8.code.f2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    4:4:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveObjectFrom16 -> com.android.tools.r8.code.h2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    4:4:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35 -> a
+    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    6:6:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1236:1236 -> a
+    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveResult -> com.android.tools.r8.code.i2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):14:14 -> <init>
+    2:2:void <init>(int):18:18 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):7:7 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):7 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):38:38 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):7:7 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveResultObject -> com.android.tools.r8.code.j2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveResultWide -> com.android.tools.r8.code.k2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveWide -> com.android.tools.r8.code.m2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveWide16 -> com.android.tools.r8.code.l2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MoveWideFrom16 -> com.android.tools.r8.code.n2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    4:4:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35 -> a
+    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulDouble -> com.android.tools.r8.code.p2:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:7:void <init>(int,int,int):20:25 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulDouble2Addr -> com.android.tools.r8.code.o2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulFloat -> com.android.tools.r8.code.r2:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:7:void <init>(int,int,int):20:25 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulFloat2Addr -> com.android.tools.r8.code.q2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulInt -> com.android.tools.r8.code.t2:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:7:void <init>(int,int,int):19:24 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulInt2Addr -> com.android.tools.r8.code.s2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulIntLit16 -> com.android.tools.r8.code.u2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulIntLit8 -> com.android.tools.r8.code.v2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulLong -> com.android.tools.r8.code.x2:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:7:void <init>(int,int,int):20:25 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.MulLong2Addr -> com.android.tools.r8.code.w2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.NegDouble -> com.android.tools.r8.code.y2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.NegFloat -> com.android.tools.r8.code.z2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.NegInt -> com.android.tools.r8.code.A2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.NegLong -> com.android.tools.r8.code.B2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.NewArray -> com.android.tools.r8.code.C2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):22:22 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> a
+    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42 -> a
+    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
+    4:4:com.android.tools.r8.graph.DexType getType():46:46 -> a
+    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.NewInstance -> com.android.tools.r8.code.D2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> z
+com.android.tools.r8.code.Nop -> com.android.tools.r8.code.E2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>():18:18 -> <init>
+    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:void com.android.tools.r8.code.Format10x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):25:25 -> a
+    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    2:2:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):30:30 -> a
+    3:3:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):28:28 -> a
+    4:4:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):26:26 -> a
+    5:5:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):24:24 -> a
+    6:6:java.lang.String com.android.tools.r8.code.Format10x.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
+    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
+    1:1:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> b
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
+    1:1:boolean equals(java.lang.Object):8:8 -> equals
+    1:1:int com.android.tools.r8.code.Format10x.hashCode():30:30 -> hashCode
+    1:1:int hashCode():36 -> hashCode
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.NotInt -> com.android.tools.r8.code.F2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.NotLong -> com.android.tools.r8.code.G2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.OrInt -> com.android.tools.r8.code.I2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.OrInt2Addr -> com.android.tools.r8.code.H2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.OrIntLit16 -> com.android.tools.r8.code.J2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.OrIntLit8 -> com.android.tools.r8.code.K2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.OrLong -> com.android.tools.r8.code.M2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.OrLong2Addr -> com.android.tools.r8.code.L2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.PackedSwitch -> com.android.tools.r8.code.N2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
+    2:2:void <init>(int):21:21 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):46:46 -> a
+    2:2:int com.android.tools.r8.code.Format31t.getPayloadOffset():45:45 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):47 -> a
+    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):48:49 -> a
+    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    boolean isIntSwitch() -> v
+com.android.tools.r8.code.PackedSwitchPayload -> com.android.tools.r8.code.O2:
+    int[] targets -> h
+    boolean $assertionsDisabled -> i
+    int size -> f
+    int first_key -> g
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:6:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:24 -> <init>
+    7:11:void <init>(int,int[]):28:32 -> <init>
+    1:1:int numberOfKeys():75:75 -> A
+    1:1:int[] switchTargetOffsets():80:80 -> B
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):42:43 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):43 -> a
+    4:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):44:46 -> a
+    7:16:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):95:104 -> a
+    17:17:java.lang.String com.android.tools.r8.code.Instruction.formatOffset(int):191:191 -> a
+    17:17:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):104 -> a
+    18:18:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):106:106 -> a
+    19:19:java.lang.String com.android.tools.r8.code.Instruction.formatDecimalOffset(int):195:195 -> a
+    19:19:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):106 -> a
+    20:22:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):108:110 -> a
+    23:23:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> a
+    23:23:java.lang.String com.android.tools.r8.code.Nop.toString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
+    23:23:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):110 -> a
+    24:24:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):110:110 -> a
+    25:39:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):115:129 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):90:90 -> b
+    1:5:boolean equals(java.lang.Object):52:56 -> equals
+    1:4:int hashCode():61:64 -> hashCode
+    1:1:int getSize():70:70 -> m
+    boolean isPayload() -> w
+    1:1:int[] keys():85:85 -> z
+com.android.tools.r8.code.RemDouble -> com.android.tools.r8.code.Q2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemDouble2Addr -> com.android.tools.r8.code.P2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemFloat -> com.android.tools.r8.code.S2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemFloat2Addr -> com.android.tools.r8.code.R2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemInt -> com.android.tools.r8.code.U2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemInt2Addr -> com.android.tools.r8.code.T2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemIntLit16 -> com.android.tools.r8.code.V2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemIntLit8 -> com.android.tools.r8.code.W2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemLong -> com.android.tools.r8.code.Y2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RemLong2Addr -> com.android.tools.r8.code.X2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Return -> com.android.tools.r8.code.Z2:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:int[] getTargets():39:39 -> o
+com.android.tools.r8.code.ReturnObject -> com.android.tools.r8.code.a3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:int[] getTargets():39:39 -> o
+com.android.tools.r8.code.ReturnVoid -> com.android.tools.r8.code.b3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>():18:18 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:void com.android.tools.r8.code.Format10x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):25:25 -> a
+    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> a
+    3:3:java.lang.String com.android.tools.r8.code.Format10x.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
+    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
+    1:1:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> b
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
+    1:1:boolean equals(java.lang.Object):8:8 -> equals
+    1:1:int com.android.tools.r8.code.Format10x.hashCode():30:30 -> hashCode
+    1:1:int hashCode():8 -> hashCode
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:int[] getTargets():37:37 -> o
+com.android.tools.r8.code.ReturnWide -> com.android.tools.r8.code.c3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    1:1:int[] getTargets():39:39 -> o
+com.android.tools.r8.code.RsubInt -> com.android.tools.r8.code.d3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.RsubIntLit8 -> com.android.tools.r8.code.e3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.Sget -> com.android.tools.r8.code.f3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SgetBoolean -> com.android.tools.r8.code.g3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SgetByte -> com.android.tools.r8.code.h3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SgetChar -> com.android.tools.r8.code.i3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SgetObject -> com.android.tools.r8.code.j3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SgetShort -> com.android.tools.r8.code.k3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SgetWide -> com.android.tools.r8.code.l3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShlInt -> com.android.tools.r8.code.n3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShlInt2Addr -> com.android.tools.r8.code.m3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShlIntLit8 -> com.android.tools.r8.code.o3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShlLong -> com.android.tools.r8.code.q3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShlLong2Addr -> com.android.tools.r8.code.p3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShrInt -> com.android.tools.r8.code.s3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShrInt2Addr -> com.android.tools.r8.code.r3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShrIntLit8 -> com.android.tools.r8.code.t3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShrLong -> com.android.tools.r8.code.v3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.ShrLong2Addr -> com.android.tools.r8.code.u3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SparseSwitch -> com.android.tools.r8.code.w3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
+    2:2:int com.android.tools.r8.code.Format31t.getPayloadOffset():45:45 -> a
+    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):46 -> a
+    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):47:48 -> a
+    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+    boolean isIntSwitch() -> v
+com.android.tools.r8.code.SparseSwitchPayload -> com.android.tools.r8.code.x3:
+    int[] keys -> g
+    int[] targets -> h
+    boolean $assertionsDisabled -> i
+    int size -> f
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:28 -> <init>
+    11:15:void <init>(int[],int[]):32:36 -> <init>
+    1:1:int numberOfKeys():82:82 -> A
+    1:1:int[] switchTargetOffsets():92:92 -> B
+    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):46:47 -> a
+    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
+    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):47 -> a
+    4:8:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):48:52 -> a
+    9:24:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):102:117 -> a
+    25:25:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> a
+    25:25:java.lang.String com.android.tools.r8.code.Nop.toString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
+    25:25:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):117 -> a
+    26:26:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):117:117 -> a
+    27:42:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):122:137 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):97:97 -> b
+    1:6:boolean equals(java.lang.Object):58:63 -> equals
+    1:4:int hashCode():68:71 -> hashCode
+    1:1:int getSize():77:77 -> m
+    boolean isPayload() -> w
+    1:1:int[] keys():87:87 -> z
+com.android.tools.r8.code.Sput -> com.android.tools.r8.code.y3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SputBoolean -> com.android.tools.r8.code.z3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SputByte -> com.android.tools.r8.code.A3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SputChar -> com.android.tools.r8.code.B3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SputObject -> com.android.tools.r8.code.C3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SputShort -> com.android.tools.r8.code.D3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SputWide -> com.android.tools.r8.code.E3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
+    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
+    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
+    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
+    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
+    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
+    boolean canThrow() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SubDouble -> com.android.tools.r8.code.G3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SubDouble2Addr -> com.android.tools.r8.code.F3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SubFloat -> com.android.tools.r8.code.I3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SubFloat2Addr -> com.android.tools.r8.code.H3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SubInt -> com.android.tools.r8.code.K3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SubInt2Addr -> com.android.tools.r8.code.J3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SubLong -> com.android.tools.r8.code.M3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SubLong2Addr -> com.android.tools.r8.code.L3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.SwitchPayload -> com.android.tools.r8.code.N3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):11:11 -> <init>
+    2:2:void <init>():14:14 -> <init>
+    int numberOfKeys() -> A
+    int[] switchTargetOffsets() -> B
+    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    boolean isSwitchPayload() -> y
+    int[] keys() -> z
+com.android.tools.r8.code.Throw -> com.android.tools.r8.code.O3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    boolean canThrow() -> f
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.UshrInt -> com.android.tools.r8.code.Q3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.UshrInt2Addr -> com.android.tools.r8.code.P3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.UshrIntLit8 -> com.android.tools.r8.code.R3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.UshrLong -> com.android.tools.r8.code.T3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.UshrLong2Addr -> com.android.tools.r8.code.S3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.XorInt -> com.android.tools.r8.code.V3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.XorInt2Addr -> com.android.tools.r8.code.U3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
+    2:2:void <init>(int,int):19:19 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.XorIntLit16 -> com.android.tools.r8.code.W3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.XorIntLit8 -> com.android.tools.r8.code.X3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.XorLong -> com.android.tools.r8.code.Z3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.code.XorLong2Addr -> com.android.tools.r8.code.Y3:
+    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
+    2:2:void <init>(int,int):20:20 -> <init>
+    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
+    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
+    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
+    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
+    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
+    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
+    java.lang.String getName() -> i
+    int getOpcode() -> k
+    java.lang.String getSmaliName() -> n
+com.android.tools.r8.com.google.common.base.Absent -> com.android.tools.r8.r.a.a.a.a:
+    com.android.tools.r8.com.google.common.base.Absent INSTANCE -> a
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:1:void <init>():36:36 -> <init>
+    1:1:java.lang.Object or(java.lang.Object):50:50 -> a
+com.android.tools.r8.com.google.common.base.Ascii -> com.android.tools.r8.r.a.a.a.b:
+    int com.android.tools.r8.com.google.common.primitives.Ints.saturatedCast(long) -> a
+    1:19:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):46:64 -> a
+    20:20:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):62:62 -> a
+    21:21:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):60:60 -> a
+    22:25:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):55:58 -> a
+    26:26:boolean com.android.tools.r8.com.google.common.base.Objects.equal(java.lang.Object,java.lang.Object):52:52 -> a
+    27:46:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):146:165 -> a
+    47:47:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):155:155 -> a
+    48:58:java.lang.String toLowerCase(java.lang.String):403:413 -> a
+com.android.tools.r8.com.google.common.base.CharMatcher -> com.android.tools.r8.r.a.a.a.o:
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher whitespace():134:134 -> <clinit>
+    1:1:void <clinit>():272 -> <clinit>
+    2:2:com.android.tools.r8.com.google.common.base.CharMatcher ascii():154:154 -> <clinit>
+    2:2:void <clinit>():294 -> <clinit>
+    3:3:com.android.tools.r8.com.google.common.base.CharMatcher digit():165:165 -> <clinit>
+    3:3:void <clinit>():306 -> <clinit>
+    4:4:com.android.tools.r8.com.google.common.base.CharMatcher javaIsoControl():227:227 -> <clinit>
+    4:4:void <clinit>():369 -> <clinit>
+    5:5:com.android.tools.r8.com.google.common.base.CharMatcher invisible():238:238 -> <clinit>
+    5:5:void <clinit>():380 -> <clinit>
+    6:6:com.android.tools.r8.com.google.common.base.CharMatcher singleWidth():252:252 -> <clinit>
+    6:6:void <clinit>():394 -> <clinit>
+    7:7:com.android.tools.r8.com.google.common.base.CharMatcher any():108:108 -> <clinit>
+    7:7:void <clinit>():403 -> <clinit>
+    8:8:com.android.tools.r8.com.google.common.base.CharMatcher none():117:117 -> <clinit>
+    8:8:void <clinit>():412 -> <clinit>
+    1:1:void <init>():484:484 -> <init>
+    boolean matches(char) -> a
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher ascii():154:154 -> a
+    1:1:boolean apply(java.lang.Object):53:53 -> apply
+    2:2:boolean apply(java.lang.Character):1018:1018 -> apply
+    2:2:boolean apply(java.lang.Object):53 -> apply
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():497:497 -> b
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher none():117:117 -> c
+    1:1:java.util.function.Predicate negate():53:53 -> negate
+com.android.tools.r8.com.google.common.base.CharMatcher$Any -> com.android.tools.r8.r.a.a.a.c:
+    com.android.tools.r8.com.google.common.base.CharMatcher$Any INSTANCE -> b
+    1:1:void <clinit>():1119:1119 -> <clinit>
+    1:1:void <init>():1122:1122 -> <init>
+    boolean matches(char) -> a
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.none():117:117 -> b
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1209 -> b
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.none():117:117 -> negate
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1209 -> negate
+    1:1:java.util.function.Predicate negate():1117 -> negate
+com.android.tools.r8.com.google.common.base.CharMatcher$Ascii -> com.android.tools.r8.r.a.a.a.d:
+    com.android.tools.r8.com.google.common.base.CharMatcher$Ascii INSTANCE -> b
+    1:1:void <clinit>():1385:1385 -> <clinit>
+    1:1:void <init>():1388:1388 -> <init>
+    boolean matches(char) -> a
+com.android.tools.r8.com.google.common.base.CharMatcher$Digit -> com.android.tools.r8.r.a.a.a.e:
+    com.android.tools.r8.com.google.common.base.CharMatcher$Digit INSTANCE -> d
+    1:1:void <clinit>():1455:1455 -> <clinit>
+    1:1:void <init>():1458:1458 -> <init>
+    1:3:char[] nines():1448:1450 -> d
+    1:1:char[] zeroes():1444:1444 -> e
+com.android.tools.r8.com.google.common.base.CharMatcher$Invisible -> com.android.tools.r8.r.a.a.a.f:
+    com.android.tools.r8.com.google.common.base.CharMatcher$Invisible INSTANCE -> d
+    1:1:void <clinit>():1567:1567 -> <clinit>
+    1:1:void <init>():1570:1570 -> <init>
+com.android.tools.r8.com.google.common.base.CharMatcher$JavaIsoControl -> com.android.tools.r8.r.a.a.a.g:
+    com.android.tools.r8.com.google.common.base.CharMatcher$JavaIsoControl INSTANCE -> b
+    1:1:void <clinit>():1545:1545 -> <clinit>
+    1:1:void <init>():1548:1548 -> <init>
+    boolean matches(char) -> a
+com.android.tools.r8.com.google.common.base.CharMatcher$NamedFastMatcher -> com.android.tools.r8.r.a.a.a.h:
+    java.lang.String description -> a
+    1:1:void com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.<init>():1047:1047 -> <init>
+    1:1:void <init>(java.lang.String):1065 -> <init>
+    2:2:void <init>(java.lang.String):1066:1066 -> <init>
+    1:1:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):1047:1047 -> apply
+    1:1:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):0 -> apply
+    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher.apply(java.lang.Character):1018:1018 -> apply
+    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):1047 -> apply
+    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):0 -> apply
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():1056:1056 -> b
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():0 -> b
+    1:1:java.util.function.Predicate com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():1047:1047 -> negate
+    1:1:java.util.function.Predicate com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():0 -> negate
+    1:1:java.lang.String toString():1071:1071 -> toString
+com.android.tools.r8.com.google.common.base.CharMatcher$Negated -> com.android.tools.r8.r.a.a.a.i:
+    com.android.tools.r8.com.google.common.base.CharMatcher original -> a
+    1:2:void <init>(com.android.tools.r8.com.google.common.base.CharMatcher):1594:1595 -> <init>
+    1:1:boolean matches(char):1600:1600 -> a
+    1:1:boolean apply(java.lang.Object):1590:1590 -> apply
+    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher.apply(java.lang.Character):1018:1018 -> apply
+    2:2:boolean apply(java.lang.Object):1590 -> apply
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1629:1629 -> b
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1629:1629 -> negate
+    1:1:java.util.function.Predicate negate():1590 -> negate
+    1:1:java.lang.String toString():1634:1634 -> toString
+com.android.tools.r8.com.google.common.base.CharMatcher$NegatedFastMatcher -> com.android.tools.r8.r.a.a.a.j:
+    1:1:void <init>(com.android.tools.r8.com.google.common.base.CharMatcher):1079:1079 -> <init>
+com.android.tools.r8.com.google.common.base.CharMatcher$None -> com.android.tools.r8.r.a.a.a.k:
+    com.android.tools.r8.com.google.common.base.CharMatcher$None INSTANCE -> b
+    1:1:void <clinit>():1216:1216 -> <clinit>
+    1:1:void <init>():1219:1219 -> <init>
+    boolean matches(char) -> a
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.any():108:108 -> b
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1312 -> b
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.any():108:108 -> negate
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1312 -> negate
+    1:1:java.util.function.Predicate negate():1214 -> negate
+com.android.tools.r8.com.google.common.base.CharMatcher$RangesMatcher -> com.android.tools.r8.r.a.a.a.l:
+    char[] rangeStarts -> b
+    char[] rangeEnds -> c
+    java.lang.String description -> a
+    1:9:void <init>(java.lang.String,char[],char[]):1404:1412 -> <init>
+    1:6:boolean matches(char):1419:1424 -> a
+    1:1:boolean apply(java.lang.Object):1398:1398 -> apply
+    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher.apply(java.lang.Character):1018:1018 -> apply
+    2:2:boolean apply(java.lang.Object):1398 -> apply
+    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.negate():497:497 -> negate
+    1:1:java.util.function.Predicate negate():1398 -> negate
+    1:1:java.lang.String toString():1430:1430 -> toString
+com.android.tools.r8.com.google.common.base.CharMatcher$SingleWidth -> com.android.tools.r8.r.a.a.a.m:
+    com.android.tools.r8.com.google.common.base.CharMatcher$SingleWidth INSTANCE -> d
+    1:1:void <clinit>():1577:1577 -> <clinit>
+    1:2:void <init>():1582:1583 -> <init>
+    3:3:void <init>():1580:1580 -> <init>
+com.android.tools.r8.com.google.common.base.CharMatcher$Whitespace -> com.android.tools.r8.r.a.a.a.n:
+    com.android.tools.r8.com.google.common.base.CharMatcher$Whitespace INSTANCE -> c
+    int SHIFT -> b
+    1:3:void <clinit>():1326:1328 -> <clinit>
+    1:1:void <init>():1331:1331 -> <init>
+    1:1:boolean matches(char):1336:1336 -> a
+com.android.tools.r8.com.google.common.base.Charsets -> com.android.tools.r8.r.a.a.a.p:
+    java.nio.charset.Charset UTF_8 -> a
+    1:50:void <clinit>():45:94 -> <clinit>
+com.android.tools.r8.com.google.common.base.CommonPattern -> com.android.tools.r8.r.a.a.a.q:
+    1:1:void <init>():25:25 -> <init>
+    com.android.tools.r8.com.google.common.base.CommonMatcher matcher(java.lang.CharSequence) -> a
+com.android.tools.r8.com.google.common.base.Equivalence -> com.android.tools.r8.r.a.a.a.v:
+    1:1:void <init>():41:41 -> <init>
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence equals():323:323 -> a
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence identity():336:336 -> b
+    1:1:boolean equivalent(java.lang.Object,java.lang.Object):67:67 -> equivalent
+    1:1:com.android.tools.r8.com.google.common.base.Predicate equivalentTo(java.lang.Object):269:269 -> equivalentTo
+    1:1:int hash(java.lang.Object):113:113 -> hash
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence onResultOf(com.android.tools.r8.com.google.common.base.Function):151:151 -> onResultOf
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence pairwise():259:259 -> pairwise
+    1:1:boolean test(java.lang.Object,java.lang.Object):78:78 -> test
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper wrap(java.lang.Object):162:162 -> wrap
+com.android.tools.r8.com.google.common.base.Equivalence$1 -> com.android.tools.r8.r.a.a.a.r:
+com.android.tools.r8.com.google.common.base.Equivalence$Equals -> com.android.tools.r8.r.a.a.a.s:
+    com.android.tools.r8.com.google.common.base.Equivalence$Equals INSTANCE -> a
+    1:1:void <clinit>():341:341 -> <clinit>
+    1:1:void <init>():339:339 -> <init>
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):345:345 -> doEquivalent
+    1:1:int doHash(java.lang.Object):350:350 -> doHash
+com.android.tools.r8.com.google.common.base.Equivalence$EquivalentToPredicate -> com.android.tools.r8.r.a.a.a.t:
+    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
+    java.lang.Object target -> b
+    1:3:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object):277:279 -> <init>
+    1:1:boolean apply(java.lang.Object):284:284 -> apply
+    1:3:boolean equals(java.lang.Object):292:294 -> equals
+    1:1:int hashCode():301:301 -> hashCode
+    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
+    2:2:int hashCode():301 -> hashCode
+    1:1:java.lang.String toString():306:306 -> toString
+com.android.tools.r8.com.google.common.base.Equivalence$Identity -> com.android.tools.r8.r.a.a.a.u:
+    com.android.tools.r8.com.google.common.base.Equivalence$Identity INSTANCE -> a
+    1:1:void <clinit>():362:362 -> <clinit>
+    1:1:void <init>():360:360 -> <init>
+    1:1:int doHash(java.lang.Object):371:371 -> doHash
+com.android.tools.r8.com.google.common.base.Equivalence$Wrapper -> com.android.tools.r8.r.a.a.a.v$a:
+    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
+    java.lang.Object reference -> b
+    1:1:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object,com.android.tools.r8.com.google.common.base.Equivalence$1):183:183 -> <init>
+    2:4:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object):187:189 -> <init>
+    1:1:java.lang.Object get():195:195 -> a
+    1:11:boolean equals(java.lang.Object):208:218 -> equals
+    1:1:int hashCode():229:229 -> hashCode
+    1:1:java.lang.String toString():238:238 -> toString
+com.android.tools.r8.com.google.common.base.Function -> com.android.tools.r8.r.a.a.a.w:
+com.android.tools.r8.com.google.common.base.FunctionalEquivalence -> com.android.tools.r8.r.a.a.a.x:
+    com.android.tools.r8.com.google.common.base.Function function -> a
+    com.android.tools.r8.com.google.common.base.Equivalence resultEquivalence -> b
+    1:3:void <init>(com.android.tools.r8.com.google.common.base.Function,com.android.tools.r8.com.google.common.base.Equivalence):39:41 -> <init>
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):46:46 -> doEquivalent
+    1:1:int doHash(java.lang.Object):51:51 -> doHash
+    1:3:boolean equals(java.lang.Object):59:61 -> equals
+    1:1:int hashCode():68:68 -> hashCode
+    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
+    2:2:int hashCode():68 -> hashCode
+    1:1:java.lang.String toString():73:73 -> toString
+com.android.tools.r8.com.google.common.base.JdkPattern -> com.android.tools.r8.r.a.a.a.z:
+    java.util.regex.Pattern pattern -> a
+    1:2:void <init>(java.util.regex.Pattern):29:30 -> <init>
+    1:1:com.android.tools.r8.com.google.common.base.CommonMatcher matcher(java.lang.CharSequence):35:35 -> a
+    1:4:boolean equals(java.lang.Object):60:63 -> equals
+    1:1:int hashCode():55:55 -> hashCode
+    1:1:java.lang.String toString():50:50 -> toString
+com.android.tools.r8.com.google.common.base.JdkPattern$JdkMatcher -> com.android.tools.r8.r.a.a.a.y:
+    java.util.regex.Matcher matcher -> a
+    1:1:void com.android.tools.r8.com.google.common.base.CommonMatcher.<init>():25:25 -> <init>
+    1:1:void <init>(java.util.regex.Matcher):69 -> <init>
+    2:2:void <init>(java.util.regex.Matcher):70:70 -> <init>
+com.android.tools.r8.com.google.common.base.MoreObjects -> com.android.tools.r8.r.a.a.a.D:
+    1:1:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.alwaysFalse():62:62 -> a
+    2:2:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.not(com.android.tools.r8.com.google.common.base.Predicate):88:88 -> a
+    3:7:com.android.tools.r8.com.google.common.base.Supplier com.android.tools.r8.com.google.common.base.Suppliers.memoize(com.android.tools.r8.com.google.common.base.Supplier):97:101 -> a
+    8:8:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean):121:121 -> a
+    9:9:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.Object):135:135 -> a
+    10:10:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156:156 -> a
+    11:11:java.util.List com.android.tools.r8.com.google.common.base.Predicates.asList(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):722:722 -> a
+    11:11:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156 -> a
+    12:12:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156:156 -> a
+    13:14:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    13:14:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156 -> a
+    15:15:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,char):170:170 -> a
+    16:16:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,int):181:181 -> a
+    17:17:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,long):192:192 -> a
+    18:18:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,java.lang.Object):204:204 -> a
+    19:19:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,int,int):276:276 -> a
+    20:20:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,java.lang.Object,java.lang.Object):396:396 -> a
+    21:21:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    22:22:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object,java.lang.Object):805:805 -> a
+    23:23:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196:1196 -> a
+    23:23:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
+    24:24:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1207:1207 -> a
+    24:24:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
+    24:24:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
+    25:25:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1205:1205 -> a
+    25:25:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
+    25:25:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
+    26:26:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1203:1203 -> a
+    26:26:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
+    26:26:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
+    27:27:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196:1196 -> a
+    27:27:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
+    28:32:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndex(int,int,java.lang.String):1248:1252 -> a
+    33:33:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndex(int,int,java.lang.String):1250:1250 -> a
+    34:34:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271:1271 -> a
+    35:35:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1283:1283 -> a
+    35:35:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
+    36:36:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1280:1280 -> a
+    36:36:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
+    37:37:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1277:1277 -> a
+    37:37:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
+    38:38:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271:1271 -> a
+    39:67:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.format(java.lang.String,java.lang.Object[]):1298:1326 -> a
+    1:1:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.alwaysTrue():54:54 -> b
+    2:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper toStringHelper(java.lang.Object):100:100 -> b
+    3:3:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean):443:443 -> b
+    4:4:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.String,int):509:509 -> b
+    5:5:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.String,java.lang.Object):534:534 -> b
+    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
+    6:6:java.lang.Object firstNonNull(java.lang.Object,java.lang.Object):56 -> b
+    7:7:int com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndex(int,int,java.lang.String):1241:1241 -> b
+    7:7:int com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndex(int,int):1223 -> b
+com.android.tools.r8.com.google.common.base.MoreObjects$1 -> com.android.tools.r8.r.a.a.a.A:
+com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper -> com.android.tools.r8.r.a.a.a.C:
+    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder holderTail -> c
+    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder holderHead -> b
+    java.lang.String className -> a
+    boolean omitNullValues -> d
+    1:1:void <init>(java.lang.String,com.android.tools.r8.com.google.common.base.MoreObjects$1):135:135 -> <init>
+    2:2:void <init>(java.lang.String):144:144 -> <init>
+    3:11:void <init>(java.lang.String):137:145 -> <init>
+    1:1:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper add(java.lang.String,java.lang.Object):168:168 -> a
+    1:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder addHolder():358:359 -> b
+    1:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.String,java.lang.Object):370 -> b
+    3:4:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.String,java.lang.Object):371:372 -> b
+    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
+    5:5:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.String,java.lang.Object):372 -> b
+    1:18:java.lang.String toString():333:350 -> toString
+    19:37:java.lang.String toString():336:354 -> toString
+com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder -> com.android.tools.r8.r.a.a.a.B:
+    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder next -> c
+    java.lang.Object value -> b
+    java.lang.String name -> a
+    1:1:void <init>():376:376 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.base.MoreObjects$1):376:376 -> <init>
+com.android.tools.r8.com.google.common.base.Optional -> com.android.tools.r8.r.a.a.a.E:
+    1:1:void <init>():150:150 -> <init>
+    java.lang.Object or(java.lang.Object) -> a
+    1:1:com.android.tools.r8.com.google.common.base.Optional com.android.tools.r8.com.google.common.base.Absent.withType():33:33 -> a
+    1:1:com.android.tools.r8.com.google.common.base.Optional absent():93 -> a
+com.android.tools.r8.com.google.common.base.PairwiseEquivalence -> com.android.tools.r8.r.a.a.a.F:
+    com.android.tools.r8.com.google.common.base.Equivalence elementEquivalence -> a
+    1:2:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):27:28 -> <init>
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):22:22 -> doEquivalent
+    2:11:boolean doEquivalent(java.lang.Iterable,java.lang.Iterable):33:42 -> doEquivalent
+    2:11:boolean doEquivalent(java.lang.Object,java.lang.Object):22 -> doEquivalent
+    1:1:int doHash(java.lang.Object):22:22 -> doHash
+    2:3:int doHash(java.lang.Iterable):48:49 -> doHash
+    2:3:int doHash(java.lang.Object):22 -> doHash
+    1:3:boolean equals(java.lang.Object):56:58 -> equals
+    1:1:int hashCode():66:66 -> hashCode
+    1:1:java.lang.String toString():71:71 -> toString
+com.android.tools.r8.com.google.common.base.Platform -> com.android.tools.r8.r.a.a.a.I:
+    com.android.tools.r8.com.google.common.base.PatternCompiler patternCompiler -> b
+    java.util.logging.Logger logger -> a
+    1:1:void <clinit>():35:35 -> <clinit>
+    2:7:com.android.tools.r8.com.google.common.base.PatternCompiler loadPatternCompiler():74:79 -> <clinit>
+    2:7:void <clinit>():36 -> <clinit>
+    8:8:void logPatternCompilerError(java.util.ServiceConfigurationError):92:92 -> <clinit>
+    8:8:com.android.tools.r8.com.google.common.base.PatternCompiler loadPatternCompiler():81 -> <clinit>
+    8:8:void <clinit>():36 -> <clinit>
+    9:9:void logPatternCompilerError(java.util.ServiceConfigurationError):92:92 -> <clinit>
+    9:9:com.android.tools.r8.com.google.common.base.PatternCompiler loadPatternCompiler():85 -> <clinit>
+    9:9:void <clinit>():36 -> <clinit>
+    10:10:com.android.tools.r8.com.google.common.base.PatternCompiler loadPatternCompiler():88:88 -> <clinit>
+    10:10:void <clinit>():36 -> <clinit>
+    11:11:void <clinit>():36:36 -> <clinit>
+    1:1:com.android.tools.r8.com.google.common.base.CommonPattern compilePattern(java.lang.String):66:66 -> a
+    2:100:com.android.tools.r8.com.google.common.base.CommonPattern com.android.tools.r8.com.google.common.base.Platform$JdkPatternCompiler.compile(java.lang.String):0:98 -> a
+    2:100:com.android.tools.r8.com.google.common.base.CommonPattern compilePattern(java.lang.String):66 -> a
+    101:101:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    101:101:com.android.tools.r8.com.google.common.base.CommonPattern compilePattern(java.lang.String):65 -> a
+com.android.tools.r8.com.google.common.base.Platform$1 -> com.android.tools.r8.r.a.a.a.G:
+com.android.tools.r8.com.google.common.base.Platform$JdkPatternCompiler -> com.android.tools.r8.r.a.a.a.H:
+    1:1:void <init>():95:95 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.base.Platform$1):95:95 -> <init>
+com.android.tools.r8.com.google.common.base.Predicate -> com.android.tools.r8.r.a.a.a.J:
+    1:1:boolean test(java.lang.Object):80:80 -> test
+com.android.tools.r8.com.google.common.base.Predicates$1 -> com.android.tools.r8.r.a.a.a.K:
+com.android.tools.r8.com.google.common.base.Predicates$NotPredicate -> com.android.tools.r8.r.a.a.a.L:
+    com.android.tools.r8.com.google.common.base.Predicate predicate -> a
+    1:2:void <init>(com.android.tools.r8.com.google.common.base.Predicate):341:342 -> <init>
+    1:1:boolean apply(java.lang.Object):347:347 -> apply
+    1:3:boolean equals(java.lang.Object):357:359 -> equals
+    1:1:int hashCode():352:352 -> hashCode
+    1:1:java.lang.String toString():366:366 -> toString
+com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate -> com.android.tools.r8.r.a.a.a.Q:
+    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate NOT_NULL -> d
+    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate ALWAYS_FALSE -> b
+    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate IS_NULL -> c
+    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate ALWAYS_TRUE -> a
+    1:37:void <clinit>():283:319 -> <clinit>
+    1:1:void <init>(java.lang.String,int):281:281 -> <init>
+    2:2:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.base.Predicates$1):281:281 -> <init>
+com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$1 -> com.android.tools.r8.r.a.a.a.M:
+    1:1:void <init>(java.lang.String,int):283:283 -> <init>
+com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$2 -> com.android.tools.r8.r.a.a.a.N:
+    1:1:void <init>(java.lang.String,int):295:295 -> <init>
+com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$3 -> com.android.tools.r8.r.a.a.a.O:
+    1:1:void <init>(java.lang.String,int):307:307 -> <init>
+com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$4 -> com.android.tools.r8.r.a.a.a.P:
+    1:1:void <init>(java.lang.String,int):319:319 -> <init>
+com.android.tools.r8.com.google.common.base.Predicates$OrPredicate -> com.android.tools.r8.r.a.a.a.S:
+    java.util.List components -> a
+    1:1:void <init>(java.util.List,com.android.tools.r8.com.google.common.base.Predicates$1):415:415 -> <init>
+    2:3:void <init>(java.util.List):418:419 -> <init>
+    1:2:boolean apply(java.lang.Object):425:426 -> apply
+    1:3:boolean equals(java.lang.Object):441:443 -> equals
+    1:1:int hashCode():436:436 -> hashCode
+    1:1:java.lang.String toString():450:450 -> toString
+    2:11:java.lang.String com.android.tools.r8.com.google.common.base.Predicates.toStringHelper(java.lang.String,java.lang.Iterable):457:466 -> toString
+    2:11:java.lang.String com.android.tools.r8.com.google.common.base.Predicates.access$800(java.lang.String,java.lang.Iterable):43 -> toString
+    2:11:java.lang.String toString():450 -> toString
+com.android.tools.r8.com.google.common.base.Splitter -> com.android.tools.r8.r.a.a.a.U:
+    1:1:void <init>(com.android.tools.r8.com.google.common.base.Splitter$Strategy,boolean,com.android.tools.r8.com.google.common.base.CharMatcher,int):103:103 -> <init>
+    1:1:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252:252 -> a
+    2:2:com.android.tools.r8.com.google.common.base.Splitter on(com.android.tools.r8.com.google.common.base.CommonPattern):214:214 -> a
+    2:2:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252 -> a
+    3:3:boolean com.android.tools.r8.com.google.common.base.JdkPattern$JdkMatcher.matches():75:75 -> a
+    3:3:com.android.tools.r8.com.google.common.base.Splitter on(com.android.tools.r8.com.google.common.base.CommonPattern):214 -> a
+    3:3:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252 -> a
+    4:9:com.android.tools.r8.com.google.common.base.Splitter on(com.android.tools.r8.com.google.common.base.CommonPattern):213:218 -> a
+    4:9:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252 -> a
+    10:10:void <init>(com.android.tools.r8.com.google.common.base.Splitter$Strategy):100:100 -> a
+    10:10:com.android.tools.r8.com.google.common.base.Splitter on(com.android.tools.r8.com.google.common.base.CommonPattern):218 -> a
+    10:10:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252 -> a
+com.android.tools.r8.com.google.common.base.Splitter$3 -> com.android.tools.r8.r.a.a.a.T:
+    1:1:void <init>(com.android.tools.r8.com.google.common.base.CommonPattern):219:219 -> <init>
+com.android.tools.r8.com.google.common.base.Supplier -> com.android.tools.r8.r.a.a.a.V:
+com.android.tools.r8.com.google.common.base.Suppliers$MemoizingSupplier -> com.android.tools.r8.r.a.a.a.W:
+    com.android.tools.r8.com.google.common.base.Supplier delegate -> a
+    java.lang.Object value -> c
+    boolean initialized -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.base.Supplier):114:115 -> <init>
+    1:11:java.lang.Object get():121:131 -> get
+    1:1:java.lang.String toString():136:136 -> toString
+com.android.tools.r8.com.google.common.base.Suppliers$NonSerializableMemoizingSupplier -> com.android.tools.r8.r.a.a.a.X:
+    com.android.tools.r8.com.google.common.base.Supplier delegate -> a
+    java.lang.Object value -> c
+    boolean initialized -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.base.Supplier):150:151 -> <init>
+    1:13:java.lang.Object get():157:169 -> get
+    1:1:java.lang.String toString():174:174 -> toString
+com.android.tools.r8.com.google.common.base.Throwables -> com.android.tools.r8.r.a.a.a.Y:
+    java.lang.Object jla -> a
+    1:3:java.lang.Object getJLA():482:484 -> <clinit>
+    1:3:void <clinit>():452 -> <clinit>
+    4:4:void <clinit>():452:452 -> <clinit>
+    5:5:java.lang.reflect.Method getGetMethod():503:503 -> <clinit>
+    5:5:void <clinit>():460 -> <clinit>
+    6:6:java.lang.reflect.Method getJlaMethod(java.lang.String,java.lang.Class[]):520:520 -> <clinit>
+    6:6:java.lang.reflect.Method getGetMethod():503 -> <clinit>
+    6:6:void <clinit>():460 -> <clinit>
+    7:7:void <clinit>():468:468 -> <clinit>
+    8:8:java.lang.reflect.Method getSizeMethod():513:513 -> <clinit>
+    8:8:void <clinit>():468 -> <clinit>
+    9:11:java.lang.reflect.Method getJlaMethod(java.lang.String,java.lang.Class[]):520:522 -> <clinit>
+    9:11:java.lang.reflect.Method getSizeMethod():513 -> <clinit>
+    9:11:void <clinit>():468 -> <clinit>
+    12:12:java.lang.reflect.Method getJlaMethod(java.lang.String,java.lang.Class[]):522:522 -> <clinit>
+    12:12:java.lang.reflect.Method getGetMethod():503 -> <clinit>
+    12:12:void <clinit>():460 -> <clinit>
+    13:13:java.lang.Object getJLA():486:486 -> <clinit>
+    13:13:void <clinit>():452 -> <clinit>
+    1:2:void throwIfInstanceOf(java.lang.Throwable,java.lang.Class):75:76 -> a
+    1:2:void propagateIfInstanceOf(java.lang.Throwable,java.lang.Class):104 -> a
+    1:2:void propagateIfPossible(java.lang.Throwable,java.lang.Class):184 -> a
+    3:7:void throwIfUnchecked(java.lang.Throwable):129:133 -> a
+    3:7:void propagateIfPossible(java.lang.Throwable):159 -> a
+    3:7:void propagateIfPossible(java.lang.Throwable,java.lang.Class):185 -> a
+    8:8:void throwIfUnchecked(java.lang.Throwable):130:130 -> a
+    8:8:void propagateIfPossible(java.lang.Throwable):159 -> a
+    8:8:void propagateIfPossible(java.lang.Throwable,java.lang.Class):185 -> a
+com.android.tools.r8.com.google.common.collect.AbstractIndexedListIterator -> com.android.tools.r8.r.a.a.b.a:
+    int position -> b
+    int size -> a
+    1:1:void <init>(int):52:52 -> <init>
+    2:5:void <init>(int,int):66:69 -> <init>
+    java.lang.Object get(int) -> a
+    1:1:boolean hasNext():74:74 -> hasNext
+    1:1:boolean hasPrevious():92:92 -> hasPrevious
+    1:4:java.lang.Object next():79:82 -> next
+    5:5:java.lang.Object next():80:80 -> next
+    1:1:int nextIndex():87:87 -> nextIndex
+    1:4:java.lang.Object previous():97:100 -> previous
+    5:5:java.lang.Object previous():98:98 -> previous
+    1:1:int previousIndex():105:105 -> previousIndex
+com.android.tools.r8.com.google.common.collect.AbstractIterator -> com.android.tools.r8.r.a.a.b.c:
+    java.lang.Object next -> b
+    com.android.tools.r8.com.google.common.collect.AbstractIterator$State state -> a
+    1:1:void <init>():68:68 -> <init>
+    2:2:void <init>():65:65 -> <init>
+    1:2:boolean hasNext():132:133 -> hasNext
+    3:6:boolean tryToComputeNext():144:147 -> hasNext
+    3:6:boolean hasNext():140 -> hasNext
+    java.lang.Object computeNext() -> k
+    1:1:java.lang.Object endOfData():125:125 -> l
+    1:6:java.lang.Object next():156:161 -> next
+    7:7:java.lang.Object next():157:157 -> next
+com.android.tools.r8.com.google.common.collect.AbstractIterator$State -> com.android.tools.r8.r.a.a.b.b:
+    com.android.tools.r8.com.google.common.collect.AbstractIterator$State[] $VALUES -> e
+    com.android.tools.r8.com.google.common.collect.AbstractIterator$State DONE -> c
+    com.android.tools.r8.com.google.common.collect.AbstractIterator$State NOT_READY -> b
+    com.android.tools.r8.com.google.common.collect.AbstractIterator$State FAILED -> d
+    com.android.tools.r8.com.google.common.collect.AbstractIterator$State READY -> a
+    1:10:void <clinit>():72:81 -> <clinit>
+    11:11:void <clinit>():70:70 -> <clinit>
+    1:1:void <init>(java.lang.String,int):70:70 -> <init>
+com.android.tools.r8.com.google.common.collect.AbstractListMultimap -> com.android.tools.r8.r.a.a.b.d:
+    1:1:void <init>(java.util.Map):45:45 -> <init>
+    1:1:java.util.List get(java.lang.Object):67:67 -> a
+    1:1:java.util.Map asMap():117:117 -> b
+    1:1:boolean equals(java.lang.Object):129:129 -> equals
+    1:1:java.util.Collection get(java.lang.Object):35:35 -> get
+    1:1:boolean put(java.lang.Object,java.lang.Object):106:106 -> put
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap -> com.android.tools.r8.r.a.a.b.f:
+    int totalSize -> f
+    java.util.Map map -> e
+    1:3:void <init>(java.util.Map):122:124 -> <init>
+    1:1:java.util.Map access$000(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> a
+    2:2:int access$202(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,int):91:91 -> a
+    3:10:java.util.Collection wrapCollection(java.lang.Object,java.util.Collection):317:324 -> a
+    11:11:java.util.List wrapList(java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):331:331 -> a
+    11:11:java.util.Collection wrapCollection(java.lang.Object,java.util.Collection):324 -> a
+    12:12:java.util.Collection wrapCollection(java.lang.Object,java.util.Collection):326:326 -> a
+    13:15:java.util.Iterator iteratorOrListIterator(java.util.Collection):613:615 -> a
+    13:15:java.util.Iterator access$100(java.util.Collection):91 -> a
+    16:16:void removeValuesForKey(java.lang.Object):1145:1145 -> a
+    16:16:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
+    17:17:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeRemove(java.util.Map,java.lang.Object):3736:3736 -> a
+    17:17:void removeValuesForKey(java.lang.Object):1145 -> a
+    17:17:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
+    18:23:void removeValuesForKey(java.lang.Object):1145:1150 -> a
+    18:23:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
+    24:24:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    24:24:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeRemove(java.util.Map,java.lang.Object):3734 -> a
+    24:24:void removeValuesForKey(java.lang.Object):1145 -> a
+    24:24:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
+    25:25:java.util.Collection entries():1240:1240 -> a
+    26:29:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):1266:1269 -> a
+    30:30:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):1268:1268 -> a
+    1:1:int access$200(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> b
+    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> b
+    2:2:java.util.Map$Entry lambda$null$0(java.lang.Object,java.lang.Object):1269 -> b
+    1:1:int access$208(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> c
+    1:5:void clear():288:292 -> clear
+    1:1:boolean containsKey(java.lang.Object):185:185 -> containsKey
+    1:1:int access$210(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> d
+    2:7:java.util.Map createAsMap():1284:1289 -> d
+    1:6:java.util.Set createKeySet():932:937 -> f
+    1:1:java.util.Collection get(java.lang.Object):304:304 -> get
+    2:2:java.util.Collection createCollection(java.lang.Object):169:169 -> get
+    2:2:java.util.Collection get(java.lang.Object):306 -> get
+    3:3:java.util.Collection get(java.lang.Object):308:308 -> get
+    1:1:java.util.Iterator entryIterator():1253:1253 -> h
+    1:11:java.util.Spliterator entrySpliterator():1263:1263 -> i
+    java.util.Collection createCollection() -> j
+    1:1:boolean put(java.lang.Object,java.lang.Object):192:192 -> put
+    2:2:java.util.Collection createCollection(java.lang.Object):169:169 -> put
+    2:2:boolean put(java.lang.Object,java.lang.Object):194 -> put
+    3:11:boolean put(java.lang.Object,java.lang.Object):195:203 -> put
+    1:1:int size():180:180 -> size
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2 -> com.android.tools.r8.r.a.a.b.e:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):1253:1253 -> <init>
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap -> com.android.tools.r8.r.a.a.b.f$a:
+    java.util.Map submap -> c
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> d
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.Map):1301:1302 -> <init>
+    1:2:java.util.Map$Entry wrapEntry(java.util.Map$Entry):1377:1378 -> a
+    3:3:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> a
+    3:3:java.util.Map$Entry wrapEntry(java.util.Map$Entry):1378 -> a
+    1:4:void clear():1369:1372 -> clear
+    5:5:boolean com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.hasNext():1423:1423 -> clear
+    5:5:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033 -> clear
+    5:5:void clear():1372 -> clear
+    6:7:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1034:1035 -> clear
+    6:7:void clear():1372 -> clear
+    1:1:boolean containsKey(java.lang.Object):1314:1314 -> containsKey
+    2:2:boolean com.android.tools.r8.com.google.common.collect.Maps.safeContainsKey(java.util.Map,java.lang.Object):3721:3721 -> containsKey
+    2:2:boolean containsKey(java.lang.Object):1314 -> containsKey
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> containsKey
+    3:3:boolean com.android.tools.r8.com.google.common.collect.Maps.safeContainsKey(java.util.Map,java.lang.Object):3719 -> containsKey
+    3:3:boolean containsKey(java.lang.Object):1314 -> containsKey
+    1:1:boolean equals(java.lang.Object):1354:1354 -> equals
+    1:7:java.util.Collection get(java.lang.Object):1319:1325 -> get
+    1:7:java.lang.Object get(java.lang.Object):1293 -> get
+    1:1:int hashCode():1359:1359 -> hashCode
+    1:1:java.util.Set keySet():1330:1330 -> keySet
+    1:9:java.util.Collection remove(java.lang.Object):1340:1348 -> remove
+    1:9:java.lang.Object remove(java.lang.Object):1293 -> remove
+    1:1:int size():1335:1335 -> size
+    1:1:java.lang.String toString():1364:1364 -> toString
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapEntries -> com.android.tools.r8.r.a.a.b.f$a$a:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap this$1 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap):1382:1382 -> <init>
+    1:1:boolean contains(java.lang.Object):1402:1402 -> contains
+    2:2:boolean com.android.tools.r8.com.google.common.collect.Collections2.safeContains(java.util.Collection,java.lang.Object):109:109 -> contains
+    2:2:boolean contains(java.lang.Object):1402 -> contains
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> contains
+    3:3:boolean com.android.tools.r8.com.google.common.collect.Collections2.safeContains(java.util.Collection,java.lang.Object):107 -> contains
+    3:3:boolean contains(java.lang.Object):1402 -> contains
+    1:1:java.util.Map map():1385:1385 -> e
+    1:1:java.util.Iterator iterator():1390:1390 -> iterator
+    1:5:boolean remove(java.lang.Object):1407:1411 -> remove
+    1:1:java.util.Spliterator spliterator():1395:1395 -> spliterator
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator -> com.android.tools.r8.r.a.a.b.f$a$b:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap this$1 -> c
+    java.util.Collection collection -> b
+    java.util.Iterator delegateIterator -> a
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap):1417:1418 -> <init>
+    1:1:boolean hasNext():1423:1423 -> hasNext
+    1:3:java.util.Map$Entry next():1428:1430 -> next
+    1:3:java.lang.Object next():1417 -> next
+    1:3:void remove():1435:1437 -> remove
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$Itr -> com.android.tools.r8.r.a.a.b.f$b:
+    java.util.Iterator valueIterator -> d
+    java.util.Collection collection -> c
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> e
+    java.util.Iterator keyIterator -> a
+    java.lang.Object key -> b
+    1:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):1160:1164 -> <init>
+    1:1:boolean hasNext():1171:1171 -> hasNext
+    1:7:java.lang.Object next():1176:1182 -> next
+    8:8:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> next
+    8:8:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2.output(java.lang.Object,java.lang.Object):1256 -> next
+    8:8:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2.output(java.lang.Object,java.lang.Object):1253 -> next
+    8:8:java.lang.Object next():1182 -> next
+    1:5:void remove():1187:1191 -> remove
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet -> com.android.tools.r8.r.a.a.b.f$c:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.Map):943:944 -> <init>
+    1:1:void clear():996:996 -> clear
+    2:2:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033:1033 -> clear
+    2:2:void clear():996 -> clear
+    3:3:boolean com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet$1.hasNext():955:955 -> clear
+    3:3:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033 -> clear
+    3:3:void clear():996 -> clear
+    4:5:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1034:1035 -> clear
+    4:5:void clear():996 -> clear
+    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> containsAll
+    1:1:boolean containsAll(java.util.Collection):1001 -> containsAll
+    2:2:boolean containsAll(java.util.Collection):1001:1001 -> containsAll
+    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> equals
+    1:1:boolean equals(java.lang.Object):1006 -> equals
+    2:2:boolean equals(java.lang.Object):1006:1006 -> equals
+    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> hashCode
+    1:1:int hashCode():1011 -> hashCode
+    2:2:int hashCode():1011:1011 -> hashCode
+    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> iterator
+    1:1:java.util.Iterator iterator():949 -> iterator
+    2:3:java.util.Iterator iterator():949:950 -> iterator
+    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> remove
+    1:1:boolean remove(java.lang.Object):985 -> remove
+    2:6:boolean remove(java.lang.Object):985:989 -> remove
+    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> spliterator
+    1:1:java.util.Spliterator spliterator():979 -> spliterator
+    2:2:java.util.Spliterator spliterator():979:979 -> spliterator
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet$1 -> com.android.tools.r8.r.a.a.b.g:
+    java.util.Map$Entry entry -> a
+    java.util.Iterator val$entryIterator -> b
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet this$1 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet,java.util.Iterator):950:950 -> <init>
+    1:1:boolean hasNext():955:955 -> hasNext
+    1:2:java.lang.Object next():960:961 -> next
+    1:5:void remove():966:970 -> remove
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$NavigableAsMap -> com.android.tools.r8.r.a.a.b.f$d:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.NavigableMap):1500:1501 -> <init>
+    1:8:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1576:1583 -> a
+    9:18:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.unmodifiableCollectionSubclass(java.util.Collection):272:281 -> a
+    9:18:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1583 -> a
+    19:19:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> a
+    19:19:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1583 -> a
+    1:2:java.util.Map$Entry ceilingEntry(java.lang.Object):1533:1534 -> ceilingEntry
+    1:1:java.lang.Object ceilingKey(java.lang.Object):1539:1539 -> ceilingKey
+    1:1:java.util.NavigableSet descendingKeySet():1608:1608 -> descendingKeySet
+    1:1:java.util.NavigableMap descendingMap():1588:1588 -> descendingMap
+    1:2:java.util.Map$Entry firstEntry():1555:1556 -> firstEntry
+    1:2:java.util.Map$Entry floorEntry(java.lang.Object):1522:1523 -> floorEntry
+    1:1:java.lang.Object floorKey(java.lang.Object):1528:1528 -> floorKey
+    1:1:java.util.NavigableSet createKeySet():1598:1598 -> h
+    1:1:java.util.SortedSet createKeySet():1498 -> h
+    1:1:java.util.NavigableMap headMap(java.lang.Object,boolean):1629:1629 -> headMap
+    2:2:java.util.NavigableMap headMap(java.lang.Object,boolean):1629:1629 -> headMap
+    2:2:java.util.NavigableMap headMap(java.lang.Object):1624 -> headMap
+    2:2:java.util.SortedMap headMap(java.lang.Object):1498 -> headMap
+    1:2:java.util.Map$Entry higherEntry(java.lang.Object):1544:1545 -> higherEntry
+    1:1:java.lang.Object higherKey(java.lang.Object):1550:1550 -> higherKey
+    1:1:java.util.SortedSet keySet():1498:1498 -> i
+    1:1:java.util.SortedMap sortedMap():1498:1498 -> j
+    1:2:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap.keySet():1488:1489 -> k
+    1:2:java.util.NavigableSet keySet():1593 -> k
+    3:3:java.util.NavigableSet keySet():1593:1593 -> k
+    1:1:java.util.Set keySet():1498:1498 -> keySet
+    1:1:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap.sortedMap():1449:1449 -> l
+    1:1:java.util.NavigableMap sortedMap():1506 -> l
+    2:2:java.util.NavigableMap sortedMap():1506:1506 -> l
+    1:2:java.util.Map$Entry lastEntry():1561:1562 -> lastEntry
+    1:2:java.util.Map$Entry lowerEntry(java.lang.Object):1511:1512 -> lowerEntry
+    1:1:java.lang.Object lowerKey(java.lang.Object):1517:1517 -> lowerKey
+    1:1:java.util.NavigableSet navigableKeySet():1603:1603 -> navigableKeySet
+    1:1:java.util.Map$Entry pollFirstEntry():1567:1567 -> pollFirstEntry
+    1:1:java.util.Map$Entry pollLastEntry():1572:1572 -> pollLastEntry
+    1:1:java.util.NavigableMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):1619:1619 -> subMap
+    2:2:java.util.NavigableMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):1619:1619 -> subMap
+    2:2:java.util.NavigableMap subMap(java.lang.Object,java.lang.Object):1613 -> subMap
+    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):1498 -> subMap
+    1:1:java.util.NavigableMap tailMap(java.lang.Object,boolean):1639:1639 -> tailMap
+    2:2:java.util.NavigableMap tailMap(java.lang.Object,boolean):1639:1639 -> tailMap
+    2:2:java.util.NavigableMap tailMap(java.lang.Object):1634 -> tailMap
+    2:2:java.util.SortedMap tailMap(java.lang.Object):1498 -> tailMap
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$NavigableKeySet -> com.android.tools.r8.r.a.a.b.f$e:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> d
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.NavigableMap):1059:1060 -> <init>
+    1:1:java.lang.Object ceiling(java.lang.Object):1080:1080 -> ceiling
+    1:1:java.util.Iterator descendingIterator():1105:1105 -> descendingIterator
+    1:1:java.util.NavigableSet descendingSet():1100:1100 -> descendingSet
+    1:1:java.util.SortedMap sortedMap():1057:1057 -> e
+    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> f
+    1:1:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet.sortedMap():1023 -> f
+    1:1:java.util.NavigableMap sortedMap():1065 -> f
+    2:2:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet.sortedMap():1023:1023 -> f
+    2:2:java.util.NavigableMap sortedMap():1065 -> f
+    3:3:java.util.NavigableMap sortedMap():1065:1065 -> f
+    1:1:java.lang.Object floor(java.lang.Object):1075:1075 -> floor
+    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):1115:1115 -> headSet
+    2:2:java.util.NavigableSet headSet(java.lang.Object,boolean):1115:1115 -> headSet
+    2:2:java.util.NavigableSet headSet(java.lang.Object):1110 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):1057 -> headSet
+    1:1:java.lang.Object higher(java.lang.Object):1085:1085 -> higher
+    1:1:java.lang.Object lower(java.lang.Object):1070:1070 -> lower
+    1:1:java.lang.Object pollFirst():1090:1090 -> pollFirst
+    2:4:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> pollFirst
+    2:4:java.lang.Object pollFirst():1090 -> pollFirst
+    1:1:java.lang.Object pollLast():1095:1095 -> pollLast
+    1:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1126:1127 -> subSet
+    3:4:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1126:1127 -> subSet
+    3:4:java.util.NavigableSet subSet(java.lang.Object,java.lang.Object):1120 -> subSet
+    3:4:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1057 -> subSet
+    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):1137:1137 -> tailSet
+    2:2:java.util.NavigableSet tailSet(java.lang.Object,boolean):1137:1137 -> tailSet
+    2:2:java.util.NavigableSet tailSet(java.lang.Object):1132 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):1057 -> tailSet
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$RandomAccessWrappedList -> com.android.tools.r8.r.a.a.b.f$f:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):926:926 -> <init>
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap -> com.android.tools.r8.r.a.a.b.f$g:
+    java.util.SortedSet sortedKeySet -> e
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.SortedMap):1444:1445 -> <init>
+    1:1:java.util.Comparator comparator():1454:1454 -> comparator
+    1:1:java.lang.Object firstKey():1459:1459 -> firstKey
+    1:1:java.util.SortedSet createKeySet():1494:1494 -> h
+    1:1:java.util.SortedMap headMap(java.lang.Object):1469:1469 -> headMap
+    1:2:java.util.SortedSet keySet():1488:1489 -> i
+    1:1:java.util.SortedMap sortedMap():1449:1449 -> j
+    1:1:java.util.Set keySet():1442:1442 -> keySet
+    1:1:java.lang.Object lastKey():1464:1464 -> lastKey
+    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):1474:1474 -> subMap
+    1:1:java.util.SortedMap tailMap(java.lang.Object):1479:1479 -> tailMap
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet -> com.android.tools.r8.r.a.a.b.f$h:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> c
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.SortedMap):1018:1019 -> <init>
+    1:1:java.util.Comparator comparator():1028:1028 -> comparator
+    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> e
+    1:1:java.util.SortedMap sortedMap():1023 -> e
+    2:2:java.util.SortedMap sortedMap():1023:1023 -> e
+    1:1:java.lang.Object first():1033:1033 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):1038:1038 -> headSet
+    1:1:java.lang.Object last():1043:1043 -> last
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1048:1048 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1053:1053 -> tailSet
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection -> com.android.tools.r8.r.a.a.b.f$i:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection ancestor -> c
+    java.util.Collection ancestorDelegate -> d
+    java.util.Collection delegate -> b
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> e
+    java.lang.Object key -> a
+    1:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.Collection,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):361:365 -> <init>
+    1:7:boolean add(java.lang.Object):514:520 -> add
+    1:10:boolean addAll(java.util.Collection):534:543 -> addAll
+    1:7:void clear():563:569 -> clear
+    1:2:boolean contains(java.lang.Object):551:552 -> contains
+    1:2:boolean containsAll(java.util.Collection):557:558 -> containsAll
+    1:4:void addToMap():413:416 -> e
+    1:2:boolean equals(java.lang.Object):431:432 -> equals
+    1:1:java.util.Collection getDelegate():448:448 -> f
+    1:3:void refreshIfEmpty():376:378 -> g
+    4:4:java.util.Collection getDelegate():448:448 -> g
+    4:4:void refreshIfEmpty():378 -> g
+    5:11:void refreshIfEmpty():378:384 -> g
+    1:4:void removeIfEmpty():394:397 -> h
+    1:2:int hashCode():437:438 -> hashCode
+    1:2:java.util.Iterator iterator():453:454 -> iterator
+    1:5:boolean remove(java.lang.Object):574:578 -> remove
+    1:9:boolean removeAll(java.util.Collection):585:593 -> removeAll
+    1:6:boolean retainAll(java.util.Collection):601:606 -> retainAll
+    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
+    7:7:boolean retainAll(java.util.Collection):600 -> retainAll
+    1:2:int size():422:423 -> size
+    1:2:java.util.Spliterator spliterator():459:460 -> spliterator
+    1:2:java.lang.String toString():443:444 -> toString
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator -> com.android.tools.r8.r.a.a.b.f$i$a:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection this$1 -> c
+    java.util.Collection originalDelegate -> b
+    java.util.Iterator delegateIterator -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):468:468 -> <init>
+    2:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):466:469 -> <init>
+    6:6:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection,java.util.Iterator):472:472 -> <init>
+    7:14:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection,java.util.Iterator):466:473 -> <init>
+    1:2:boolean hasNext():489:490 -> hasNext
+    1:3:void validateIterator():481:483 -> k
+    1:2:java.lang.Object next():495:496 -> next
+    1:3:void remove():501:503 -> remove
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList -> com.android.tools.r8.r.a.a.b.f$j:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):780:781 -> <init>
+    1:1:void add(int,java.lang.Object):819:819 -> add
+    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> add
+    2:2:void add(int,java.lang.Object):820 -> add
+    3:3:void add(int,java.lang.Object):820:820 -> add
+    4:4:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> add
+    4:4:java.util.List getListDelegate():785 -> add
+    4:4:void add(int,java.lang.Object):821 -> add
+    5:5:java.util.List getListDelegate():785:785 -> add
+    5:5:void add(int,java.lang.Object):821 -> add
+    6:9:void add(int,java.lang.Object):821:824 -> add
+    1:4:boolean addAll(int,java.util.Collection):790:793 -> addAll
+    5:5:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> addAll
+    5:5:java.util.List getListDelegate():785 -> addAll
+    5:5:boolean addAll(int,java.util.Collection):794 -> addAll
+    6:6:java.util.List getListDelegate():785:785 -> addAll
+    6:6:boolean addAll(int,java.util.Collection):794 -> addAll
+    7:7:boolean addAll(int,java.util.Collection):794:794 -> addAll
+    8:8:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> addAll
+    8:8:boolean addAll(int,java.util.Collection):796 -> addAll
+    9:12:boolean addAll(int,java.util.Collection):796:799 -> addAll
+    1:1:java.lang.Object get(int):807:807 -> get
+    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> get
+    2:2:java.util.List getListDelegate():785 -> get
+    2:2:java.lang.Object get(int):808 -> get
+    3:3:java.util.List getListDelegate():785:785 -> get
+    3:3:java.lang.Object get(int):808 -> get
+    4:4:java.lang.Object get(int):808:808 -> get
+    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> i
+    1:1:java.util.List getListDelegate():785 -> i
+    2:2:java.util.List getListDelegate():785:785 -> i
+    1:1:int indexOf(java.lang.Object):839:839 -> indexOf
+    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> indexOf
+    2:2:java.util.List getListDelegate():785 -> indexOf
+    2:2:int indexOf(java.lang.Object):840 -> indexOf
+    3:3:java.util.List getListDelegate():785:785 -> indexOf
+    3:3:int indexOf(java.lang.Object):840 -> indexOf
+    4:4:int indexOf(java.lang.Object):840:840 -> indexOf
+    1:1:int lastIndexOf(java.lang.Object):845:845 -> lastIndexOf
+    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> lastIndexOf
+    2:2:java.util.List getListDelegate():785 -> lastIndexOf
+    2:2:int lastIndexOf(java.lang.Object):846 -> lastIndexOf
+    3:3:java.util.List getListDelegate():785:785 -> lastIndexOf
+    3:3:int lastIndexOf(java.lang.Object):846 -> lastIndexOf
+    4:4:int lastIndexOf(java.lang.Object):846:846 -> lastIndexOf
+    1:2:java.util.ListIterator listIterator():851:852 -> listIterator
+    3:4:java.util.ListIterator listIterator(int):857:858 -> listIterator
+    1:1:java.lang.Object remove(int):830:830 -> remove
+    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> remove
+    2:2:java.util.List getListDelegate():785 -> remove
+    2:2:java.lang.Object remove(int):831 -> remove
+    3:3:java.util.List getListDelegate():785:785 -> remove
+    3:3:java.lang.Object remove(int):831 -> remove
+    4:6:java.lang.Object remove(int):831:833 -> remove
+    1:1:java.lang.Object set(int,java.lang.Object):813:813 -> set
+    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> set
+    2:2:java.util.List getListDelegate():785 -> set
+    2:2:java.lang.Object set(int,java.lang.Object):814 -> set
+    3:3:java.util.List getListDelegate():785:785 -> set
+    3:3:java.lang.Object set(int,java.lang.Object):814 -> set
+    4:4:java.lang.Object set(int,java.lang.Object):814:814 -> set
+    1:2:java.util.List subList(int,int):863:864 -> subList
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> subList
+    3:3:java.util.List subList(int,int):865 -> subList
+    4:4:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> subList
+    4:4:java.util.List getListDelegate():785 -> subList
+    4:4:java.util.List subList(int,int):866 -> subList
+    5:5:java.util.List getListDelegate():785:785 -> subList
+    5:5:java.util.List subList(int,int):866 -> subList
+    6:6:java.util.List subList(int,int):866:866 -> subList
+    7:7:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> subList
+    7:7:java.util.List subList(int,int):867 -> subList
+    8:339:java.util.List com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.wrapList(java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):0:331 -> subList
+    8:339:java.util.List com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.access$300(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):91 -> subList
+    8:339:java.util.List subList(int,int):864 -> subList
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList$WrappedListIterator -> com.android.tools.r8.r.a.a.b.f$j$a:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList this$1 -> d
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList):872:872 -> <init>
+    2:3:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList,int):874:875 -> <init>
+    1:5:void add(java.lang.Object):909:913 -> add
+    1:1:boolean hasPrevious():884:884 -> hasPrevious
+    1:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.getDelegateIterator():507:508 -> l
+    1:2:java.util.ListIterator getDelegateListIterator():879 -> l
+    3:3:java.util.ListIterator getDelegateListIterator():879:879 -> l
+    1:1:int nextIndex():894:894 -> nextIndex
+    1:1:java.lang.Object previous():889:889 -> previous
+    1:1:int previousIndex():899:899 -> previousIndex
+    1:1:void set(java.lang.Object):904:904 -> set
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedNavigableSet -> com.android.tools.r8.r.a.a.b.f$k:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.NavigableSet,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):706:707 -> <init>
+    1:1:java.util.NavigableSet wrap(java.util.NavigableSet):746:746 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> a
+    2:2:java.util.NavigableSet wrap(java.util.NavigableSet):746 -> a
+    3:3:java.util.NavigableSet wrap(java.util.NavigableSet):746:746 -> a
+    1:1:java.lang.Object ceiling(java.lang.Object):727:727 -> ceiling
+    1:1:java.util.Iterator descendingIterator():756:756 -> descendingIterator
+    1:1:java.util.NavigableSet descendingSet():751:751 -> descendingSet
+    1:1:java.lang.Object floor(java.lang.Object):722:722 -> floor
+    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):768:768 -> headSet
+    1:1:java.lang.Object higher(java.lang.Object):732:732 -> higher
+    1:1:java.util.SortedSet getSortedSetDelegate():703:703 -> i
+    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> j
+    1:1:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet.getSortedSetDelegate():655 -> j
+    1:1:java.util.NavigableSet getSortedSetDelegate():712 -> j
+    2:2:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet.getSortedSetDelegate():655:655 -> j
+    2:2:java.util.NavigableSet getSortedSetDelegate():712 -> j
+    3:3:java.util.NavigableSet getSortedSetDelegate():712:712 -> j
+    1:1:java.lang.Object lower(java.lang.Object):717:717 -> lower
+    1:1:java.lang.Object pollFirst():737:737 -> pollFirst
+    2:4:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> pollFirst
+    2:4:java.lang.Object pollFirst():737 -> pollFirst
+    1:1:java.lang.Object pollLast():742:742 -> pollLast
+    2:4:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> pollLast
+    2:4:java.lang.Object pollLast():742 -> pollLast
+    1:1:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):763:763 -> subSet
+    2:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):762:762 -> subSet
+    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):773:773 -> tailSet
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSet -> com.android.tools.r8.r.a.a.b.f$l:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.Set):621:622 -> <init>
+    1:13:boolean removeAll(java.util.Collection):627:639 -> removeAll
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet -> com.android.tools.r8.r.a.a.b.f$m:
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.SortedSet,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):650:651 -> <init>
+    1:1:java.util.Comparator comparator():660:660 -> comparator
+    1:2:java.lang.Object first():665:666 -> first
+    1:2:java.util.SortedSet headSet(java.lang.Object):677:678 -> headSet
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> headSet
+    3:3:java.util.SortedSet headSet(java.lang.Object):679 -> headSet
+    4:4:java.util.SortedSet headSet(java.lang.Object):680:680 -> headSet
+    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> headSet
+    5:5:java.util.SortedSet headSet(java.lang.Object):681 -> headSet
+    6:6:java.util.SortedSet headSet(java.lang.Object):681:681 -> headSet
+    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> i
+    1:1:java.util.SortedSet getSortedSetDelegate():655 -> i
+    2:2:java.util.SortedSet getSortedSetDelegate():655:655 -> i
+    1:2:java.lang.Object last():671:672 -> last
+    1:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):686:687 -> subSet
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> subSet
+    3:3:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):688 -> subSet
+    4:4:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):689:689 -> subSet
+    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> subSet
+    5:5:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):690 -> subSet
+    6:6:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):690:690 -> subSet
+    1:2:java.util.SortedSet tailSet(java.lang.Object):695:696 -> tailSet
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> tailSet
+    3:3:java.util.SortedSet tailSet(java.lang.Object):697 -> tailSet
+    4:4:java.util.SortedSet tailSet(java.lang.Object):698:698 -> tailSet
+    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> tailSet
+    5:5:java.util.SortedSet tailSet(java.lang.Object):699 -> tailSet
+    6:6:java.util.SortedSet tailSet(java.lang.Object):699:699 -> tailSet
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset -> com.android.tools.r8.r.a.a.b.j:
+    java.util.Map backingMap -> c
+    long size -> d
+    1:3:void <init>(java.util.Map):60:62 -> <init>
+    1:1:java.util.Map access$000(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> a
+    2:2:long access$102(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset,long):48:48 -> a
+    3:22:int remove(java.lang.Object,int):247:266 -> a
+    1:1:long access$100(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> b
+    2:3:int count(java.lang.Object):208:209 -> b
+    4:18:int add(java.lang.Object,int):225:239 -> b
+    1:1:long access$110(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> c
+    2:7:int setCount(java.lang.Object,int):274:279 -> c
+    8:8:int getAndSet(com.android.tools.r8.com.google.common.collect.Count,int):299:299 -> c
+    8:8:int setCount(java.lang.Object,int):280 -> c
+    9:9:int setCount(java.lang.Object,int):282:282 -> c
+    10:10:int getAndSet(com.android.tools.r8.com.google.common.collect.Count,int):299:299 -> c
+    10:10:int setCount(java.lang.Object,int):283 -> c
+    11:15:int setCount(java.lang.Object,int):286:290 -> c
+    1:5:void clear():136:140 -> clear
+    1:1:java.util.Set entrySet():81:81 -> entrySet
+    1:1:int distinctElements():145:145 -> f
+    1:2:java.util.Iterator entryIterator():86:87 -> g
+    1:1:int size():152:152 -> size
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1 -> com.android.tools.r8.r.a.a.b.i:
+    java.util.Map$Entry toRemove -> a
+    java.util.Iterator val$backingEntries -> b
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset this$0 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset,java.util.Iterator):87:87 -> <init>
+    1:1:boolean hasNext():92:92 -> hasNext
+    1:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry next():97:99 -> next
+    1:3:java.lang.Object next():87 -> next
+    1:4:void remove():121:124 -> remove
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1$1 -> com.android.tools.r8.r.a.a.b.h:
+    java.util.Map$Entry val$mapEntry -> a
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1 this$1 -> b
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1,java.util.Map$Entry):99:99 -> <init>
+    1:3:int getCount():107:109 -> a
+    4:4:java.lang.Object getElement():102:102 -> a
+    4:4:int getCount():109 -> a
+    5:10:int getCount():109:114 -> a
+    1:1:java.lang.Object getElement():102:102 -> b
+com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$MapBasedMultisetIterator -> com.android.tools.r8.r.a.a.b.j$a:
+    java.util.Map$Entry currentEntry -> b
+    java.util.Iterator entryIterator -> a
+    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset this$0 -> e
+    int occurrencesLeft -> c
+    boolean canRemove -> d
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):171:172 -> <init>
+    1:1:boolean hasNext():177:177 -> hasNext
+    1:7:java.lang.Object next():182:188 -> next
+    1:10:void remove():193:202 -> remove
+    11:11:void remove():196:196 -> remove
+com.android.tools.r8.com.google.common.collect.AbstractMapEntry -> com.android.tools.r8.r.a.a.b.k:
+    1:1:void <init>():31:31 -> <init>
+    1:4:boolean equals(java.lang.Object):46:49 -> equals
+    1:3:int hashCode():56:58 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):41:41 -> setValue
+    1:1:java.lang.String toString():66:66 -> toString
+com.android.tools.r8.com.google.common.collect.AbstractMultimap -> com.android.tools.r8.r.a.a.b.m:
+    java.util.Map asMap -> d
+    java.util.Collection entries -> a
+    java.util.Set keySet -> b
+    com.android.tools.r8.com.google.common.collect.Multiset keys -> c
+    1:1:void <init>():40:40 -> <init>
+    1:2:boolean containsEntry(java.lang.Object,java.lang.Object):59:60 -> a
+    3:4:java.util.Collection entries():114:115 -> a
+    1:2:java.util.Map asMap():240:241 -> b
+    1:2:com.android.tools.r8.com.google.common.collect.Multiset keys():180:181 -> c
+    java.util.Map createAsMap() -> d
+    1:1:java.util.Collection createEntries():122:122 -> e
+    1:3:boolean com.android.tools.r8.com.google.common.collect.Multimaps.equalsImpl(com.android.tools.r8.com.google.common.collect.Multimap,java.lang.Object):2220:2222 -> equals
+    1:3:boolean equals(java.lang.Object):250 -> equals
+    1:1:java.util.Set createKeySet():173:173 -> f
+    1:1:com.android.tools.r8.com.google.common.collect.Multiset createKeys():185:185 -> g
+    java.util.Iterator entryIterator() -> h
+    1:1:int hashCode():263:263 -> hashCode
+    java.util.Spliterator entrySpliterator() -> i
+    1:1:boolean isEmpty():43:43 -> isEmpty
+    1:2:java.util.Set keySet():168:169 -> keySet
+    1:2:boolean remove(java.lang.Object,java.lang.Object):66:67 -> remove
+    1:1:java.lang.String toString():274:274 -> toString
+com.android.tools.r8.com.google.common.collect.AbstractMultimap$1 -> com.android.tools.r8.r.a.a.b.l:
+com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries -> com.android.tools.r8.r.a.a.b.m$a:
+    com.android.tools.r8.com.google.common.collect.AbstractMultimap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultimap):127:127 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultimap,com.android.tools.r8.com.google.common.collect.AbstractMultimap$1):127:127 -> <init>
+    1:1:java.util.Iterator iterator():135:135 -> iterator
+    1:1:java.util.Spliterator spliterator():140:140 -> spliterator
+com.android.tools.r8.com.google.common.collect.AbstractMultiset -> com.android.tools.r8.r.a.a.b.n:
+    java.util.Set elementSet -> a
+    java.util.Set entrySet -> b
+    1:1:void <init>():47:47 -> <init>
+    int remove(java.lang.Object,int) -> a
+    1:5:boolean com.android.tools.r8.com.google.common.collect.Multisets.setCountImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object,int,int):966:970 -> a
+    1:5:boolean setCount(java.lang.Object,int,int):115 -> a
+    1:1:boolean add(java.lang.Object):84:84 -> add
+    1:4:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):905:908 -> addAll
+    1:4:boolean addAll(java.util.Collection):129 -> addAll
+    5:5:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.Multisets.cast(java.lang.Iterable):1148:1148 -> addAll
+    5:5:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):909 -> addAll
+    5:5:boolean addAll(java.util.Collection):129 -> addAll
+    6:10:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):910:914 -> addAll
+    6:10:boolean addAll(java.util.Collection):129 -> addAll
+    1:1:int add(java.lang.Object,int):91:91 -> b
+    1:1:java.util.Set elementSet():155:155 -> c
+    2:2:java.util.Set createElementSet():167:167 -> c
+    2:2:java.util.Set elementSet():157 -> c
+    3:3:java.util.Set elementSet():157:157 -> c
+    4:12:int com.android.tools.r8.com.google.common.collect.Multisets.setCountImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object,int):948:956 -> c
+    4:12:int setCount(java.lang.Object,int):109 -> c
+    1:1:java.util.Set createEntrySet():212:212 -> e
+    1:3:java.util.Set entrySet():186:188 -> entrySet
+    1:1:boolean equals(java.lang.Object):226:226 -> equals
+    int distinctElements() -> f
+    java.util.Iterator entryIterator() -> g
+    1:1:int hashCode():237:237 -> hashCode
+    1:1:boolean isEmpty():57:57 -> isEmpty
+    1:1:boolean remove(java.lang.Object):97:97 -> remove
+    1:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.removeAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):923:928 -> removeAll
+    1:6:boolean removeAll(java.util.Collection):135 -> removeAll
+    1:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.retainAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):936:941 -> retainAll
+    1:6:boolean retainAll(java.util.Collection):141 -> retainAll
+    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
+    7:7:boolean com.android.tools.r8.com.google.common.collect.Multisets.retainAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):935 -> retainAll
+    7:7:boolean retainAll(java.util.Collection):141 -> retainAll
+    1:4:int com.android.tools.r8.com.google.common.collect.Multisets.sizeImpl(com.android.tools.r8.com.google.common.collect.Multiset):1138:1141 -> size
+    1:4:int size():52 -> size
+    1:1:java.lang.String toString():248:248 -> toString
+com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet -> com.android.tools.r8.r.a.a.b.n$a:
+    com.android.tools.r8.com.google.common.collect.AbstractMultiset this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultiset):171:171 -> <init>
+com.android.tools.r8.com.google.common.collect.AbstractMultiset$EntrySet -> com.android.tools.r8.r.a.a.b.n$b:
+    com.android.tools.r8.com.google.common.collect.AbstractMultiset this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultiset):194:194 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.Multiset multiset():197:197 -> e
+    1:1:java.util.Iterator iterator():202:202 -> iterator
+    1:1:int size():207:207 -> size
+com.android.tools.r8.com.google.common.collect.ArrayListMultimap -> com.android.tools.r8.r.a.a.b.o:
+    int expectedValuesPerKey -> g
+    1:1:void <init>():112:112 -> <init>
+    2:2:void com.android.tools.r8.com.google.common.collect.ArrayListMultimapGwtSerializationDependencies.<init>(java.util.Map):36:36 -> <init>
+    2:2:void <init>():112 -> <init>
+    3:3:void <init>():113:113 -> <init>
+    1:1:boolean containsEntry(java.lang.Object,java.lang.Object):65:65 -> a
+    2:2:java.util.Collection entries():65:65 -> a
+    3:3:java.util.List get(java.lang.Object):65:65 -> a
+    1:1:java.util.Map asMap():65:65 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.Multiset keys():65:65 -> c
+    1:1:void clear():65:65 -> clear
+    1:1:boolean containsKey(java.lang.Object):65:65 -> containsKey
+    1:1:boolean equals(java.lang.Object):65:65 -> equals
+    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultimap.hashCode():263:263 -> hashCode
+    1:1:int hashCode():65 -> hashCode
+    1:1:boolean isEmpty():65:65 -> isEmpty
+    1:1:java.util.List createCollection():137:137 -> j
+    1:1:java.util.Collection createCollection():65 -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ArrayListMultimap create():80:80 -> k
+    1:1:java.util.Set keySet():65:65 -> keySet
+    1:1:boolean put(java.lang.Object,java.lang.Object):65:65 -> put
+    1:2:boolean com.android.tools.r8.com.google.common.collect.AbstractMultimap.remove(java.lang.Object,java.lang.Object):66:67 -> remove
+    1:2:boolean remove(java.lang.Object,java.lang.Object):65 -> remove
+    1:1:int size():65:65 -> size
+    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultimap.toString():274:274 -> toString
+    1:1:java.lang.String toString():65 -> toString
+com.android.tools.r8.com.google.common.collect.BiMap -> com.android.tools.r8.r.a.a.b.p:
+    java.lang.Object forcePut(java.lang.Object,java.lang.Object) -> a
+    com.android.tools.r8.com.google.common.collect.BiMap inverse() -> e
+com.android.tools.r8.com.google.common.collect.CollectCollectors -> com.android.tools.r8.r.a.a.b.q:
+    java.util.stream.Collector TO_IMMUTABLE_SET -> a
+    1:25:void <clinit>():44:68 -> <clinit>
+    1:1:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):60:60 -> a
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    2:2:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):59 -> a
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    3:3:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):58 -> a
+    4:4:void lambda$toImmutableMap$1(java.util.function.Function,java.util.function.Function,com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,java.lang.Object):62:62 -> a
+    5:5:java.util.stream.Collector toImmutableSet():75:75 -> a
+com.android.tools.r8.com.google.common.collect.CollectSpliterators$1 -> com.android.tools.r8.r.a.a.b.r:
+    java.util.Spliterator val$fromSpliterator -> a
+    java.util.function.Function val$function -> b
+    1:1:void <init>(java.util.Spliterator,java.util.function.Function):105:105 -> <init>
+    1:1:void lambda$forEachRemaining$1(java.util.function.Consumer,java.util.function.Function,java.lang.Object):115:115 -> a
+    1:1:void lambda$tryAdvance$0(java.util.function.Consumer,java.util.function.Function,java.lang.Object):110:110 -> b
+    1:1:int characteristics():131:131 -> characteristics
+    1:1:long estimateSize():126:126 -> estimateSize
+    1:1:void forEachRemaining(java.util.function.Consumer):115:115 -> forEachRemaining
+    1:1:boolean tryAdvance(java.util.function.Consumer):109:109 -> tryAdvance
+    1:2:java.util.Spliterator trySplit():120:121 -> trySplit
+com.android.tools.r8.com.google.common.collect.CollectSpliterators$1FlatMapSpliterator -> com.android.tools.r8.r.a.a.b.s:
+    long estimatedSize -> d
+    java.util.function.Function val$function -> e
+    java.util.Spliterator from -> b
+    java.util.Spliterator prefix -> a
+    int characteristics -> c
+    1:5:void <init>(java.util.Spliterator,java.util.Spliterator,int,long,java.util.function.Function):216:220 -> <init>
+    1:1:void lambda$tryAdvance$0(java.util.function.Function,java.lang.Object):234:234 -> a
+    2:2:void lambda$forEachRemaining$1(java.util.function.Function,java.util.function.Consumer,java.lang.Object):246:246 -> a
+    1:1:int characteristics():284:284 -> characteristics
+    1:4:long estimateSize():276:279 -> estimateSize
+    1:6:void forEachRemaining(java.util.function.Consumer):242:247 -> forEachRemaining
+    1:9:boolean tryAdvance(java.util.function.Consumer):226:234 -> tryAdvance
+    1:16:java.util.Spliterator trySplit():252:267 -> trySplit
+com.android.tools.r8.com.google.common.collect.CollectSpliterators$1Splitr -> com.android.tools.r8.r.a.a.b.t:
+    java.util.function.Predicate val$predicate -> c
+    java.lang.Object holder -> a
+    java.util.Spliterator val$fromSpliterator -> b
+    1:2:void <init>(java.util.Spliterator,java.util.function.Predicate):141:142 -> <init>
+    1:1:void accept(java.lang.Object):146:146 -> accept
+    1:1:int characteristics():182:182 -> characteristics
+    1:1:long estimateSize():172:172 -> estimateSize
+    1:1:java.util.Comparator getComparator():177:177 -> getComparator
+    1:8:boolean tryAdvance(java.util.function.Consumer):151:158 -> tryAdvance
+    1:2:java.util.Spliterator trySplit():166:167 -> trySplit
+    3:3:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):189:189 -> trySplit
+    3:3:java.util.Spliterator trySplit():167 -> trySplit
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> trySplit
+    4:4:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):140 -> trySplit
+    4:4:java.util.Spliterator trySplit():167 -> trySplit
+com.android.tools.r8.com.google.common.collect.CollectSpliterators$1WithCharacteristics -> com.android.tools.r8.r.a.a.b.u:
+    java.util.Comparator val$comparator -> c
+    java.util.Spliterator delegate -> a
+    int val$extraCharacteristics -> b
+    1:2:void <init>(java.util.Spliterator,int,java.util.Comparator):54:55 -> <init>
+    1:1:int characteristics():82:82 -> characteristics
+    1:1:long estimateSize():77:77 -> estimateSize
+    1:1:void forEachRemaining(java.util.function.Consumer):65:65 -> forEachRemaining
+    1:4:java.util.Comparator getComparator():87:90 -> getComparator
+    1:1:boolean tryAdvance(java.util.function.Consumer):60:60 -> tryAdvance
+    1:2:java.util.Spliterator trySplit():71:72 -> trySplit
+com.android.tools.r8.com.google.common.collect.Collections2 -> com.android.tools.r8.r.a.a.b.v:
+    java.util.Spliterator com.android.tools.r8.com.google.common.collect.Streams.lambda$concat$0(java.util.Spliterator) -> a
+    1:1:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkEntryNotNull(java.lang.Object,java.lang.Object):34:34 -> a
+    2:2:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkEntryNotNull(java.lang.Object,java.lang.Object):32:32 -> a
+    3:4:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):40:41 -> a
+    5:5:java.util.Comparator com.android.tools.r8.com.google.common.collect.SortedIterables.comparator(java.util.SortedSet):53:53 -> a
+    5:5:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):41 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> a
+    6:6:java.util.Comparator com.android.tools.r8.com.google.common.collect.SortedIterables.comparator(java.util.SortedSet):55 -> a
+    6:6:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):41 -> a
+    7:12:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):42:47 -> a
+    13:13:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    13:13:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):38 -> a
+    14:14:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    14:14:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):37 -> a
+    15:15:int com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkNonnegative(int,java.lang.String):41:41 -> a
+    16:61:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction,java.util.Comparator):49:94 -> a
+    62:63:int com.android.tools.r8.com.google.common.collect.Hashing.closedTableSize(int,double) -> a
+    64:64:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList():88:88 -> a
+    64:64:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.util.Iterator):164 -> a
+    65:65:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.util.Iterator):165:165 -> a
+    66:66:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyListIterator():90:90 -> a
+    66:66:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyIterator():78 -> a
+    67:67:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):105:105 -> a
+    68:68:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    68:68:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):104 -> a
+    69:69:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    69:69:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):103 -> a
+    70:81:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):148:159 -> a
+    82:82:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):158:158 -> a
+    83:83:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):157:157 -> a
+    84:170:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):201:287 -> a
+    171:171:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    171:171:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):208 -> a
+    172:172:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    172:172:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):207 -> a
+    173:175:boolean com.android.tools.r8.com.google.common.collect.Iterators.removeAll(java.util.Iterator,java.util.Collection):208:210 -> a
+    176:176:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    176:176:boolean com.android.tools.r8.com.google.common.collect.Iterators.removeAll(java.util.Iterator,java.util.Collection):206 -> a
+    177:177:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
+    178:178:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[],int):225:225 -> a
+    178:178:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219 -> a
+    179:179:java.lang.Object com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementNotNull(java.lang.Object,int):235:235 -> a
+    180:180:int com.android.tools.r8.com.google.common.collect.Maps.capacity(int):309:309 -> a
+    181:181:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):331:331 -> a
+    182:182:java.util.Collection cast(java.lang.Iterable):377:377 -> a
+    182:182:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):332 -> a
+    183:185:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):333:335 -> a
+    186:186:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    186:186:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):335 -> a
+    187:195:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):344:352 -> a
+    196:243:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):349:396 -> a
+    244:244:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    244:244:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):343 -> a
+    245:245:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    245:245:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):342 -> a
+    246:247:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):372:373 -> a
+    248:248:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    248:248:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):370 -> a
+    249:249:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    249:249:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):369 -> a
+    250:250:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.cycle(java.lang.Iterable):411:411 -> a
+    251:251:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    251:251:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.cycle(java.lang.Iterable):410 -> a
+    252:252:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    253:253:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> a
+    253:253:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkRemove(boolean):65 -> a
+    254:254:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):503:503 -> a
+    255:255:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.consumingForArray(java.lang.Object[]):471:471 -> a
+    255:255:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):503 -> a
+    256:256:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator):578:578 -> a
+    256:256:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):503 -> a
+    257:257:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    257:257:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):502 -> a
+    258:258:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    258:258:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):501 -> a
+    259:259:boolean com.android.tools.r8.com.google.common.collect.Iterables.any(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):627:627 -> a
+    260:263:int com.android.tools.r8.com.google.common.collect.Iterators.indexOf(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):796:799 -> a
+    260:263:boolean com.android.tools.r8.com.google.common.collect.Iterators.any(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):688 -> a
+    260:263:boolean com.android.tools.r8.com.google.common.collect.Iterables.any(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):627 -> a
+    264:264:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669:669 -> a
+    265:267:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):745:747 -> a
+    265:267:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
+    268:268:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    268:268:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):744 -> a
+    268:268:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
+    269:269:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    269:269:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):743 -> a
+    269:269:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
+    270:277:java.util.List com.android.tools.r8.com.google.common.collect.Lists.reverse(java.util.List):840:847 -> a
+    278:290:boolean com.android.tools.r8.com.google.common.collect.Multisets.equalsImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object):880:892 -> a
+    291:294:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.difference(java.util.Set,java.util.Set):911:914 -> a
+    295:296:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.limit(java.util.Iterator,int):951:952 -> a
+    297:297:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    297:297:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.limit(java.util.Iterator,int):950 -> a
+    298:315:boolean com.android.tools.r8.com.google.common.collect.Lists.equalsImpl(java.util.List,java.lang.Object):1017:1034 -> a
+    316:326:boolean com.android.tools.r8.com.google.common.collect.Iterators.elementsEqual(java.util.Iterator,java.util.Iterator):274:284 -> a
+    316:326:boolean com.android.tools.r8.com.google.common.collect.Lists.equalsImpl(java.util.List,java.lang.Object):1034 -> a
+    327:332:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1085:1090 -> a
+    333:333:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyListIterator():90:90 -> a
+    333:333:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1092 -> a
+    334:334:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1094:1094 -> a
+    335:335:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> a
+    336:336:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.lambda$spliteratorImpl$2(com.android.tools.r8.com.google.common.collect.Multiset$Entry):1126:1126 -> a
+    337:339:com.android.tools.r8.com.google.common.collect.ImmutableMultiset com.android.tools.r8.com.google.common.collect.Multisets.copyHighestCountFirst(com.android.tools.r8.com.google.common.collect.Multiset):1159:1161 -> a
+    340:341:int com.android.tools.r8.com.google.common.collect.Sets.hashCodeImpl(java.util.Set):1770:1771 -> a
+    342:346:boolean com.android.tools.r8.com.google.common.collect.Sets.equalsImpl(java.util.Set,java.lang.Object):1786:1790 -> a
+    347:350:java.util.NavigableSet com.android.tools.r8.com.google.common.collect.Sets.unmodifiableNavigableSet(java.util.NavigableSet):1817:1820 -> a
+    351:352:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Iterator):1980:1981 -> a
+    353:366:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1988:2001 -> a
+    367:367:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    367:367:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1987 -> a
+    368:368:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeGet(java.util.Map,java.lang.Object):3706:3706 -> a
+    369:369:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    369:369:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeGet(java.util.Map,java.lang.Object):3704 -> a
+    370:370:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.keyOrNull(java.util.Map$Entry):3891:3891 -> a
+    371:376:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.Maps.indexMap(java.util.Collection):4375:4380 -> a
+    371:376:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1668 -> a
+    377:380:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1669:1672 -> a
+    381:381:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableSet.of(java.lang.Object):83:83 -> a
+    381:381:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1672 -> a
+    382:385:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1673:1676 -> a
+    1:1:int com.android.tools.r8.com.google.common.collect.Hashing.smearedHash(java.lang.Object):54:54 -> b
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266:266 -> b
+    3:17:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.getOnlyElement(java.util.Iterator):314:328 -> b
+    3:17:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266 -> b
+    18:18:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMapWithExpectedSize(int):300:300 -> b
+    19:19:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newConcurrentHashSet():310:310 -> b
+    20:20:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):575:575 -> b
+    21:21:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
+    21:21:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):574 -> b
+    22:22:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
+    22:22:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):573 -> b
+    23:26:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.intersection(java.util.Set,java.util.Set):839:842 -> b
+    27:29:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> b
+    30:30:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[]):1054:1054 -> b
+    31:38:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.spliteratorImpl(com.android.tools.r8.com.google.common.collect.Multiset):1123:1130 -> b
+    39:39:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.spliteratorImpl(com.android.tools.r8.com.google.common.collect.Multiset):1124:1124 -> b
+    1:1:int com.android.tools.r8.com.google.common.collect.Hashing.smear(int):50:50 -> c
+    2:2:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.stream(java.util.Iterator):82:82 -> c
+    3:3:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):114:114 -> c
+    4:7:int com.android.tools.r8.com.google.common.collect.Lists.computeArrayListCapacity(int):122:125 -> c
+    4:7:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):114 -> c
+    8:9:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):115:116 -> c
+    10:10:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
+    10:10:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):112 -> c
+    11:11:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):148:148 -> c
+    12:12:java.util.Collection cast(java.lang.Iterable):377:377 -> c
+    12:12:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):149 -> c
+    13:14:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):149:150 -> c
+    15:15:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
+    15:15:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):146 -> c
+    16:16:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMap():283:283 -> c
+    17:20:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.union(java.util.Set,java.util.Set):741:744 -> c
+    1:6:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.unmodifiableIterator(java.util.Iterator):132:137 -> d
+    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> d
+    7:7:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.unmodifiableIterator(java.util.Iterator):131 -> d
+    8:8:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> d
+    9:9:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Object[]):235:235 -> d
+    10:10:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSetWithExpectedSize(int):253:253 -> d
+    10:10:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Object[]):235 -> d
+    11:11:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Object[]):236:236 -> d
+    12:12:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):275:275 -> d
+    13:13:java.util.Collection cast(java.lang.Iterable):377:377 -> d
+    13:13:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):276 -> d
+    14:15:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):276:277 -> d
+    16:16:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> d
+    16:16:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.util.Iterator):293 -> d
+    16:16:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):277 -> d
+    17:17:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.util.Iterator):294:294 -> d
+    17:17:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):277 -> d
+    1:3:int com.android.tools.r8.com.google.common.collect.Iterables.size(java.lang.Iterable):126:128 -> e
+    4:8:int com.android.tools.r8.com.google.common.collect.Iterators.size(java.util.Iterator):168:172 -> e
+    4:8:int com.android.tools.r8.com.google.common.collect.Iterables.size(java.lang.Iterable):128 -> e
+    9:9:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> e
+    1:3:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.stream(java.lang.Iterable):62:64 -> f
+    4:4:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> f
+    4:4:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newIdentityHashSet():466 -> f
+    5:5:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newIdentityHashSet():466:466 -> f
+    1:1:java.util.LinkedHashSet com.android.tools.r8.com.google.common.collect.Sets.newLinkedHashSet():347:347 -> g
+com.android.tools.r8.com.google.common.collect.ComparatorOrdering -> com.android.tools.r8.r.a.a.b.w:
+    java.util.Comparator comparator -> a
+    1:2:void <init>(java.util.Comparator):31:32 -> <init>
+    1:1:int compare(java.lang.Object,java.lang.Object):37:37 -> compare
+    1:3:boolean equals(java.lang.Object):45:47 -> equals
+    1:1:int hashCode():54:54 -> hashCode
+    1:1:java.lang.String toString():59:59 -> toString
+com.android.tools.r8.com.google.common.collect.Count -> com.android.tools.r8.r.a.a.b.x:
+    int value -> a
+    1:2:void <init>(int):30:31 -> <init>
+    1:1:int get():35:35 -> a
+    2:2:void add(int):39:39 -> a
+    1:1:int addAndGet(int):43:43 -> b
+    1:2:int getAndSet(int):51:52 -> c
+    1:1:void set(int):47:47 -> d
+    1:1:boolean equals(java.lang.Object):63:63 -> equals
+    1:1:int hashCode():58:58 -> hashCode
+    1:1:java.lang.String toString():68:68 -> toString
+com.android.tools.r8.com.google.common.collect.EmptyImmutableListMultimap -> com.android.tools.r8.r.a.a.b.y:
+    com.android.tools.r8.com.google.common.collect.EmptyImmutableListMultimap INSTANCE -> g
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>():31:31 -> <init>
+com.android.tools.r8.com.google.common.collect.FluentIterable -> com.android.tools.r8.r.a.a.b.B:
+    com.android.tools.r8.com.google.common.base.Optional iterableDelegate -> a
+    1:2:void <init>():117:118 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable,java.lang.Iterable):190:190 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):209:209 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):232:232 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable[]):252:252 -> a
+    1:4:com.android.tools.r8.com.google.common.collect.FluentIterable concatNoDefensiveCopy(java.lang.Iterable[]):258:261 -> b
+    1:1:java.lang.Iterable getDelegate():127:127 -> toString
+    1:1:java.lang.String toString():336 -> toString
+    2:2:java.lang.String com.android.tools.r8.com.google.common.collect.Iterables.toString(java.lang.Iterable):253:253 -> toString
+    2:2:java.lang.String toString():336 -> toString
+    3:12:java.lang.String com.android.tools.r8.com.google.common.collect.Iterators.toString(java.util.Iterator):293:302 -> toString
+    3:12:java.lang.String com.android.tools.r8.com.google.common.collect.Iterables.toString(java.lang.Iterable):253 -> toString
+    3:12:java.lang.String toString():336 -> toString
+com.android.tools.r8.com.google.common.collect.FluentIterable$2 -> com.android.tools.r8.r.a.a.b.A:
+    java.lang.Iterable[] val$inputs -> b
+    1:1:void <init>(java.lang.Iterable[]):261:261 -> <init>
+    1:1:java.util.Iterator iterator():264:264 -> iterator
+    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator):578:578 -> iterator
+    2:2:java.util.Iterator iterator():264 -> iterator
+com.android.tools.r8.com.google.common.collect.FluentIterable$2$1 -> com.android.tools.r8.r.a.a.b.z:
+    com.android.tools.r8.com.google.common.collect.FluentIterable$2 this$0 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.FluentIterable$2,int):266:266 -> <init>
+    1:1:java.util.Iterator get(int):269:269 -> a
+    1:1:java.lang.Object get(int):266 -> a
+com.android.tools.r8.com.google.common.collect.ForwardingCollection -> com.android.tools.r8.r.a.a.b.C:
+    1:1:void com.android.tools.r8.com.google.common.collect.ForwardingObject.<init>():55:55 -> <init>
+    1:1:void <init>():55 -> <init>
+    1:1:boolean add(java.lang.Object):89:89 -> add
+    1:1:boolean addAll(java.util.Collection):106:106 -> addAll
+    1:1:void clear():117:117 -> clear
+    1:1:boolean contains(java.lang.Object):83:83 -> contains
+    1:1:boolean containsAll(java.util.Collection):100:100 -> containsAll
+    java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingObject.delegate() -> e
+    java.util.Collection delegate() -> f
+    1:1:boolean isEmpty():78:78 -> isEmpty
+    1:1:java.util.Iterator iterator():62:62 -> iterator
+    1:1:boolean remove(java.lang.Object):95:95 -> remove
+    1:1:boolean removeAll(java.util.Collection):73:73 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):112:112 -> retainAll
+    1:1:int size():67:67 -> size
+    1:1:java.lang.Object[] toArray():122:122 -> toArray
+    2:2:java.lang.Object[] toArray(java.lang.Object[]):128:128 -> toArray
+    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.ForwardingObject.toString():72:72 -> toString
+    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.ForwardingObject.toString():0 -> toString
+com.android.tools.r8.com.google.common.collect.ForwardingSortedSet -> com.android.tools.r8.r.a.a.b.D:
+    1:1:void com.android.tools.r8.com.google.common.collect.ForwardingSet.<init>():55:55 -> <init>
+    1:1:void <init>():62 -> <init>
+    1:1:java.util.Comparator comparator():69:69 -> comparator
+    1:1:boolean com.android.tools.r8.com.google.common.collect.ForwardingSet.equals(java.lang.Object):62:62 -> equals
+    1:1:boolean com.android.tools.r8.com.google.common.collect.ForwardingSet.equals(java.lang.Object):0 -> equals
+    1:1:java.lang.Object first():74:74 -> first
+    java.util.Set com.android.tools.r8.com.google.common.collect.ForwardingSet.delegate() -> g
+    java.util.SortedSet delegate() -> h
+    1:1:int com.android.tools.r8.com.google.common.collect.ForwardingSet.hashCode():67:67 -> hashCode
+    1:1:int com.android.tools.r8.com.google.common.collect.ForwardingSet.hashCode():0 -> hashCode
+    1:1:java.util.SortedSet headSet(java.lang.Object):79:79 -> headSet
+    1:1:java.lang.Object last():84:84 -> last
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):89:89 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):94:94 -> tailSet
+com.android.tools.r8.com.google.common.collect.HashBiMap -> com.android.tools.r8.r.a.a.b.I:
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder -> c
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder -> d
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK -> b
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV -> a
+    int mask -> f
+    int modCount -> g
+    com.android.tools.r8.com.google.common.collect.BiMap inverse -> h
+    int size -> e
+    1:2:void <init>(int):115:116 -> <init>
+    1:338:java.lang.Object putInverse(java.lang.Object,java.lang.Object,boolean):0:337 -> a
+    1:338:java.lang.Object access$800(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,java.lang.Object,boolean):58 -> a
+    339:339:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$000(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> a
+    340:340:void access$200(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):58:58 -> a
+    341:341:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$300(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,int):58:58 -> a
+    342:342:void access$500(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):58:58 -> a
+    343:343:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):83:83 -> a
+    344:344:com.android.tools.r8.com.google.common.collect.HashBiMap create(int):75:75 -> a
+    344:344:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):83 -> a
+    345:345:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):84:84 -> a
+    346:347:void init(int):120:121 -> a
+    348:348:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> a
+    348:348:void init(int):122 -> a
+    349:349:void init(int):122:122 -> a
+    350:350:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> a
+    350:350:void init(int):123 -> a
+    351:356:void init(int):123:128 -> a
+    357:402:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):136:181 -> a
+    403:403:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):156:156 -> a
+    404:404:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):140:140 -> a
+    405:438:void insert(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):185:218 -> a
+    439:442:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int):222:225 -> a
+    443:443:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int):224:224 -> a
+    444:444:java.lang.Object forcePut(java.lang.Object,java.lang.Object):268:268 -> a
+    445:474:java.lang.Object put(java.lang.Object,java.lang.Object,boolean):272:301 -> a
+    1:1:int access$100(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$400(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,int):58:58 -> b
+    3:6:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int):233:236 -> b
+    7:7:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int):235:235 -> b
+    1:1:int access$700(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> c
+    1:6:void clear():380:385 -> clear
+    1:1:boolean containsKey(java.lang.Object):245:245 -> containsKey
+    1:1:boolean containsValue(java.lang.Object):250:250 -> containsValue
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():547:547 -> e
+    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.entrySet():3666:3666 -> entrySet
+    1:1:java.util.Set entrySet():57 -> entrySet
+    1:4:void forEach(java.util.function.BiConsumer):525:528 -> forEach
+    5:5:void forEach(java.util.function.BiConsumer):527:527 -> forEach
+    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    6:6:void forEach(java.util.function.BiConsumer):524 -> forEach
+    1:1:java.lang.Object get(java.lang.Object):256:256 -> get
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.valueOrNull(java.util.Map$Entry):3896:3896 -> get
+    2:2:java.lang.Object get(java.lang.Object):256 -> get
+    1:1:java.util.Iterator entryIterator():474:474 -> h
+    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap create(int):75:75 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap create():65 -> i
+    1:3:void rehashIfNecessary():341:343 -> j
+    4:4:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> j
+    4:4:void rehashIfNecessary():345 -> j
+    5:5:void rehashIfNecessary():345:345 -> j
+    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> j
+    6:6:void rehashIfNecessary():346 -> j
+    7:14:void rehashIfNecessary():346:353 -> j
+    15:18:void rehashIfNecessary():352:355 -> j
+    1:1:java.util.Set keySet():434:434 -> keySet
+    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):262:262 -> put
+    1:8:java.lang.Object remove(java.lang.Object):367:374 -> remove
+    1:4:void replaceAll(java.util.function.BiFunction):535:538 -> replaceAll
+    5:5:java.lang.Object put(java.lang.Object,java.lang.Object):262:262 -> replaceAll
+    5:5:void replaceAll(java.util.function.BiFunction):538 -> replaceAll
+    6:6:void replaceAll(java.util.function.BiFunction):537:537 -> replaceAll
+    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replaceAll
+    7:7:void replaceAll(java.util.function.BiFunction):534 -> replaceAll
+    1:1:int size():390:390 -> size
+    1:1:java.util.Set values():469:469 -> values
+    1:1:java.util.Collection values():57 -> values
+    2:2:java.util.Set values():469:469 -> values
+com.android.tools.r8.com.google.common.collect.HashBiMap$1 -> com.android.tools.r8.r.a.a.b.E:
+    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> e
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):474:474 -> <init>
+    1:1:java.util.Map$Entry output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):477:477 -> a
+    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):474 -> a
+com.android.tools.r8.com.google.common.collect.HashBiMap$1$MapEntry -> com.android.tools.r8.r.a.a.b.E$a:
+    com.android.tools.r8.com.google.common.collect.HashBiMap$1 this$1 -> b
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry delegate -> a
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$1,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):483:484 -> <init>
+    1:1:java.lang.Object getKey():489:489 -> getKey
+    1:1:java.lang.Object getValue():494:494 -> getValue
+    1:17:java.lang.Object setValue(java.lang.Object):499:515 -> setValue
+com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry -> com.android.tools.r8.r.a.a.b.F:
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket -> e
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket -> f
+    int valueHash -> d
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder -> g
+    int keyHash -> c
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder -> h
+    1:3:void <init>(java.lang.Object,int,java.lang.Object,int):99:101 -> <init>
+com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse -> com.android.tools.r8.r.a.a.b.I$a:
+    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):550:550 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$1):550:550 -> <init>
+    1:1:java.lang.Object forcePut(java.lang.Object,java.lang.Object):584:584 -> a
+    2:2:void lambda$forEach$0(java.util.function.BiConsumer,java.lang.Object,java.lang.Object):693:693 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> clear
+    1:1:void clear():563 -> clear
+    2:2:void clear():563:563 -> clear
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> containsKey
+    1:1:boolean containsKey(java.lang.Object):568 -> containsKey
+    2:2:boolean containsKey(java.lang.Object):568:568 -> containsKey
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> e
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():602 -> e
+    1:1:void forEach(java.util.function.BiConsumer):693:693 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.BiConsumer):692 -> forEach
+    1:1:java.lang.Object get(java.lang.Object):573:573 -> get
+    1:1:java.util.Iterator entryIterator():645:645 -> h
+    1:1:java.util.Set keySet():607:607 -> keySet
+    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):579:579 -> put
+    1:8:java.lang.Object remove(java.lang.Object):589:596 -> remove
+    1:1:void replaceAll(java.util.function.BiFunction):699:699 -> replaceAll
+    2:2:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> replaceAll
+    2:2:void clear():563 -> replaceAll
+    2:2:void replaceAll(java.util.function.BiFunction):700 -> replaceAll
+    3:3:void clear():563:563 -> replaceAll
+    3:3:void replaceAll(java.util.function.BiFunction):700 -> replaceAll
+    4:4:void replaceAll(java.util.function.BiFunction):702:702 -> replaceAll
+    5:5:void replaceAll(java.util.function.BiFunction):701:701 -> replaceAll
+    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replaceAll
+    6:6:void replaceAll(java.util.function.BiFunction):698 -> replaceAll
+    1:1:int size():558:558 -> size
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> values
+    1:1:java.util.Set values():640 -> values
+    1:1:java.util.Collection values():550 -> values
+    2:2:java.util.Set values():640:640 -> values
+    2:2:java.util.Collection values():550 -> values
+    3:3:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> values
+    3:3:java.util.Set values():640 -> values
+    4:4:java.util.Set values():640:640 -> values
+com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1 -> com.android.tools.r8.r.a.a.b.G:
+    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse this$1 -> e
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse):645:645 -> <init>
+    1:1:java.util.Map$Entry output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):648:648 -> a
+    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):645 -> a
+com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1$InverseEntry -> com.android.tools.r8.r.a.a.b.G$a:
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry delegate -> a
+    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1 this$2 -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):654:655 -> <init>
+    1:1:java.lang.Object getKey():660:660 -> getKey
+    1:1:java.lang.Object getValue():665:665 -> getValue
+    1:12:java.lang.Object setValue(java.lang.Object):670:681 -> setValue
+com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet -> com.android.tools.r8.r.a.a.b.I$a$a:
+    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse this$1 -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse):612:613 -> <init>
+    1:1:java.util.Iterator iterator():629:629 -> iterator
+    1:5:boolean remove(java.lang.Object):618:622 -> remove
+com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet$1 -> com.android.tools.r8.r.a.a.b.H:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet):629:629 -> <init>
+    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):632:632 -> a
+com.android.tools.r8.com.google.common.collect.HashBiMap$Itr -> com.android.tools.r8.r.a.a.b.I$b:
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry next -> a
+    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> d
+    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry toRemove -> b
+    int expectedModCount -> c
+    1:4:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):393:396 -> <init>
+    java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry) -> a
+    1:4:boolean hasNext():400:403 -> hasNext
+    5:5:boolean hasNext():401:401 -> hasNext
+    1:8:java.lang.Object next():408:415 -> next
+    9:9:java.lang.Object next():409:409 -> next
+    1:7:void remove():420:426 -> remove
+    8:8:void remove():421:421 -> remove
+com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet -> com.android.tools.r8.r.a.a.b.I$c:
+    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):439:440 -> <init>
+    1:1:java.util.Iterator iterator():445:445 -> iterator
+    1:7:boolean remove(java.lang.Object):455:461 -> remove
+com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet$1 -> com.android.tools.r8.r.a.a.b.J:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet):445:445 -> <init>
+    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):448:448 -> a
+com.android.tools.r8.com.google.common.collect.HashMultiset -> com.android.tools.r8.r.a.a.b.K:
+    1:1:void <init>():70:70 -> <init>
+    1:1:int remove(java.lang.Object,int):33:33 -> a
+    2:2:boolean setCount(java.lang.Object,int,int):33:33 -> a
+    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.add(java.lang.Object):84:84 -> add
+    1:1:boolean add(java.lang.Object):33 -> add
+    1:1:boolean addAll(java.util.Collection):33:33 -> addAll
+    1:1:int add(java.lang.Object,int):33:33 -> b
+    2:2:int count(java.lang.Object):33:33 -> b
+    1:1:java.util.Set elementSet():33:33 -> c
+    2:2:int setCount(java.lang.Object,int):33:33 -> c
+    1:1:void clear():33:33 -> clear
+    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.contains(java.lang.Object):62:62 -> contains
+    1:1:boolean contains(java.lang.Object):33 -> contains
+    1:1:java.util.Set entrySet():33:33 -> entrySet
+    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.equals(java.lang.Object):226:226 -> equals
+    1:1:boolean equals(java.lang.Object):33 -> equals
+    1:1:com.android.tools.r8.com.google.common.collect.HashMultiset create():41:41 -> h
+    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultiset.hashCode():237:237 -> hashCode
+    1:1:int hashCode():33 -> hashCode
+    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.isEmpty():57:57 -> isEmpty
+    1:1:boolean isEmpty():33 -> isEmpty
+    1:1:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset.iterator():157:157 -> iterator
+    1:1:java.util.Iterator iterator():33 -> iterator
+    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.remove(java.lang.Object):97:97 -> remove
+    1:1:boolean remove(java.lang.Object):33 -> remove
+    1:1:boolean removeAll(java.util.Collection):33:33 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):33:33 -> retainAll
+    1:1:int size():33:33 -> size
+    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultiset.toString():248:248 -> toString
+    1:1:java.lang.String toString():33 -> toString
+com.android.tools.r8.com.google.common.collect.ImmutableAsList -> com.android.tools.r8.r.a.a.b.L:
+    1:1:void <init>():34:34 -> <init>
+    1:1:boolean contains(java.lang.Object):41:41 -> contains
+    1:1:boolean isPartialView():56:56 -> f
+    1:1:boolean isEmpty():51:51 -> isEmpty
+    com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection() -> k
+    1:1:int size():46:46 -> size
+com.android.tools.r8.com.google.common.collect.ImmutableBiMap -> com.android.tools.r8.r.a.a.b.M:
+    1:1:void <init>():341:341 -> <init>
+    1:1:java.lang.Object forcePut(java.lang.Object,java.lang.Object):376:376 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createValues():363:363 -> k
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():36 -> k
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> s
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():36 -> s
+    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse() -> t
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap of():66:66 -> u
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
+    1:1:java.util.Collection values():36 -> values
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
+    2:2:java.util.Set values():36 -> values
+com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder -> com.android.tools.r8.r.a.a.b.M$a:
+    1:1:void <init>():159:159 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap build():153:153 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder put(java.lang.Object,java.lang.Object):172:172 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):153 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder put(java.util.Map$Entry):185:185 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.util.Map$Entry):153 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder putAll(java.lang.Iterable):214:214 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder putAll(java.lang.Iterable):153 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):240:240 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):153 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder.putAll(java.util.Map):286:286 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder putAll(java.util.Map):199 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder putAll(java.util.Map):153 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder put(java.lang.Object,java.lang.Object):172:172 -> b
+    2:26:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():253:277 -> b
+    27:27:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():257:257 -> b
+    28:28:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> b
+    28:28:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():257 -> b
+    29:29:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of():66:66 -> b
+    29:29:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():255 -> b
+com.android.tools.r8.com.google.common.collect.ImmutableBiMapFauxverideShim -> com.android.tools.r8.r.a.a.b.N:
+    1:1:void <init>():32:32 -> <init>
+com.android.tools.r8.com.google.common.collect.ImmutableCollection -> com.android.tools.r8.r.a.a.b.Q:
+    java.lang.Object[] EMPTY_ARRAY -> a
+    1:1:void <clinit>():181:181 -> <clinit>
+    1:1:void <init>():168:168 -> <init>
+    1:2:int copyIntoArray(java.lang.Object[],int):335:336 -> a
+    1:1:boolean add(java.lang.Object):221:221 -> add
+    1:1:boolean addAll(java.util.Collection):247:247 -> addAll
+    1:1:void clear():297:297 -> clear
+    1:7:com.android.tools.r8.com.google.common.collect.ImmutableList asList():311:317 -> e
+    8:8:void com.android.tools.r8.com.google.common.collect.RegularImmutableAsList.<init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> e
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList asList():317 -> e
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList asList():315:315 -> e
+    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList asList():313:313 -> e
+    boolean isPartialView() -> f
+    com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator() -> g
+    1:1:boolean remove(java.lang.Object):234:234 -> remove
+    1:1:boolean removeAll(java.util.Collection):260:260 -> removeAll
+    1:1:boolean removeIf(java.util.function.Predicate):273:273 -> removeIf
+    1:1:boolean retainAll(java.util.Collection):285:285 -> retainAll
+    1:1:java.util.Spliterator spliterator():178:178 -> spliterator
+    1:6:java.lang.Object[] toArray():185:190 -> toArray
+    7:8:java.lang.Object[] toArray(java.lang.Object[]):198:199 -> toArray
+    9:14:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Platform.newArray(java.lang.Object[],int):37:42 -> toArray
+    9:14:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Object[],int):60 -> toArray
+    9:14:java.lang.Object[] toArray(java.lang.Object[]):200 -> toArray
+    15:18:java.lang.Object[] toArray(java.lang.Object[]):201:204 -> toArray
+    19:19:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> toArray
+    19:19:java.lang.Object[] toArray(java.lang.Object[]):197 -> toArray
+com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder -> com.android.tools.r8.r.a.a.b.O:
+    java.lang.Object[] contents -> a
+    int size -> b
+    1:4:void <init>(int):459:462 -> <init>
+    1:4:void ensureCapacity(int):470:473 -> a
+    5:5:void ensureCapacity(int):472:472 -> a
+    6:9:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object[]):489:492 -> a
+    10:12:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder addAll(java.lang.Iterable):499:501 -> a
+    13:14:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder.addAll(java.lang.Iterable):419:420 -> a
+    13:14:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder addAll(java.lang.Iterable):503 -> a
+    15:17:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):510:512 -> a
+    18:18:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    18:18:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):509 -> a
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder add(java.lang.Object):481:482 -> b
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder add(java.lang.Object):480 -> b
+com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder -> com.android.tools.r8.r.a.a.b.P:
+    1:1:void <init>():370:370 -> <init>
+    com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object) -> a
+    1:1:int expandedCapacity(int,int):361:361 -> a
+    2:2:int expandedCapacity(int,int):356:356 -> a
+com.android.tools.r8.com.google.common.collect.ImmutableEntry -> com.android.tools.r8.r.a.a.b.S:
+    java.lang.Object value -> b
+    java.lang.Object key -> a
+    1:3:void <init>(java.lang.Object,java.lang.Object):31:33 -> <init>
+    1:1:java.lang.Object getKey():39:39 -> getKey
+    1:1:java.lang.Object getValue():45:45 -> getValue
+    1:1:java.lang.Object setValue(java.lang.Object):50:50 -> setValue
+com.android.tools.r8.com.google.common.collect.ImmutableEnumMap -> com.android.tools.r8.r.a.a.b.T:
+    java.util.EnumMap delegate -> e
+    1:1:void com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.<init>():445:445 -> <init>
+    1:1:void <init>(java.util.EnumMap):51 -> <init>
+    2:3:void <init>(java.util.EnumMap):52:53 -> <init>
+    1:8:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):38:45 -> a
+    9:10:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):42:43 -> a
+    11:11:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> a
+    11:11:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of(java.lang.Object,java.lang.Object):123 -> a
+    11:11:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):43 -> a
+    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of():113:113 -> a
+    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):40 -> a
+    1:1:boolean containsKey(java.lang.Object):73:73 -> containsKey
+    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.entrySet():445:445 -> entrySet
+    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.entrySet():0 -> entrySet
+    1:4:boolean equals(java.lang.Object):86:89 -> equals
+    1:1:void forEach(java.util.function.BiConsumer):103:103 -> forEach
+    1:1:java.lang.Object get(java.lang.Object):78:78 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createEntrySet():474:474 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createEntrySet():0 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createKeySet():457:457 -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createKeySet():0 -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createValues():479:479 -> k
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createValues():0 -> k
+    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.keySet():445:445 -> keySet
+    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.keySet():0 -> keySet
+    boolean isPartialView() -> n
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator keyIterator():58:58 -> o
+    1:1:java.util.Spliterator keySpliterator():63:63 -> q
+    1:1:int size():68:68 -> size
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():94:94 -> t
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntryIterator(java.util.Iterator):1462:1462 -> t
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():94 -> t
+    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.values():445:445 -> values
+    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.values():0 -> values
+com.android.tools.r8.com.google.common.collect.ImmutableEnumSet -> com.android.tools.r8.r.a.a.b.U:
+    java.util.EnumSet delegate -> c
+    int hashCode -> d
+    1:2:void <init>(java.util.EnumSet):58:59 -> <init>
+    1:7:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):38:44 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):42:42 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableSet.of(java.lang.Object):83:83 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):42 -> a
+    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableSet.of():74:74 -> a
+    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):40 -> a
+    1:1:boolean contains(java.lang.Object):89:89 -> contains
+    1:4:boolean containsAll(java.util.Collection):94:97 -> containsAll
+    1:4:boolean equals(java.lang.Object):110:113 -> equals
+    boolean isPartialView() -> f
+    1:1:void forEach(java.util.function.Consumer):79:79 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():69:69 -> g
+    1:2:int hashCode():126:127 -> hashCode
+    1:1:boolean isEmpty():102:102 -> isEmpty
+    1:1:java.util.Iterator iterator():33:33 -> iterator
+    boolean isHashCodeFast() -> j
+    1:1:int size():84:84 -> size
+    1:1:java.util.Spliterator spliterator():74:74 -> spliterator
+    1:1:java.lang.String toString():132:132 -> toString
+com.android.tools.r8.com.google.common.collect.ImmutableList -> com.android.tools.r8.r.a.a.b.W:
+    1:1:void <init>():377:377 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object):93:93 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object):102:102 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object):111:111 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):120:120 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):129:129 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):138:138 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):147:147 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):156:156 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):165:165 -> a
+    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):175:175 -> a
+    11:11:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):185:185 -> a
+    12:26:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object[]):200:214 -> a
+    27:30:com.android.tools.r8.com.google.common.collect.ImmutableList copyOf(java.util.Collection):252:255 -> a
+    31:31:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[]):356:356 -> a
+    31:31:com.android.tools.r8.com.google.common.collect.ImmutableList copyOf(java.util.Collection):255 -> a
+    32:32:com.android.tools.r8.com.google.common.collect.ImmutableList copyOf(java.util.Collection):257:257 -> a
+    33:33:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[]):356:356 -> a
+    34:36:int copyIntoArray(java.lang.Object[],int):582:584 -> a
+    1:1:void add(int,java.lang.Object):524:524 -> add
+    1:1:boolean addAll(int,java.util.Collection):499:499 -> addAll
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[]):356:356 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> b
+    3:6:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):370:373 -> b
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):368:368 -> b
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object):93:93 -> b
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):368 -> b
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> b
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):366 -> b
+    1:1:boolean contains(java.lang.Object):422:422 -> contains
+    com.android.tools.r8.com.google.common.collect.ImmutableList asList() -> e
+    1:3:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):435:437 -> e
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> e
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):440 -> e
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):442:442 -> e
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object):93:93 -> e
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):442 -> e
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):444:444 -> e
+    1:1:boolean equals(java.lang.Object):663:663 -> equals
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):454:454 -> f
+    1:3:void forEach(java.util.function.Consumer):404:406 -> forEach
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    4:4:void forEach(java.util.function.Consumer):403 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator():388:388 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():383 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder():711:711 -> h
+    2:2:void com.android.tools.r8.com.google.common.collect.ImmutableList$Builder.<init>():739:739 -> h
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder():711 -> h
+    1:3:int hashCode():669:671 -> hashCode
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> i
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):393:393 -> i
+    1:10:int com.android.tools.r8.com.google.common.collect.Lists.indexOfRandomAccess(java.util.List,java.lang.Object):1069:1078 -> indexOf
+    1:10:int com.android.tools.r8.com.google.common.collect.Lists.indexOfImpl(java.util.List,java.lang.Object):1056 -> indexOf
+    1:10:int indexOf(java.lang.Object):412 -> indexOf
+    1:1:java.util.Iterator iterator():57:57 -> iterator
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList reverse():598:598 -> j
+    1:2:int com.android.tools.r8.com.google.common.collect.Lists.lastIndexOfRandomAccess(java.util.List,java.lang.Object):1111:1112 -> lastIndexOf
+    1:2:int com.android.tools.r8.com.google.common.collect.Lists.lastIndexOfImpl(java.util.List,java.lang.Object):1091 -> lastIndexOf
+    1:2:int lastIndexOf(java.lang.Object):417 -> lastIndexOf
+    1:1:java.util.ListIterator listIterator(int):57:57 -> listIterator
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator():388:388 -> listIterator
+    2:2:java.util.ListIterator listIterator():57 -> listIterator
+    1:1:java.lang.Object remove(int):537:537 -> remove
+    1:1:void replaceAll(java.util.function.UnaryOperator):549:549 -> replaceAll
+    1:1:java.lang.Object set(int,java.lang.Object):512:512 -> set
+    1:1:void sort(java.util.Comparator):561:561 -> sort
+    1:1:java.util.Spliterator spliterator():576:576 -> spliterator
+    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction):40:40 -> spliterator
+    2:2:java.util.Spliterator spliterator():576 -> spliterator
+    1:1:java.util.List subList(int,int):57:57 -> subList
+com.android.tools.r8.com.google.common.collect.ImmutableList$1 -> com.android.tools.r8.r.a.a.b.V:
+    com.android.tools.r8.com.google.common.collect.ImmutableList this$0 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,int,int):393:393 -> <init>
+    1:1:java.lang.Object get(int):396:396 -> a
+com.android.tools.r8.com.google.common.collect.ImmutableList$Builder -> com.android.tools.r8.r.a.a.b.W$a:
+    1:1:void <init>():739:739 -> <init>
+    2:2:void <init>(int):744:744 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object):757:757 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):733 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList build():819:819 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder addAll(java.lang.Iterable):772:772 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object[]):787:787 -> b
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):809:809 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object):757:757 -> c
+com.android.tools.r8.com.google.common.collect.ImmutableList$ReverseImmutableList -> com.android.tools.r8.r.a.a.b.X:
+    com.android.tools.r8.com.google.common.collect.ImmutableList forwardList -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):604:605 -> <init>
+    1:1:boolean contains(java.lang.Object):623:623 -> contains
+    1:1:int size():652:652 -> e
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):640 -> e
+    2:3:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):640:641 -> e
+    4:4:int size():652:652 -> e
+    4:4:int reversePosition(int):613 -> e
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641 -> e
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641:641 -> e
+    1:1:boolean isPartialView():657:657 -> f
+    1:1:int size():652:652 -> get
+    1:1:java.lang.Object get(int):646 -> get
+    2:3:java.lang.Object get(int):646:647 -> get
+    4:4:int size():652:652 -> get
+    4:4:int reverseIndex(int):609 -> get
+    4:4:java.lang.Object get(int):647 -> get
+    5:5:java.lang.Object get(int):647:647 -> get
+    1:2:int indexOf(java.lang.Object):628:629 -> indexOf
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator():388:388 -> iterator
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableList.iterator():383 -> iterator
+    1:1:java.util.Iterator iterator():601 -> iterator
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList reverse():618:618 -> j
+    2:2:int size():652:652 -> j
+    2:2:int reverseIndex(int):609 -> j
+    1:2:int lastIndexOf(java.lang.Object):634:635 -> lastIndexOf
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator():388:388 -> listIterator
+    1:1:java.util.ListIterator listIterator():601 -> listIterator
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator(int):393:393 -> listIterator
+    2:2:java.util.ListIterator listIterator(int):601 -> listIterator
+    1:1:int size():652:652 -> size
+    1:1:java.util.List subList(int,int):601:601 -> subList
+com.android.tools.r8.com.google.common.collect.ImmutableList$SubList -> com.android.tools.r8.r.a.a.b.W$b:
+    int offset -> b
+    int length -> c
+    com.android.tools.r8.com.google.common.collect.ImmutableList this$0 -> d
+    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,int,int):461:463 -> <init>
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):479:480 -> e
+    boolean isPartialView() -> f
+    1:2:java.lang.Object get(int):473:474 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator():388:388 -> iterator
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableList.iterator():383 -> iterator
+    1:1:java.util.Iterator iterator():457 -> iterator
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator():388:388 -> listIterator
+    1:1:java.util.ListIterator listIterator():457 -> listIterator
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator(int):393:393 -> listIterator
+    2:2:java.util.ListIterator listIterator(int):457 -> listIterator
+    1:1:int size():468:468 -> size
+    1:1:java.util.List subList(int,int):457:457 -> subList
+com.android.tools.r8.com.google.common.collect.ImmutableListMultimap -> com.android.tools.r8.r.a.a.b.Z:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,int):391:391 -> <init>
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList get(java.lang.Object):405:406 -> get
+    1:2:java.util.Collection get(java.lang.Object):52 -> get
+com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder -> com.android.tools.r8.r.a.a.b.Y:
+    1:1:void <init>():237:237 -> <init>
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.put(java.lang.Object,java.lang.Object):168:169 -> a
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder put(java.lang.Object,java.lang.Object):242 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296:296 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
+    4:6:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):313:315 -> a
+    4:6:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
+    4:6:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
+    7:7:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.isPartialView():476:476 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):316 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):346:346 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.of():144:144 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):347 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
+    10:12:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):351:353 -> a
+    10:12:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
+    10:12:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
+    10:12:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
+    13:13:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.isPartialView():476:476 -> a
+    13:13:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):354 -> a
+    13:13:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
+    13:13:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
+    13:13:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
+    14:27:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):359:372 -> a
+    14:27:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
+    14:27:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
+    14:27:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
+    28:28:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328:328 -> a
+com.android.tools.r8.com.google.common.collect.ImmutableMap -> com.android.tools.r8.r.a.a.b.b0:
+    com.android.tools.r8.com.google.common.collect.ImmutableCollection values -> c
+    java.util.Map$Entry[] EMPTY_ENTRY_ARRAY -> d
+    com.android.tools.r8.com.google.common.collect.ImmutableSet keySet -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet -> a
+    1:1:void <clinit>():443:443 -> <clinit>
+    1:1:void <init>():483:483 -> <init>
+    1:1:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):80:80 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):132:132 -> a
+    3:3:void checkNoConflict(boolean,java.lang.String,java.util.Map$Entry,java.util.Map$Entry):190:190 -> a
+    4:12:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):392:400 -> a
+    13:17:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOfEnumMap(java.util.EnumMap):436:440 -> a
+    13:17:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):400 -> a
+    18:18:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403:403 -> a
+    19:19:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418:418 -> a
+    19:19:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
+    20:22:java.util.Collection com.android.tools.r8.com.google.common.collect.Iterables.castOrCopyToCollection(java.lang.Iterable):318:320 -> a
+    20:22:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable,java.lang.Object[]):297 -> a
+    20:22:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418 -> a
+    20:22:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
+    23:23:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable,java.lang.Object[]):298:298 -> a
+    23:23:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418 -> a
+    23:23:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
+    24:36:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418:430 -> a
+    24:36:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
+    37:38:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):423:424 -> a
+    37:38:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
+    39:39:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> a
+    39:39:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object):123 -> a
+    39:39:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):424 -> a
+    39:39:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
+    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap of():113:113 -> a
+    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):421 -> a
+    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
+    1:2:java.util.Map$Entry entryOf(java.lang.Object,java.lang.Object):175:176 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> c
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object):123 -> c
+    1:1:void clear():642:642 -> clear
+    1:1:java.lang.Object compute(java.lang.Object,java.util.function.BiFunction):569:569 -> compute
+    1:1:java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function):544:544 -> computeIfAbsent
+    1:1:java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction):557:557 -> computeIfPresent
+    1:1:boolean containsKey(java.lang.Object):652:652 -> containsKey
+    1:1:boolean containsValue(java.lang.Object):657:657 -> containsValue
+    1:1:java.util.Set entrySet():60:60 -> entrySet
+    1:3:boolean com.android.tools.r8.com.google.common.collect.Maps.equalsImpl(java.util.Map,java.lang.Object):3804:3806 -> equals
+    1:3:boolean equals(java.lang.Object):835 -> equals
+    1:1:java.lang.Object getOrDefault(java.lang.Object,java.lang.Object):666:666 -> getOrDefault
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder builder():184:184 -> h
+    2:2:void com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder.<init>():234:234 -> h
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder builder():184 -> h
+    1:1:int hashCode():842:842 -> hashCode
+    com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet() -> i
+    1:1:boolean isEmpty():647:647 -> isEmpty
+    com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet() -> j
+    com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues() -> k
+    1:1:java.util.Set keySet():60:60 -> keySet
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():679:680 -> l
+    boolean isHashCodeFast() -> m
+    1:1:java.lang.Object merge(java.lang.Object,java.lang.Object,java.util.function.BiFunction):582:582 -> merge
+    boolean isPartialView() -> n
+    1:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator keyIterator():706:707 -> o
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():694:695 -> p
+    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):495:495 -> put
+    1:1:void putAll(java.util.Map):594:594 -> putAll
+    1:1:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):508:508 -> putIfAbsent
+    1:1:java.util.Spliterator keySpliterator():721:721 -> q
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap of():113:113 -> r
+    1:1:java.lang.Object remove(java.lang.Object):618:618 -> remove
+    2:2:boolean remove(java.lang.Object,java.lang.Object):630:630 -> remove
+    1:1:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):520:520 -> replace
+    2:2:java.lang.Object replace(java.lang.Object,java.lang.Object):532:532 -> replace
+    1:1:void replaceAll(java.util.function.BiFunction):606:606 -> replaceAll
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():733:734 -> s
+    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815:3815 -> toString
+    1:1:java.lang.String toString():851 -> toString
+    2:3:java.lang.StringBuilder com.android.tools.r8.com.google.common.collect.Collections2.newStringBuilderForCollection(int):369:370 -> toString
+    2:3:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815 -> toString
+    2:3:java.lang.String toString():851 -> toString
+    4:13:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815:3824 -> toString
+    4:13:java.lang.String toString():851 -> toString
+    1:1:java.util.Collection values():60:60 -> values
+com.android.tools.r8.com.google.common.collect.ImmutableMap$1 -> com.android.tools.r8.r.a.a.b.a0:
+    com.android.tools.r8.com.google.common.collect.UnmodifiableIterator val$entryIterator -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.UnmodifiableIterator):707:707 -> <init>
+    1:1:boolean hasNext():710:710 -> hasNext
+    1:1:java.lang.Object next():715:715 -> next
+com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder -> com.android.tools.r8.r.a.a.b.b0$a:
+    java.util.Map$Entry[] entries -> a
+    int size -> b
+    boolean entriesUsed -> c
+    1:1:void <init>():234:234 -> <init>
+    2:5:void <init>(int):238:241 -> <init>
+    1:4:void ensureCapacity(int):245:248 -> a
+    5:7:void ensureCapacity(int):247:249 -> a
+    8:11:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):259:262 -> a
+    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.util.Map$Entry):275:275 -> a
+    13:13:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder putAll(java.util.Map):286:286 -> a
+    14:18:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder putAll(java.lang.Iterable):299:303 -> a
+    19:21:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):330:332 -> a
+    22:22:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    22:22:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):329 -> a
+    23:30:com.android.tools.r8.com.google.common.collect.ImmutableMap build():366:373 -> a
+    31:31:com.android.tools.r8.com.google.common.collect.ImmutableMap build():371:371 -> a
+    32:32:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> a
+    32:32:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of(java.lang.Object,java.lang.Object):123 -> a
+    32:32:com.android.tools.r8.com.google.common.collect.ImmutableMap build():371 -> a
+    33:33:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of():113:113 -> a
+    33:33:com.android.tools.r8.com.google.common.collect.ImmutableMap build():369 -> a
+com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap$1EntrySetImpl -> com.android.tools.r8.r.a.a.b.c0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap this$0 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap):463:463 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():471:471 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():471:471 -> iterator
+    1:1:java.util.Iterator iterator():462 -> iterator
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():466:466 -> m
+com.android.tools.r8.com.google.common.collect.ImmutableMapEntry -> com.android.tools.r8.r.a.a.b.f0:
+    1:2:void <init>(java.lang.Object,java.lang.Object):48:49 -> <init>
+    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInKeyBucket() -> d
+    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInValueBucket() -> e
+    boolean isReusable() -> f
+com.android.tools.r8.com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableBiMapEntry -> com.android.tools.r8.r.a.a.b.d0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry nextInValueBucket -> d
+    1:2:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):104:105 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInValueBucket():111:111 -> e
+com.android.tools.r8.com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableMapEntry -> com.android.tools.r8.r.a.a.b.e0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry nextInKeyBucket -> c
+    1:2:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):79:80 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInKeyBucket():86:86 -> d
+    boolean isReusable() -> f
+com.android.tools.r8.com.google.common.collect.ImmutableMapEntrySet -> com.android.tools.r8.r.a.a.b.h0:
+    1:1:void <init>():77:77 -> <init>
+    1:4:boolean contains(java.lang.Object):88:91 -> contains
+    1:1:boolean isPartialView():98:98 -> f
+    1:1:int hashCode():109:109 -> hashCode
+    1:1:boolean isHashCodeFast():104:104 -> j
+    com.android.tools.r8.com.google.common.collect.ImmutableMap map() -> m
+    1:1:int size():83:83 -> size
+com.android.tools.r8.com.google.common.collect.ImmutableMapEntrySet$RegularEntrySet -> com.android.tools.r8.r.a.a.b.g0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> c
+    java.util.Map$Entry[] entries -> d
+    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,java.util.Map$Entry[]):43:45 -> <init>
+    1:2:void forEach(java.util.function.Consumer):66:67 -> forEach
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    3:3:void forEach(java.util.function.Consumer):65 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():55:55 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():73:73 -> i
+    2:2:void com.android.tools.r8.com.google.common.collect.RegularImmutableAsList.<init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> i
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():73 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():55:55 -> iterator
+    1:1:java.util.Iterator iterator():39 -> iterator
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():50:50 -> m
+    1:1:java.util.Spliterator spliterator():60:60 -> spliterator
+com.android.tools.r8.com.google.common.collect.ImmutableMapKeySet -> com.android.tools.r8.r.a.a.b.i0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> c
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap):39:40 -> <init>
+    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):71:71 -> a
+    1:1:boolean contains(java.lang.Object):60:60 -> contains
+    boolean isPartialView() -> f
+    1:1:void forEach(java.util.function.Consumer):71:71 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.Consumer):70 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():50:50 -> g
+    1:1:java.lang.Object get(int):65:65 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():50:50 -> iterator
+    1:1:java.util.Iterator iterator():35 -> iterator
+    1:1:int size():45:45 -> size
+    1:1:java.util.Spliterator spliterator():55:55 -> spliterator
+com.android.tools.r8.com.google.common.collect.ImmutableMapValues -> com.android.tools.r8.r.a.a.b.l0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap):40:41 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap access$000(com.android.tools.r8.com.google.common.collect.ImmutableMapValues):37:37 -> a
+    2:2:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):100:100 -> a
+    1:1:void com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1.<init>(com.android.tools.r8.com.google.common.collect.ImmutableMapValues):52:52 -> contains
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51 -> contains
+    1:1:boolean contains(java.lang.Object):72 -> contains
+    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1.hasNext():56:56 -> contains
+    2:2:boolean com.android.tools.r8.com.google.common.collect.Iterators.contains(java.util.Iterator,java.lang.Object):186 -> contains
+    2:2:boolean contains(java.lang.Object):72 -> contains
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1.next():61:61 -> contains
+    3:3:boolean com.android.tools.r8.com.google.common.collect.Iterators.contains(java.util.Iterator,java.lang.Object):187 -> contains
+    3:3:boolean contains(java.lang.Object):72 -> contains
+    4:4:boolean com.android.tools.r8.com.google.common.collect.Iterators.contains(java.util.Iterator,java.lang.Object):187:187 -> contains
+    4:4:boolean contains(java.lang.Object):72 -> contains
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList asList():82:83 -> e
+    boolean isPartialView() -> f
+    1:1:void forEach(java.util.function.Consumer):100:100 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.Consumer):99 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51:51 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51:51 -> iterator
+    1:1:java.util.Iterator iterator():36 -> iterator
+    1:1:int size():46:46 -> size
+    1:1:java.util.Spliterator spliterator():67:67 -> spliterator
+com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1 -> com.android.tools.r8.r.a.a.b.j0:
+    com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryItr -> a
+    com.android.tools.r8.com.google.common.collect.ImmutableMapValues this$0 -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapValues):51:52 -> <init>
+    1:1:boolean hasNext():56:56 -> hasNext
+    1:1:java.lang.Object next():61:61 -> next
+com.android.tools.r8.com.google.common.collect.ImmutableMapValues$2 -> com.android.tools.r8.r.a.a.b.k0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMapValues this$0 -> c
+    com.android.tools.r8.com.google.common.collect.ImmutableList val$entryList -> b
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapValues,com.android.tools.r8.com.google.common.collect.ImmutableList):83:83 -> <init>
+    1:1:java.lang.Object get(int):86:86 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():91:91 -> k
+com.android.tools.r8.com.google.common.collect.ImmutableMultimap -> com.android.tools.r8.r.a.a.b.p0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> e
+    int size -> f
+    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,int):354:356 -> <init>
+    1:1:boolean containsEntry(java.lang.Object,java.lang.Object):67:67 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection entries():528:528 -> a
+    2:2:java.util.Collection entries():67 -> a
+    3:6:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):608:611 -> a
+    7:7:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):610:610 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> b
+    1:1:java.util.Map asMap():67 -> b
+    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> b
+    2:2:java.util.Map$Entry lambda$null$0(java.lang.Object,java.lang.Object):611 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset keys():632:632 -> c
+    1:1:com.android.tools.r8.com.google.common.collect.Multiset keys():67 -> c
+    1:1:void clear():396:396 -> clear
+    1:1:boolean containsKey(java.lang.Object):483:483 -> containsKey
+    1:1:java.util.Map createAsMap():520:520 -> d
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createEntries():533:533 -> e
+    1:1:java.util.Collection createEntries():67 -> e
+    1:1:boolean equals(java.lang.Object):67:67 -> equals
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset createKeys():637:637 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.Multiset createKeys():67 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():595:595 -> h
+    1:1:java.util.Iterator entryIterator():67 -> h
+    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultimap.hashCode():263:263 -> hashCode
+    1:1:int hashCode():67 -> hashCode
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> i
+    1:1:java.util.Spliterator entrySpliterator():606 -> i
+    2:2:java.util.Spliterator entrySpliterator():606:606 -> i
+    3:3:int size():493:493 -> i
+    3:3:java.util.Spliterator entrySpliterator():614 -> i
+    4:4:java.util.Spliterator entrySpliterator():605:605 -> i
+    1:1:boolean isEmpty():67:67 -> isEmpty
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():504:504 -> keySet
+    1:1:java.util.Set keySet():67 -> keySet
+    1:1:boolean put(java.lang.Object,java.lang.Object):427:427 -> put
+    1:1:boolean remove(java.lang.Object,java.lang.Object):466:466 -> remove
+    1:1:int size():493:493 -> size
+    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultimap.toString():274:274 -> toString
+    1:1:java.lang.String toString():67 -> toString
+com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1 -> com.android.tools.r8.r.a.a.b.m0:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):595:595 -> <init>
+com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder -> com.android.tools.r8.r.a.a.b.n0:
+    com.android.tools.r8.com.google.common.collect.Multimap builderMultimap -> a
+    1:1:void <init>():156:156 -> <init>
+    2:3:void <init>(com.android.tools.r8.com.google.common.collect.Multimap):159:160 -> <init>
+com.android.tools.r8.com.google.common.collect.ImmutableMultimap$EntryCollection -> com.android.tools.r8.r.a.a.b.o0:
+    com.android.tools.r8.com.google.common.collect.ImmutableMultimap multimap -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):539:540 -> <init>
+    1:3:boolean contains(java.lang.Object):560:562 -> contains
+    1:1:boolean isPartialView():550:550 -> f
+    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.isPartialView():476:476 -> f
+    2:2:boolean isPartialView():550 -> f
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():545:545 -> g
+    2:597:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableMultimap.entryIterator():0:595 -> g
+    2:597:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():545 -> g
+    1:1:java.util.Iterator iterator():536:536 -> iterator
+    1:1:int size():555:555 -> size
+    2:2:int com.android.tools.r8.com.google.common.collect.ImmutableMultimap.size():493:493 -> size
+    2:2:int size():555 -> size
+com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Itr -> com.android.tools.r8.r.a.a.b.p0$a:
+    java.util.Iterator valueIterator -> c
+    java.util.Iterator mapIterator -> a
+    java.lang.Object key -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableMultimap this$0 -> d
+    1:4:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):570:573 -> <init>
+    5:5:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap,com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1):570:570 -> <init>
+    1:1:boolean hasNext():579:579 -> hasNext
+    1:6:java.lang.Object next():584:589 -> next
+    7:7:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> next
+    7:7:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1.output(java.lang.Object,java.lang.Object):598 -> next
+    7:7:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1.output(java.lang.Object,java.lang.Object):595 -> next
+    7:7:java.lang.Object next():589 -> next
+com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Keys -> com.android.tools.r8.r.a.a.b.p0$b:
+    com.android.tools.r8.com.google.common.collect.ImmutableMultimap this$0 -> d
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):642:642 -> <init>
+    1:2:int count(java.lang.Object):650:651 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656:656 -> c
+    1:1:java.util.Set elementSet():640 -> c
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMultimap.keySet():504:504 -> c
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656 -> c
+    2:2:java.util.Set elementSet():640 -> c
+    1:1:boolean contains(java.lang.Object):645:645 -> contains
+    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.containsKey(java.lang.Object):483:483 -> contains
+    2:2:boolean contains(java.lang.Object):645 -> contains
+    boolean isPartialView() -> f
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656:656 -> h
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMultimap.keySet():504:504 -> h
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656 -> h
+    1:2:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):666:667 -> i
+    3:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry com.android.tools.r8.com.google.common.collect.Multisets.immutableEntry(java.lang.Object,int):251:251 -> i
+    3:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):667 -> i
+    1:1:int size():661:661 -> size
+    2:2:int com.android.tools.r8.com.google.common.collect.ImmutableMultimap.size():493:493 -> size
+    2:2:int size():661 -> size
+com.android.tools.r8.com.google.common.collect.ImmutableMultiset -> com.android.tools.r8.r.a.a.b.r0:
+    com.android.tools.r8.com.google.common.collect.ImmutableList asList -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet -> c
+    1:1:void <init>():235:235 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):216:216 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMultiset of():101:101 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):217 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):219:219 -> a
+    4:4:int remove(java.lang.Object,int):299:299 -> a
+    5:5:boolean setCount(java.lang.Object,int,int):325:325 -> a
+    6:8:int copyIntoArray(java.lang.Object[],int):331:333 -> a
+    1:1:int add(java.lang.Object,int):286:286 -> b
+    1:1:int setCount(java.lang.Object,int):312:312 -> c
+    1:1:boolean contains(java.lang.Object):273:273 -> contains
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList asList():267:268 -> e
+    1:1:java.util.Set entrySet():53:53 -> entrySet
+    1:1:boolean equals(java.lang.Object):340:340 -> equals
+    1:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():239:240 -> g
+    com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet() -> h
+    1:1:int hashCode():345:345 -> hashCode
+    com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int) -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():362:362 -> i
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():367:367 -> i
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():363 -> i
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():363:363 -> i
+    1:1:java.util.Iterator iterator():53:53 -> iterator
+    1:1:java.lang.String toString():350:350 -> toString
+com.android.tools.r8.com.google.common.collect.ImmutableMultiset$1 -> com.android.tools.r8.r.a.a.b.q0:
+    java.util.Iterator val$entryIterator -> c
+    java.lang.Object element -> b
+    int remaining -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset,java.util.Iterator):240:240 -> <init>
+    1:1:boolean hasNext():246:246 -> hasNext
+    1:7:java.lang.Object next():251:257 -> next
+com.android.tools.r8.com.google.common.collect.ImmutableMultiset$EntrySet -> com.android.tools.r8.r.a.a.b.r0$a:
+    com.android.tools.r8.com.google.common.collect.ImmutableMultiset this$0 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset):373:373 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset,com.android.tools.r8.com.google.common.collect.ImmutableMultiset$1):373:373 -> <init>
+    1:7:boolean contains(java.lang.Object):391:397 -> contains
+    1:1:boolean isPartialView():376:376 -> f
+    1:1:com.android.tools.r8.com.google.common.collect.Multiset$Entry get(int):381:381 -> get
+    1:1:java.lang.Object get(int):372 -> get
+    1:1:int hashCode():404:404 -> hashCode
+    1:1:int size():386:386 -> size
+com.android.tools.r8.com.google.common.collect.ImmutableMultisetGwtSerializationDependencies -> com.android.tools.r8.r.a.a.b.s0:
+    1:1:void <init>():40:40 -> <init>
+com.android.tools.r8.com.google.common.collect.ImmutableSet -> com.android.tools.r8.r.a.a.b.t0:
+    com.android.tools.r8.com.google.common.collect.ImmutableList asList -> b
+    1:1:void <init>():332:332 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet access$000(int,java.lang.Object[]):51:51 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object):83:83 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object):92:92 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object):101:101 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):110:110 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):119:119 -> a
+    7:15:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object[]):132:140 -> a
+    16:23:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):259:266 -> a
+    24:24:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOfEnumSet(java.util.EnumSet):329:329 -> a
+    24:24:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):266 -> a
+    25:26:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):268:269 -> a
+    1:36:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):169:204 -> b
+    37:37:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):164:164 -> b
+    38:38:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object):83:83 -> b
+    38:38:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):165 -> b
+    39:39:com.android.tools.r8.com.google.common.collect.ImmutableSet of():74:74 -> b
+    39:39:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):161 -> b
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList asList():368:369 -> e
+    1:7:boolean equals(java.lang.Object):343:349 -> equals
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder():445:445 -> h
+    2:2:void com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder.<init>():471:471 -> h
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder():445 -> h
+    1:1:int hashCode():354:354 -> hashCode
+    1:9:int chooseTableSize(int):229:237 -> i
+    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():373:373 -> i
+    11:11:void com.android.tools.r8.com.google.common.collect.RegularImmutableAsList.<init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> i
+    11:11:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():373 -> i
+    boolean isHashCodeFast() -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet of():74:74 -> k
+    1:1:java.util.stream.Collector toImmutableSet():65:65 -> l
+com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder -> com.android.tools.r8.r.a.a.b.t0$a:
+    1:1:void <init>():471:471 -> <init>
+    2:2:void <init>(int):475:475 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):464:464 -> a
+    2:5:com.android.tools.r8.com.google.common.collect.ImmutableSet build():555:558 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object[]):506:506 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder addAll(java.lang.Iterable):522:522 -> b
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):545:545 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object):490:490 -> c
+com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed -> com.android.tools.r8.r.a.a.b.v0:
+    1:1:void <init>():376:376 -> <init>
+    1:3:void forEach(java.util.function.Consumer):392:394 -> forEach
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    4:4:void forEach(java.util.function.Consumer):391 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():381:381 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():400:400 -> i
+    1:1:java.util.Iterator iterator():376:376 -> iterator
+    1:1:java.util.Spliterator spliterator():386:386 -> spliterator
+    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction):40:40 -> spliterator
+    2:2:java.util.Spliterator spliterator():386 -> spliterator
+com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed$1 -> com.android.tools.r8.r.a.a.b.u0:
+    com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed this$0 -> b
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed):400:400 -> <init>
+    1:1:java.lang.Object get(int):403:403 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed delegateCollection():408:408 -> k
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():400 -> k
+com.android.tools.r8.com.google.common.collect.ImmutableSortedAsList -> com.android.tools.r8.r.a.a.b.w0:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):34:34 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet delegateCollection():39:39 -> comparator
+    1:1:java.util.Comparator comparator():44 -> comparator
+    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> comparator
+    2:2:java.util.Comparator comparator():44 -> comparator
+    1:1:boolean contains(java.lang.Object):72:72 -> contains
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.subListUnchecked(int,int):454:454 -> f
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):83 -> f
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):84:84 -> f
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet delegateCollection():39:39 -> indexOf
+    1:1:int indexOf(java.lang.Object):53 -> indexOf
+    2:9:int indexOf(java.lang.Object):53:60 -> indexOf
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet delegateCollection():39:39 -> k
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():29 -> k
+    1:1:int lastIndexOf(java.lang.Object):66:66 -> lastIndexOf
+    1:1:int com.android.tools.r8.com.google.common.collect.ImmutableAsList.size():46:46 -> spliterator
+    1:1:java.util.Spliterator spliterator():90 -> spliterator
+    2:3:java.util.Spliterator spliterator():92:93 -> spliterator
+    4:4:java.util.Spliterator spliterator():89:89 -> spliterator
+com.android.tools.r8.com.google.common.collect.ImmutableSortedMap -> com.android.tools.r8.r.a.a.b.A0:
+    com.android.tools.r8.com.google.common.collect.ImmutableList valueList -> f
+    com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap -> g
+    com.android.tools.r8.com.google.common.collect.ImmutableSortedMap NATURAL_EMPTY_MAP -> h
+    com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet keySet -> e
+    1:1:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> <clinit>
+    1:1:void <clinit>():116 -> <clinit>
+    2:4:void <clinit>():118:120 -> <clinit>
+    5:5:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> <clinit>
+    5:5:void <clinit>():120 -> <clinit>
+    6:6:void <clinit>():120:120 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSortedMap):586:589 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$000(java.util.Comparator,java.lang.Object,java.lang.Object):63:63 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet access$200(com.android.tools.r8.com.google.common.collect.ImmutableSortedMap):63:63 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):123 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):123:123 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of():138:138 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):124 -> a
+    6:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):126:127 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):127 -> a
+    9:9:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):127 -> a
+    10:41:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):377:408 -> a
+    10:41:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
+    42:47:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):407:412 -> a
+    42:47:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
+    48:48:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> a
+    48:48:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):412 -> a
+    48:48:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
+    49:51:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):374:374 -> a
+    49:51:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
+    52:52:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):372:372 -> a
+    52:52:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
+    53:53:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> a
+    53:53:java.util.Comparator comparator():710 -> a
+    53:53:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805 -> a
+    54:54:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> a
+    54:54:java.util.Comparator comparator():710 -> a
+    54:54:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805 -> a
+    55:55:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805:805 -> a
+    56:56:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):804:804 -> a
+    57:57:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763:763 -> a
+    57:57:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> a
+    58:58:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> a
+    58:58:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> a
+    59:59:int size():594:594 -> a
+    59:59:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> a
+    59:59:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> a
+    60:60:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> a
+    60:60:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> a
+    61:61:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    61:61:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):803 -> a
+    62:62:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    62:62:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):802 -> a
+    63:63:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763:763 -> a
+    64:64:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    64:64:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$300(com.android.tools.r8.com.google.common.collect.ImmutableSortedMap):63:63 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):152:152 -> b
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of(java.lang.Object):93:93 -> b
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):153 -> b
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):153:153 -> b
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of(java.lang.Object):93:93 -> b
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):154 -> b
+    6:6:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> b
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):154 -> b
+    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):153 -> b
+    8:8:int size():594:594 -> b
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):724 -> b
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> b
+    9:9:java.util.Comparator comparator():710 -> b
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727 -> b
+    10:10:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> b
+    10:10:java.util.Comparator comparator():710 -> b
+    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727 -> b
+    11:14:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727:730 -> b
+    15:15:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> b
+    15:15:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):730 -> b
+    16:16:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> b
+    17:17:int size():594:594 -> b
+    17:17:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> b
+    18:18:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> b
+    19:19:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
+    19:19:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> b
+    1:1:java.util.Map$Entry ceilingEntry(java.lang.Object):867:867 -> ceilingEntry
+    1:1:java.util.Map$Entry ceilingEntry(java.lang.Object):867:867 -> ceilingKey
+    1:1:java.lang.Object ceilingKey(java.lang.Object):872 -> ceilingKey
+    2:2:java.lang.Object ceilingKey(java.lang.Object):872:872 -> ceilingKey
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> comparator
+    1:1:java.util.Comparator comparator():710 -> comparator
+    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> comparator
+    2:2:java.util.Comparator comparator():710 -> comparator
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingKeySet():945:945 -> descendingKeySet
+    1:1:java.util.NavigableSet descendingKeySet():62 -> descendingKeySet
+    1:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap():925:927 -> descendingMap
+    1:3:java.util.NavigableMap descendingMap():62 -> descendingMap
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> descendingMap
+    4:4:java.util.Comparator comparator():710 -> descendingMap
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap():928 -> descendingMap
+    4:4:java.util.NavigableMap descendingMap():62 -> descendingMap
+    5:5:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> descendingMap
+    5:5:java.util.Comparator comparator():710 -> descendingMap
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap():928 -> descendingMap
+    5:5:java.util.NavigableMap descendingMap():62 -> descendingMap
+    6:10:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap():928:932 -> descendingMap
+    6:10:java.util.NavigableMap descendingMap():62 -> descendingMap
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> entrySet
+    1:1:java.util.Set entrySet():62 -> entrySet
+    1:1:java.util.Map$Entry firstEntry():887:887 -> firstEntry
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> firstEntry
+    2:2:java.util.Map$Entry firstEntry():887 -> firstEntry
+    3:3:java.util.Map$Entry firstEntry():887:887 -> firstEntry
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> firstKey
+    1:1:java.lang.Object firstKey():715 -> firstKey
+    2:2:java.lang.Object firstKey():715:715 -> firstKey
+    1:1:java.util.Map$Entry floorEntry(java.lang.Object):857:857 -> floorEntry
+    1:1:java.util.Map$Entry floorEntry(java.lang.Object):857:857 -> floorKey
+    1:1:java.lang.Object floorKey(java.lang.Object):862 -> floorKey
+    2:2:java.lang.Object floorKey(java.lang.Object):862:862 -> floorKey
+    1:1:void forEach(java.util.function.BiConsumer):600:600 -> forEach
+    2:2:int size():594:594 -> forEach
+    2:2:void forEach(java.util.function.BiConsumer):601 -> forEach
+    3:3:void forEach(java.util.function.BiConsumer):602:602 -> forEach
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    4:4:void forEach(java.util.function.BiConsumer):599 -> forEach
+    1:2:java.lang.Object get(java.lang.Object):608:609 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object):746:746 -> headMap
+    1:1:java.util.SortedMap headMap(java.lang.Object):62 -> headMap
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763:763 -> headMap
+    2:2:java.util.NavigableMap headMap(java.lang.Object,boolean):62 -> headMap
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> headMap
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763 -> headMap
+    3:3:java.util.NavigableMap headMap(java.lang.Object,boolean):62 -> headMap
+    1:1:java.util.Map$Entry higherEntry(java.lang.Object):877:877 -> higherEntry
+    1:1:java.util.Map$Entry higherEntry(java.lang.Object):877:877 -> higherKey
+    1:1:java.lang.Object higherKey(java.lang.Object):882 -> higherKey
+    2:2:java.lang.Object higherKey(java.lang.Object):882:882 -> higherKey
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():672:672 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():685:685 -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():699:699 -> k
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> keySet
+    1:1:java.util.Set keySet():62 -> keySet
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> l
+    1:1:java.util.Map$Entry lastEntry():892:892 -> lastEntry
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> lastEntry
+    2:2:java.util.Map$Entry lastEntry():892 -> lastEntry
+    3:3:java.util.Map$Entry lastEntry():892:892 -> lastEntry
+    4:4:int size():594:594 -> lastEntry
+    4:4:java.util.Map$Entry lastEntry():892 -> lastEntry
+    5:5:java.util.Map$Entry lastEntry():892:892 -> lastEntry
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> lastKey
+    1:1:java.lang.Object lastKey():720 -> lastKey
+    2:2:java.lang.Object lastKey():720:720 -> lastKey
+    1:1:java.util.Map$Entry lowerEntry(java.lang.Object):847:847 -> lowerEntry
+    1:1:java.util.Map$Entry lowerEntry(java.lang.Object):847:847 -> lowerKey
+    1:1:java.lang.Object lowerKey(java.lang.Object):852 -> lowerKey
+    2:2:java.lang.Object lowerKey(java.lang.Object):852:852 -> lowerKey
+    1:1:boolean isPartialView():614:614 -> n
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet navigableKeySet():940:940 -> navigableKeySet
+    1:1:java.util.NavigableSet navigableKeySet():62 -> navigableKeySet
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> p
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():62 -> p
+    1:1:java.util.Map$Entry pollFirstEntry():905:905 -> pollFirstEntry
+    1:1:java.util.Map$Entry pollLastEntry():918:918 -> pollLastEntry
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():694:694 -> s
+    1:1:int size():594:594 -> size
+    1:1:java.util.NavigableMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):62:62 -> subMap
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,java.lang.Object):781:781 -> subMap
+    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):62 -> subMap
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object):824:824 -> tailMap
+    1:1:java.util.SortedMap tailMap(java.lang.Object):62 -> tailMap
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> tailMap
+    2:2:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
+    3:3:int size():594:594 -> tailMap
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> tailMap
+    3:3:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> tailMap
+    4:4:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
+    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> tailMap
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> tailMap
+    5:5:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():694:694 -> values
+    1:1:java.util.Collection values():62 -> values
+com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1 -> com.android.tools.r8.r.a.a.b.x0:
+    java.util.Comparator val$comparator -> a
+    1:1:void <init>(java.util.Comparator):392:392 -> <init>
+    1:1:int compare(java.lang.Object,java.lang.Object):392:392 -> compare
+    2:2:int compare(java.util.Map$Entry,java.util.Map$Entry):395:395 -> compare
+    2:2:int compare(java.lang.Object,java.lang.Object):392 -> compare
+com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet -> com.android.tools.r8.r.a.a.b.z0:
+    com.android.tools.r8.com.google.common.collect.ImmutableSortedMap this$0 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSortedMap):629:629 -> <init>
+    1:1:void forEach(java.util.function.Consumer):642:642 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():632:632 -> g
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():647:647 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():632:632 -> iterator
+    1:1:java.util.Iterator iterator():628 -> iterator
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():669:669 -> m
+    1:1:java.util.Spliterator spliterator():637:637 -> spliterator
+com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet$1 -> com.android.tools.r8.r.a.a.b.y0:
+    com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet this$1 -> b
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet):647:647 -> <init>
+    1:2:java.util.Map$Entry get(int):650:651 -> get
+    1:2:java.lang.Object get(int):647 -> get
+    1:2:java.util.Map$Entry get(int):650:651 -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():662:662 -> k
+    1:1:int com.android.tools.r8.com.google.common.collect.ImmutableAsList.size():46:46 -> spliterator
+    1:1:java.util.Spliterator spliterator():657 -> spliterator
+    2:2:java.util.Spliterator spliterator():657:657 -> spliterator
+    3:3:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction):40:40 -> spliterator
+    3:3:java.util.Spliterator spliterator():656 -> spliterator
+com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder -> com.android.tools.r8.r.a.a.b.A0$a:
+    java.util.Comparator comparator -> d
+    1:2:void <init>(java.util.Comparator):475:476 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder.putAll(java.util.Map):286:286 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder putAll(java.util.Map):516 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder putAll(java.util.Map):467 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap build():467:467 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder put(java.lang.Object,java.lang.Object):487:487 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):467 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder put(java.util.Map$Entry):502:502 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.util.Map$Entry):467 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder putAll(java.lang.Iterable):532:532 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder putAll(java.lang.Iterable):467 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):552:552 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):467 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder put(java.lang.Object,java.lang.Object):487:487 -> b
+    2:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():564:570 -> b
+    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():568:568 -> b
+    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():566:566 -> b
+com.android.tools.r8.com.google.common.collect.ImmutableSortedMapFauxverideShim -> com.android.tools.r8.r.a.a.b.B0:
+    1:1:void <init>():32:32 -> <init>
+com.android.tools.r8.com.google.common.collect.ImmutableSortedSet -> com.android.tools.r8.r.a.a.b.C0:
+    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingSet -> d
+    java.util.Comparator comparator -> c
+    1:2:void <init>(java.util.Comparator):564:565 -> <init>
+    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean) -> a
+    1:1:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):86 -> a
+    2:5:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):86:89 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):89 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):89:89 -> a
+    8:13:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):311:316 -> a
+    8:13:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
+    14:14:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable):309:309 -> a
+    14:14:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):321 -> a
+    14:14:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
+    15:15:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):322:322 -> a
+    15:15:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
+    16:16:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    16:16:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):310 -> a
+    16:16:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
+    17:17:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):390:390 -> a
+    18:18:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[],int):225:225 -> a
+    18:18:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):392 -> a
+    19:30:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):393:404 -> a
+    31:32:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):635:636 -> a
+    33:33:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    33:33:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):634 -> a
+    34:34:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    34:34:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):633 -> a
+    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean) -> b
+    1:1:java.util.Comparator comparator():577:577 -> comparator
+    1:1:java.util.NavigableSet descendingSet():63:63 -> descendingSet
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605:605 -> headSet
+    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):63 -> headSet
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet.headSetImpl(java.lang.Object,boolean):236:236 -> headSet
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
+    2:2:java.util.NavigableSet headSet(java.lang.Object,boolean):63 -> headSet
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> headSet
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
+    3:3:java.util.NavigableSet headSet(java.lang.Object,boolean):63 -> headSet
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605:605 -> headSet
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object):596 -> headSet
+    4:4:java.util.SortedSet headSet(java.lang.Object):63 -> headSet
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet.headSetImpl(java.lang.Object,boolean):236:236 -> headSet
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object):596 -> headSet
+    5:5:java.util.SortedSet headSet(java.lang.Object):63 -> headSet
+    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> headSet
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object):596 -> headSet
+    6:6:java.util.SortedSet headSet(java.lang.Object):63 -> headSet
+    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet createDescendingSet() -> m
+    1:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingSet():762:765 -> n
+    1:1:java.lang.Object pollFirst():733:733 -> pollFirst
+    1:1:java.lang.Object pollLast():748:748 -> pollLast
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,java.lang.Object):623:623 -> subSet
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):63 -> subSet
+    2:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):635:636 -> subSet
+    2:3:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63 -> subSet
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subSet
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):634 -> subSet
+    4:4:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63 -> subSet
+    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subSet
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):633 -> subSet
+    5:5:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63 -> subSet
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661:661 -> tailSet
+    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):63 -> tailSet
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> tailSet
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661 -> tailSet
+    2:2:java.util.NavigableSet tailSet(java.lang.Object,boolean):63 -> tailSet
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661:661 -> tailSet
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object):652 -> tailSet
+    3:3:java.util.SortedSet tailSet(java.lang.Object):63 -> tailSet
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> tailSet
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661 -> tailSet
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object):652 -> tailSet
+    4:4:java.util.SortedSet tailSet(java.lang.Object):63 -> tailSet
+com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder -> com.android.tools.r8.r.a.a.b.C0$a:
+    java.util.Comparator comparator -> c
+    1:2:void <init>(java.util.Comparator):462:463 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet build():455:455 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):455 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object[]):494:494 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object[]):455 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder addAll(java.lang.Iterable):509:509 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder addAll(java.lang.Iterable):455 -> b
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):531:531 -> b
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):455 -> b
+    4:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet build():542:544 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> c
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object):455 -> c
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder addAll(java.lang.Iterable):509:509 -> c
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> d
+com.android.tools.r8.com.google.common.collect.ImmutableSortedSetFauxverideShim -> com.android.tools.r8.r.a.a.b.D0:
+    1:1:void <init>():39:39 -> <init>
+com.android.tools.r8.com.google.common.collect.Iterables$4 -> com.android.tools.r8.r.a.a.b.E0:
+    com.android.tools.r8.com.google.common.base.Predicate val$retainIfTrue -> c
+    java.lang.Iterable val$unfiltered -> b
+    1:1:void <init>(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):575:575 -> <init>
+    1:2:void lambda$forEach$0(com.android.tools.r8.com.google.common.base.Predicate,java.util.function.Consumer,java.lang.Object):586:587 -> a
+    1:1:void forEach(java.util.function.Consumer):584:584 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.Consumer):583 -> forEach
+    1:1:java.util.Iterator iterator():578:578 -> iterator
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):659:659 -> iterator
+    2:2:java.util.Iterator iterator():578 -> iterator
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> iterator
+    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):658 -> iterator
+    3:3:java.util.Iterator iterator():578 -> iterator
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> iterator
+    4:4:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):657 -> iterator
+    4:4:java.util.Iterator iterator():578 -> iterator
+    1:1:java.util.Spliterator spliterator():594:594 -> spliterator
+    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):189:189 -> spliterator
+    2:2:java.util.Spliterator spliterator():594 -> spliterator
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> spliterator
+    3:3:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):140 -> spliterator
+    3:3:java.util.Spliterator spliterator():594 -> spliterator
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> spliterator
+    4:4:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):139 -> spliterator
+    4:4:java.util.Spliterator spliterator():594 -> spliterator
+com.android.tools.r8.com.google.common.collect.Iterators$1 -> com.android.tools.r8.r.a.a.b.F0:
+    java.util.Iterator val$iterator -> a
+    1:1:void <init>(java.util.Iterator):137:137 -> <init>
+    1:1:boolean hasNext():140:140 -> hasNext
+    1:1:java.lang.Object next():145:145 -> next
+com.android.tools.r8.com.google.common.collect.Iterators$2 -> com.android.tools.r8.r.a.a.b.G0:
+    java.util.Iterator iterator -> a
+    java.lang.Iterable val$iterable -> b
+    1:2:void <init>(java.lang.Iterable):411:412 -> <init>
+    1:1:boolean hasNext():425:425 -> hasNext
+    1:7:java.lang.Object next():430:436 -> next
+    1:1:void remove():441:441 -> remove
+com.android.tools.r8.com.google.common.collect.Iterators$3 -> com.android.tools.r8.r.a.a.b.H0:
+    java.lang.Object[] val$elements -> b
+    int index -> a
+    1:2:void <init>(java.lang.Object[]):471:472 -> <init>
+    1:1:boolean hasNext():476:476 -> hasNext
+    1:6:java.lang.Object next():481:486 -> next
+    7:7:java.lang.Object next():482:482 -> next
+com.android.tools.r8.com.google.common.collect.Iterators$5 -> com.android.tools.r8.r.a.a.b.I0:
+    java.util.Iterator val$unfiltered -> c
+    com.android.tools.r8.com.google.common.base.Predicate val$retainIfTrue -> d
+    1:1:void <init>(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):659:659 -> <init>
+    1:7:java.lang.Object computeNext():662:668 -> k
+com.android.tools.r8.com.google.common.collect.Iterators$6 -> com.android.tools.r8.r.a.a.b.J0:
+    com.android.tools.r8.com.google.common.base.Function val$function -> b
+    1:1:void <init>(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> <init>
+    1:1:java.lang.Object transform(java.lang.Object):820:820 -> a
+com.android.tools.r8.com.google.common.collect.Iterators$7 -> com.android.tools.r8.r.a.a.b.K0:
+    java.util.Iterator val$iterator -> c
+    int val$limitSize -> b
+    int count -> a
+    1:1:void <init>(int,java.util.Iterator):952:952 -> <init>
+    1:1:boolean hasNext():957:957 -> hasNext
+    1:5:java.lang.Object next():962:966 -> next
+    6:6:java.lang.Object next():963:963 -> next
+    1:1:void remove():971:971 -> remove
+com.android.tools.r8.com.google.common.collect.Iterators$9 -> com.android.tools.r8.r.a.a.b.L0:
+    java.lang.Object val$value -> b
+    boolean done -> a
+    1:1:void <init>(java.lang.Object):1104:1104 -> <init>
+    1:1:boolean hasNext():1109:1109 -> hasNext
+    1:5:java.lang.Object next():1114:1118 -> next
+    6:6:java.lang.Object next():1115:1115 -> next
+com.android.tools.r8.com.google.common.collect.Iterators$ArrayItr -> com.android.tools.r8.r.a.a.b.M0:
+    com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator EMPTY -> e
+    java.lang.Object[] array -> c
+    int offset -> d
+    1:1:void <clinit>():1058:1058 -> <clinit>
+    1:3:void <init>(java.lang.Object[],int,int,int):1065:1067 -> <init>
+    1:1:java.lang.Object get(int):1072:1072 -> a
+com.android.tools.r8.com.google.common.collect.Iterators$ConcatenatedIterator -> com.android.tools.r8.r.a.a.b.N0:
+    java.util.Deque metaIterators -> d
+    java.util.Iterator topMetaIterator -> c
+    java.util.Iterator iterator -> b
+    java.util.Iterator toRemove -> a
+    1:3:void <init>(java.util.Iterator):1365:1367 -> <init>
+    1:1:boolean hasNext():1385:1385 -> hasNext
+    2:9:java.util.Iterator getTopMetaIterator():1373:1380 -> hasNext
+    2:9:boolean hasNext():1389 -> hasNext
+    10:11:java.util.Iterator getTopMetaIterator():1374:1375 -> hasNext
+    10:11:boolean hasNext():1389 -> hasNext
+    12:38:boolean hasNext():1389:1415 -> hasNext
+    1:5:java.lang.Object next():1423:1427 -> next
+    1:3:void remove():1433:1435 -> remove
+com.android.tools.r8.com.google.common.collect.Iterators$EmptyModifiableIterator -> com.android.tools.r8.r.a.a.b.O0:
+    com.android.tools.r8.com.google.common.collect.Iterators$EmptyModifiableIterator INSTANCE -> a
+    1:1:void <clinit>():98:98 -> <clinit>
+    1:1:void <init>(java.lang.String,int):97:97 -> <init>
+    1:1:java.lang.Object next():107:107 -> next
+    1:1:void remove():112:112 -> remove
+com.android.tools.r8.com.google.common.collect.ListMultimap -> com.android.tools.r8.r.a.a.b.P0:
+com.android.tools.r8.com.google.common.collect.Lists$RandomAccessReverseList -> com.android.tools.r8.r.a.a.b.Q0:
+    1:1:void <init>(java.util.List):991:991 -> <init>
+com.android.tools.r8.com.google.common.collect.Lists$ReverseList -> com.android.tools.r8.r.a.a.b.S0:
+    java.util.List forwardList -> a
+    1:2:void <init>(java.util.List):854:855 -> <init>
+    1:1:int size():906:906 -> a
+    1:1:int reversePosition(int):869 -> a
+    1:1:int access$000(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,int):851 -> a
+    2:2:int reversePosition(int):870:870 -> a
+    2:2:int access$000(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,int):851 -> a
+    1:1:void add(int,java.lang.Object):876:876 -> add
+    2:2:int size():906:906 -> add
+    2:2:int reversePosition(int):869 -> add
+    2:2:void add(int,java.lang.Object):876 -> add
+    3:3:int reversePosition(int):870:870 -> add
+    3:3:void add(int,java.lang.Object):876 -> add
+    4:4:void add(int,java.lang.Object):876:876 -> add
+    1:1:void clear():881:881 -> clear
+    1:1:java.util.List getForwardList():859:859 -> e
+    1:1:java.lang.Object get(int):901:901 -> get
+    2:2:int size():906:906 -> get
+    2:2:int reverseIndex(int):863 -> get
+    2:2:java.lang.Object get(int):901 -> get
+    3:3:int reverseIndex(int):864:864 -> get
+    3:3:java.lang.Object get(int):901 -> get
+    4:4:java.lang.Object get(int):901:901 -> get
+    1:1:java.util.Iterator iterator():917:917 -> iterator
+    1:1:int size():906:906 -> listIterator
+    1:1:int reversePosition(int):869 -> listIterator
+    1:1:java.util.ListIterator listIterator(int):922 -> listIterator
+    2:2:int reversePosition(int):870:870 -> listIterator
+    2:2:java.util.ListIterator listIterator(int):922 -> listIterator
+    3:4:java.util.ListIterator listIterator(int):923:924 -> listIterator
+    1:1:java.lang.Object remove(int):886:886 -> remove
+    2:2:int size():906:906 -> remove
+    2:2:int reverseIndex(int):863 -> remove
+    2:2:java.lang.Object remove(int):886 -> remove
+    3:3:int reverseIndex(int):864:864 -> remove
+    3:3:java.lang.Object remove(int):886 -> remove
+    4:4:java.lang.Object remove(int):886:886 -> remove
+    1:1:void removeRange(int,int):891:891 -> removeRange
+    1:1:java.lang.Object set(int,java.lang.Object):896:896 -> set
+    2:2:int size():906:906 -> set
+    2:2:int reverseIndex(int):863 -> set
+    2:2:java.lang.Object set(int,java.lang.Object):896 -> set
+    3:3:int reverseIndex(int):864:864 -> set
+    3:3:java.lang.Object set(int,java.lang.Object):896 -> set
+    4:4:java.lang.Object set(int,java.lang.Object):896:896 -> set
+    1:1:int size():906:906 -> size
+    1:1:int size():906:906 -> subList
+    1:1:java.util.List subList(int,int):911 -> subList
+    2:3:java.util.List subList(int,int):911:912 -> subList
+    4:4:int size():906:906 -> subList
+    4:4:int reversePosition(int):869 -> subList
+    4:4:java.util.List subList(int,int):912 -> subList
+    5:5:int reversePosition(int):870:870 -> subList
+    5:5:java.util.List subList(int,int):912 -> subList
+    6:6:int size():906:906 -> subList
+    6:6:int reversePosition(int):869 -> subList
+    6:6:java.util.List subList(int,int):912 -> subList
+    7:7:int reversePosition(int):870:870 -> subList
+    7:7:java.util.List subList(int,int):912 -> subList
+    8:8:java.util.List subList(int,int):912:912 -> subList
+com.android.tools.r8.com.google.common.collect.Lists$ReverseList$1 -> com.android.tools.r8.r.a.a.b.R0:
+    com.android.tools.r8.com.google.common.collect.Lists$ReverseList this$0 -> c
+    java.util.ListIterator val$forwardIterator -> b
+    boolean canRemoveOrSet -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,java.util.ListIterator):924:924 -> <init>
+    1:3:void add(java.lang.Object):930:932 -> add
+    1:1:boolean hasNext():937:937 -> hasNext
+    1:1:boolean hasPrevious():942:942 -> hasPrevious
+    1:1:boolean hasNext():937:937 -> next
+    1:1:java.lang.Object next():947 -> next
+    2:3:java.lang.Object next():950:951 -> next
+    4:4:java.lang.Object next():948:948 -> next
+    1:1:int nextIndex():956:956 -> nextIndex
+    1:1:boolean hasPrevious():942:942 -> previous
+    1:1:java.lang.Object previous():961 -> previous
+    2:3:java.lang.Object previous():964:965 -> previous
+    4:4:java.lang.Object previous():962:962 -> previous
+    1:1:int previousIndex():970:970 -> previousIndex
+    1:3:void remove():975:977 -> remove
+    1:2:void set(java.lang.Object):982:983 -> set
+com.android.tools.r8.com.google.common.collect.MapMaker -> com.android.tools.r8.r.a.a.b.T0:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength -> d
+    boolean useCustomMap -> a
+    int initialCapacity -> b
+    int concurrencyLevel -> c
+    1:1:void <init>():108:108 -> <init>
+    2:3:void <init>():96:97 -> <init>
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence getKeyEquivalence():127:127 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength():217:217 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength getValueStrength():263:263 -> c
+    1:4:java.util.concurrent.ConcurrentMap makeMap():278:281 -> d
+    1:1:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239:239 -> e
+    2:6:com.android.tools.r8.com.google.common.collect.MapMaker setValueStrength(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength):253:257 -> e
+    2:6:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239 -> e
+    1:17:java.lang.String toString():290:306 -> toString
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap -> com.android.tools.r8.r.a.a.b.Y0:
+    java.util.Set keySet -> g
+    java.util.Set entrySet -> i
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper -> f
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment[] segments -> c
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference UNSET_WEAK_VALUE_REFERENCE -> j
+    int concurrencyLevel -> d
+    com.android.tools.r8.com.google.common.base.Equivalence keyEquivalence -> e
+    int segmentShift -> b
+    int segmentMask -> a
+    java.util.Collection values -> h
+    1:1:void <clinit>():1023:1023 -> <clinit>
+    1:33:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):160:192 -> <init>
+    1:24:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap create(com.android.tools.r8.com.google.common.collect.MapMaker):199:222 -> a
+    25:25:int hash(java.lang.Object):1097:1097 -> a
+    26:26:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment[] newSegmentArray(int):1153:1153 -> a
+    27:28:java.util.ArrayList toArrayList(java.util.Collection):2861:2862 -> a
+    27:28:java.util.ArrayList access$900(java.util.Collection):69 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment createSegment(int,int):1133:1133 -> b
+    1:1:void clear():2505:2505 -> clear
+    2:15:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.clear():1801:1814 -> clear
+    2:15:void clear():2506 -> clear
+    1:2:boolean containsKey(java.lang.Object):2395:2396 -> containsKey
+    3:1472:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.containsKey(java.lang.Object,int):0:1469 -> containsKey
+    3:1472:boolean containsKey(java.lang.Object):2396 -> containsKey
+    1:11:boolean containsValue(java.lang.Object):2410:2420 -> containsValue
+    12:18:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1977:1983 -> containsValue
+    12:18:boolean containsValue(java.lang.Object):2421 -> containsValue
+    19:19:boolean containsValue(java.lang.Object):2422:2422 -> containsValue
+    20:27:boolean containsValue(java.lang.Object):2420:2427 -> containsValue
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int):1129:1129 -> d
+    1:2:java.util.Set entrySet():2530:2531 -> entrySet
+    1:2:java.lang.Object get(java.lang.Object):2374:2375 -> get
+    3:1459:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.get(java.lang.Object,int):0:1456 -> get
+    3:1459:java.lang.Object get(java.lang.Object):2375 -> get
+    1460:1466:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.get(java.lang.Object,int):1450:1456 -> get
+    1460:1466:java.lang.Object get(java.lang.Object):2375 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference unsetWeakValueReference():401:401 -> h
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence valueEquivalence():2322:2322 -> i
+    1:14:boolean isEmpty():2337:2350 -> isEmpty
+    1:2:java.util.Set keySet():2514:2515 -> keySet
+    1:2:java.lang.Object put(java.lang.Object,java.lang.Object):2442:2443 -> put
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> put
+    3:3:java.lang.Object put(java.lang.Object,java.lang.Object):2441 -> put
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> put
+    4:4:java.lang.Object put(java.lang.Object,java.lang.Object):2440 -> put
+    1:2:void putAll(java.util.Map):2457:2458 -> putAll
+    1:2:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2451:2452 -> putIfAbsent
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> putIfAbsent
+    3:3:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2450 -> putIfAbsent
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> putIfAbsent
+    4:4:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2449 -> putIfAbsent
+    1:2:java.lang.Object remove(java.lang.Object):2468:2469 -> remove
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1720:1720 -> remove
+    3:3:java.lang.Object remove(java.lang.Object):2469 -> remove
+    4:4:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> remove
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1722 -> remove
+    4:4:java.lang.Object remove(java.lang.Object):2469 -> remove
+    5:14:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1725:1734 -> remove
+    5:14:java.lang.Object remove(java.lang.Object):2469 -> remove
+    15:15:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> remove
+    15:15:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1738 -> remove
+    15:15:java.lang.Object remove(java.lang.Object):2469 -> remove
+    16:27:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1744:1755 -> remove
+    16:27:java.lang.Object remove(java.lang.Object):2469 -> remove
+    28:54:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1729:1755 -> remove
+    28:54:java.lang.Object remove(java.lang.Object):2469 -> remove
+    55:56:boolean remove(java.lang.Object,java.lang.Object):2478:2479 -> remove
+    1:2:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2490:2491 -> replace
+    3:3:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1631:1631 -> replace
+    3:3:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
+    4:4:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> replace
+    4:4:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1633 -> replace
+    4:4:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
+    5:16:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1635:1646 -> replace
+    5:16:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
+    17:17:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> replace
+    17:17:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1648 -> replace
+    17:17:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
+    18:28:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1650:1660 -> replace
+    18:28:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
+    29:29:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> replace
+    29:29:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1661 -> replace
+    29:29:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
+    30:30:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1673:1673 -> replace
+    30:30:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
+    31:65:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1639:1673 -> replace
+    31:65:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
+    66:66:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
+    66:66:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2486 -> replace
+    67:67:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
+    67:67:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2485 -> replace
+    68:69:java.lang.Object replace(java.lang.Object,java.lang.Object):2499:2500 -> replace
+    70:70:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1678:1678 -> replace
+    70:70:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
+    71:71:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> replace
+    71:71:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1680 -> replace
+    71:71:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
+    72:83:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1682:1693 -> replace
+    72:83:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
+    84:84:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> replace
+    84:84:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1695 -> replace
+    84:84:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
+    85:94:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1697:1706 -> replace
+    85:94:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
+    95:95:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> replace
+    95:95:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1707 -> replace
+    95:95:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
+    96:96:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1714:1714 -> replace
+    96:96:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
+    97:125:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1686:1714 -> replace
+    97:125:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
+    126:126:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
+    126:126:java.lang.Object replace(java.lang.Object,java.lang.Object):2498 -> replace
+    127:127:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
+    127:127:java.lang.Object replace(java.lang.Object,java.lang.Object):2497 -> replace
+    1:6:int size():2361:2366 -> size
+    1:2:java.util.Collection values():2522:2523 -> values
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1 -> com.android.tools.r8.r.a.a.b.U0:
+    1:1:void <init>():1024:1024 -> <init>
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry() -> a
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1024:1024 -> a
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractStrongKeyEntry -> com.android.tools.r8.r.a.a.b.V0:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry next -> c
+    java.lang.Object key -> a
+    int hash -> b
+    1:4:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):360:363 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext():378:378 -> b
+    1:1:int getHash():373:373 -> c
+    1:1:java.lang.Object getKey():368:368 -> getKey
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry -> com.android.tools.r8.r.a.a.b.W0:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry next -> b
+    int hash -> a
+    1:3:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):671:673 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext():688:688 -> b
+    1:1:int getHash():683:683 -> c
+    1:1:java.lang.Object getKey():678:678 -> getKey
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$DummyInternalEntry -> com.android.tools.r8.r.a.a.b.X0:
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$EntryIterator -> com.android.tools.r8.r.a.a.b.Y0$a:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2711:2711 -> <init>
+    1:1:java.util.Map$Entry next():2715:2715 -> next
+    1:1:java.lang.Object next():2711 -> next
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$EntrySet -> com.android.tools.r8.r.a.a.b.Y0$b:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2796:2796 -> <init>
+    1:1:void clear():2840:2840 -> clear
+    1:11:boolean contains(java.lang.Object):2805:2815 -> contains
+    1:1:boolean isEmpty():2835:2835 -> isEmpty
+    1:1:java.util.Iterator iterator():2800:2800 -> iterator
+    1:6:boolean remove(java.lang.Object):2820:2825 -> remove
+    1:1:int size():2830:2830 -> size
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$HashIterator -> com.android.tools.r8.r.a.a.b.Y0$c:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry -> e
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment currentSegment -> c
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> h
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal -> f
+    java.util.concurrent.atomic.AtomicReferenceArray currentTable -> d
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned -> g
+    int nextTableIndex -> b
+    int nextSegmentIndex -> a
+    1:4:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2546:2549 -> <init>
+    1:2:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2612:2613 -> a
+    3:1147:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):0:1144 -> a
+    3:1147:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2613 -> a
+    1148:1155:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2615:2622 -> a
+    1:1:boolean hasNext():2628:2628 -> hasNext
+    1:16:void advance():2556:2571 -> k
+    1:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry():2632:2637 -> l
+    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry():2633:2633 -> l
+    1:3:boolean nextInChain():2582:2584 -> m
+    4:4:boolean nextInChain():2583:2583 -> m
+    1:3:boolean nextInTable():2596:2598 -> n
+    1:2:void remove():2642:2643 -> remove
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getKey():2679:2679 -> remove
+    3:3:void remove():2643 -> remove
+    4:5:void remove():2643:2644 -> remove
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry -> com.android.tools.r8.r.a.a.b.Z0:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext() -> b
+    int getHash() -> c
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper -> com.android.tools.r8.r.a.a.b.a1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int) -> a
+    void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object) -> a
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength() -> a
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$KeyIterator -> com.android.tools.r8.r.a.a.b.Y0$d:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2648:2648 -> <init>
+    1:1:java.lang.Object next():2652:2652 -> next
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getKey():2679:2679 -> next
+    2:2:java.lang.Object next():2652 -> next
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$KeySet -> com.android.tools.r8.r.a.a.b.Y0$e:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2720:2720 -> <init>
+    1:1:void clear():2749:2749 -> clear
+    1:1:boolean contains(java.lang.Object):2739:2739 -> contains
+    1:1:boolean isEmpty():2734:2734 -> isEmpty
+    1:1:java.util.Iterator iterator():2724:2724 -> iterator
+    1:1:boolean remove(java.lang.Object):2744:2744 -> remove
+    1:1:int size():2729:2729 -> size
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$SafeToArraySet -> com.android.tools.r8.r.a.a.b.b1:
+    1:1:void <init>():2844:2844 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1):2844:2844 -> <init>
+    1:1:java.lang.Object[] toArray():2850:2850 -> toArray
+    2:2:java.lang.Object[] toArray(java.lang.Object[]):2855:2855 -> toArray
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment -> com.android.tools.r8.r.a.a.b.c1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap map -> a
+    java.util.concurrent.atomic.AtomicInteger readCount -> g
+    int maxSegmentSize -> f
+    int threshold -> d
+    java.util.concurrent.atomic.AtomicReferenceArray table -> e
+    int count -> b
+    int modCount -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):1231:1231 -> <init>
+    2:7:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):1229:1234 -> <init>
+    1:1:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
+    2:2:java.util.concurrent.atomic.AtomicReferenceArray newEntryArray(int):1263:1263 -> a
+    3:8:void initTable(java.util.concurrent.atomic.AtomicReferenceArray):1267:1272 -> a
+    9:9:void clearReferenceQueue(java.lang.ref.ReferenceQueue):1405:1405 -> a
+    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1418:1418 -> a
+    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> a
+    11:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getFirst(int):1411:1412 -> a
+    11:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1419 -> a
+    11:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> a
+    13:23:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1420:1430 -> a
+    13:23:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> a
+    24:24:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1419:1419 -> a
+    24:24:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> a
+    25:25:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1503:1503 -> a
+    26:26:void preWriteCleanup():2007:2007 -> a
+    26:26:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1505 -> a
+    27:48:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1507:1528 -> a
+    49:49:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
+    49:49:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1529 -> a
+    50:75:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1530:1555 -> a
+    76:76:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1540:1540 -> a
+    77:77:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
+    77:77:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1541 -> a
+    78:78:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1555:1555 -> a
+    79:116:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1518:1555 -> a
+    117:133:void expand():1564:1580 -> a
+    134:134:java.util.concurrent.atomic.AtomicReferenceArray newEntryArray(int):1263:1263 -> a
+    134:134:void expand():1581 -> a
+    135:156:void expand():1582:1603 -> a
+    157:170:void expand():1602:1615 -> a
+    171:171:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copyEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1259:1259 -> a
+    171:171:void expand():1616 -> a
+    172:172:void expand():1618:1618 -> a
+    173:187:void expand():1613:1627 -> a
+    188:188:boolean remove(java.lang.Object,int,java.lang.Object):1760:1760 -> a
+    189:189:void preWriteCleanup():2007:2007 -> a
+    189:189:boolean remove(java.lang.Object,int,java.lang.Object):1762 -> a
+    190:202:boolean remove(java.lang.Object,int,java.lang.Object):1765:1777 -> a
+    203:203:boolean isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> a
+    203:203:boolean remove(java.lang.Object,int,java.lang.Object):1779 -> a
+    204:215:boolean remove(java.lang.Object,int,java.lang.Object):1785:1796 -> a
+    216:243:boolean remove(java.lang.Object,int,java.lang.Object):1769:1796 -> a
+    244:245:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1833:1834 -> a
+    246:246:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copyEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1259:1259 -> a
+    246:246:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1836 -> a
+    247:255:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1835:1843 -> a
+    256:256:boolean isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> a
+    void maybeClearReferenceQueues() -> b
+    1:4:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1380:1383 -> b
+    5:1114:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):0:1109 -> b
+    5:1114:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
+    1115:1135:boolean reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,int):1850:1870 -> b
+    1115:1135:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1109 -> b
+    1115:1135:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
+    1136:1149:boolean reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,int):1857:1870 -> b
+    1136:1149:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1109 -> b
+    1136:1149:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
+    void maybeDrainReferenceQueues() -> c
+    1:4:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1394:1397 -> c
+    5:1109:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):0:1104 -> c
+    5:1109:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
+    1110:1137:boolean reclaimValue(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1877:1904 -> c
+    1110:1137:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1104 -> c
+    1110:1137:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
+    1138:1158:boolean reclaimValue(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1884:1904 -> c
+    1138:1158:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1104 -> c
+    1138:1158:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
+    1:1:void postReadCleanup():1996:1996 -> d
+    2:2:void runCleanup():2011:2011 -> d
+    2:2:void postReadCleanup():1997 -> d
+    1:6:void runLockedCleanup():2015:2020 -> e
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
+    1:5:void tryDrainReferenceQueues():1367:1371 -> g
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength -> com.android.tools.r8.r.a.a.b.f1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength STRONG -> a
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength WEAK -> b
+    1:8:void <clinit>():257:264 -> <clinit>
+    1:1:void <init>(java.lang.String,int):256:256 -> <init>
+    2:2:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1):256:256 -> <init>
+    com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence() -> a
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength$1 -> com.android.tools.r8.r.a.a.b.d1:
+    1:1:void <init>(java.lang.String,int):257:257 -> <init>
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence():260:260 -> a
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength$2 -> com.android.tools.r8.r.a.a.b.e1:
+    1:1:void <init>(java.lang.String,int):264:264 -> <init>
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence():267:267 -> a
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry -> com.android.tools.r8.r.a.a.b.h1:
+    java.lang.Object value -> d
+    1:1:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):411:411 -> <init>
+    2:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):408:408 -> <init>
+    1:1:void setValue(java.lang.Object):421:421 -> a
+    2:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):425:427 -> a
+    1:1:java.lang.Object getValue():417:417 -> getValue
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper -> com.android.tools.r8.r.a.a.b.g1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper INSTANCE -> a
+    1:1:void <clinit>():435:435 -> <clinit>
+    1:1:void <init>():432:432 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432:432 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):467:467 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432:432 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):484:484 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432 -> a
+    5:5:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):432:432 -> a
+    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry,java.lang.Object):475:475 -> a
+    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):432 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():449:449 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):459:459 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):432 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper instance():439:439 -> b
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment -> com.android.tools.r8.r.a.a.b.i1:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2035:2035 -> <init>
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry -> com.android.tools.r8.r.a.a.b.k1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference valueReference -> d
+    1:1:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):497:497 -> <init>
+    2:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):494:494 -> <init>
+    1:5:void setValue(java.lang.Object,java.lang.ref.ReferenceQueue):511:515 -> a
+    6:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):520:522 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference():528:528 -> a
+    1:1:java.lang.Object getValue():502:502 -> getValue
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper -> com.android.tools.r8.r.a.a.b.j1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper INSTANCE -> a
+    1:1:void <clinit>():535:535 -> <clinit>
+    1:1:void <init>():532:532 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532:532 -> a
+    2:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):566:569 -> a
+    2:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532:532 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):584:584 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532 -> a
+    8:8:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):532:532 -> a
+    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry,java.lang.Object):575:575 -> a
+    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):532 -> a
+    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():549:549 -> a
+    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):558:558 -> a
+    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):532 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper instance():539:539 -> b
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment -> com.android.tools.r8.r.a.a.b.l1:
+    java.lang.ref.ReferenceQueue queueForValues -> h
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2060:2060 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2053:2053 -> <init>
+    1:1:java.lang.ref.ReferenceQueue access$100(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment):2051:2051 -> a
+    1:1:void maybeClearReferenceQueues():2112:2112 -> b
+    1:1:void maybeDrainReferenceQueues():2107:2107 -> c
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$ValueIterator -> com.android.tools.r8.r.a.a.b.Y0$f:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2656:2656 -> <init>
+    1:1:java.lang.Object next():2660:2660 -> next
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getValue():2684:2684 -> next
+    2:2:java.lang.Object next():2660 -> next
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Values -> com.android.tools.r8.r.a.a.b.Y0$g:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2754:2754 -> <init>
+    1:1:void clear():2778:2778 -> clear
+    1:1:boolean contains(java.lang.Object):2773:2773 -> contains
+    1:1:boolean isEmpty():2768:2768 -> isEmpty
+    1:1:java.util.Iterator iterator():2758:2758 -> iterator
+    1:1:int size():2763:2763 -> size
+    1:1:java.lang.Object[] toArray():2786:2786 -> toArray
+    2:2:java.lang.Object[] toArray(java.lang.Object[]):2791:2791 -> toArray
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry -> com.android.tools.r8.r.a.a.b.n1:
+    java.lang.Object value -> c
+    1:1:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):780:780 -> <init>
+    2:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):776:776 -> <init>
+    1:1:void setValue(java.lang.Object):790:790 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):795:795 -> a
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):796 -> a
+    4:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):796:797 -> a
+    6:6:void setValue(java.lang.Object):790:790 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):797 -> a
+    1:1:java.lang.Object getValue():786:786 -> getValue
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper -> com.android.tools.r8.r.a.a.b.m1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper INSTANCE -> a
+    1:1:void <clinit>():805:805 -> <clinit>
+    1:1:void <init>():802:802 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802:802 -> a
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):836 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):840:840 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802:802 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):855:855 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
+    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):802:802 -> a
+    7:7:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,java.lang.Object):846:846 -> a
+    7:7:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):802 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():819:819 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):828:828 -> a
+    9:9:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):802 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper instance():809:809 -> b
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment -> com.android.tools.r8.r.a.a.b.o1:
+    java.lang.ref.ReferenceQueue queueForKeys -> h
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2149:2149 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2142:2142 -> <init>
+    1:1:java.lang.ref.ReferenceQueue access$300(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment):2140:2140 -> a
+    1:1:void maybeClearReferenceQueues():2175:2175 -> b
+    1:1:void maybeDrainReferenceQueues():2170:2170 -> c
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry -> com.android.tools.r8.r.a.a.b.q1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference valueReference -> c
+    1:1:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):869:869 -> <init>
+    2:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):865:865 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):881:881 -> a
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):882 -> a
+    3:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):882:883 -> a
+    5:9:void setValue(java.lang.Object,java.lang.ref.ReferenceQueue):893:897 -> a
+    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference():902:902 -> a
+    1:1:java.lang.Object getValue():874:874 -> getValue
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper -> com.android.tools.r8.r.a.a.b.p1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper INSTANCE -> a
+    1:1:void <clinit>():909:909 -> <clinit>
+    1:1:void <init>():906:906 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906:906 -> a
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):939 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
+    3:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):943:946 -> a
+    3:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906:906 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):961:961 -> a
+    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
+    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):906:906 -> a
+    10:10:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,java.lang.Object):952:952 -> a
+    10:10:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):906 -> a
+    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():923:923 -> a
+    12:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):931:931 -> a
+    12:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):906 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper instance():913:913 -> b
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment -> com.android.tools.r8.r.a.a.b.r1:
+    java.lang.ref.ReferenceQueue queueForKeys -> h
+    java.lang.ref.ReferenceQueue queueForValues -> i
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2189:2189 -> <init>
+    2:3:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2182:2183 -> <init>
+    1:1:java.lang.ref.ReferenceQueue access$400(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment):2180:2180 -> a
+    1:1:java.lang.ref.ReferenceQueue access$500(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment):2180:2180 -> b
+    2:2:void maybeClearReferenceQueues():2247:2247 -> b
+    1:2:void maybeDrainReferenceQueues():2241:2242 -> c
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueEntry -> com.android.tools.r8.r.a.a.b.s1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference() -> a
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference -> com.android.tools.r8.r.a.a.b.t1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry() -> a
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReferenceImpl -> com.android.tools.r8.r.a.a.b.u1:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry entry -> a
+    1:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1051:1052 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry():1057:1057 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1062:1062 -> a
+com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry -> com.android.tools.r8.r.a.a.b.Y0$h:
+    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> c
+    java.lang.Object value -> b
+    java.lang.Object key -> a
+    1:3:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,java.lang.Object,java.lang.Object):2672:2674 -> <init>
+    1:3:boolean equals(java.lang.Object):2690:2692 -> equals
+    1:1:java.lang.Object getKey():2679:2679 -> getKey
+    1:1:java.lang.Object getValue():2684:2684 -> getValue
+    1:1:int hashCode():2700:2700 -> hashCode
+    1:2:java.lang.Object setValue(java.lang.Object):2705:2706 -> setValue
+com.android.tools.r8.com.google.common.collect.Maps$1 -> com.android.tools.r8.r.a.a.b.v1:
+com.android.tools.r8.com.google.common.collect.Maps$5 -> com.android.tools.r8.r.a.a.b.w1:
+    java.util.Map$Entry val$entry -> a
+    1:1:void <init>(java.util.Map$Entry):1447:1447 -> <init>
+    1:1:java.lang.Object getKey():1450:1450 -> getKey
+    1:1:java.lang.Object getValue():1455:1455 -> getValue
+com.android.tools.r8.com.google.common.collect.Maps$6 -> com.android.tools.r8.r.a.a.b.x1:
+    java.util.Iterator val$entryIterator -> a
+    1:1:void <init>(java.util.Iterator):1462:1462 -> <init>
+    1:1:boolean hasNext():1465:1465 -> hasNext
+    1:1:java.util.Map$Entry next():1470:1470 -> next
+    1:1:java.lang.Object next():1462 -> next
+    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntry(java.util.Map$Entry):1447:1447 -> next
+    2:2:java.util.Map$Entry next():1470 -> next
+    2:2:java.lang.Object next():1462 -> next
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> next
+    3:3:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntry(java.util.Map$Entry):1446 -> next
+    3:3:java.util.Map$Entry next():1470 -> next
+    3:3:java.lang.Object next():1462 -> next
+com.android.tools.r8.com.google.common.collect.Maps$EntryFunction -> com.android.tools.r8.r.a.a.b.A1:
+    com.android.tools.r8.com.google.common.collect.Maps$EntryFunction VALUE -> b
+    com.android.tools.r8.com.google.common.collect.Maps$EntryFunction KEY -> a
+    1:8:void <clinit>():93:100 -> <clinit>
+    1:1:void <init>(java.lang.String,int):92:92 -> <init>
+    2:2:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.collect.Maps$1):92:92 -> <init>
+com.android.tools.r8.com.google.common.collect.Maps$EntryFunction$1 -> com.android.tools.r8.r.a.a.b.y1:
+    1:1:void <init>(java.lang.String,int):93:93 -> <init>
+    1:1:java.lang.Object apply(java.lang.Object):93:93 -> apply
+    2:2:java.lang.Object apply(java.util.Map$Entry):97:97 -> apply
+    2:2:java.lang.Object apply(java.lang.Object):93 -> apply
+com.android.tools.r8.com.google.common.collect.Maps$EntryFunction$2 -> com.android.tools.r8.r.a.a.b.z1:
+    1:1:void <init>(java.lang.String,int):100:100 -> <init>
+    1:1:java.lang.Object apply(java.lang.Object):100:100 -> apply
+    2:2:java.lang.Object apply(java.util.Map$Entry):104:104 -> apply
+    2:2:java.lang.Object apply(java.lang.Object):100 -> apply
+com.android.tools.r8.com.google.common.collect.Maps$EntrySet -> com.android.tools.r8.r.a.a.b.B1:
+    1:1:void <init>():4112:4112 -> <init>
+    1:1:void clear():4122:4122 -> clear
+    1:5:boolean contains(java.lang.Object):4127:4131 -> contains
+    java.util.Map map() -> e
+    1:1:boolean isEmpty():4138:4138 -> isEmpty
+    1:3:boolean remove(java.lang.Object):4143:4145 -> remove
+    1:1:boolean com.android.tools.r8.com.google.common.collect.Sets$ImprovedAbstractSet.removeAll(java.util.Collection):80:80 -> removeAll
+    1:1:boolean removeAll(java.util.Collection):4153 -> removeAll
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> removeAll
+    2:2:boolean removeAll(java.util.Collection):4153 -> removeAll
+    3:3:boolean removeAll(java.util.Collection):4156:4156 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):4163:4163 -> retainAll
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
+    2:2:boolean retainAll(java.util.Collection):4163 -> retainAll
+    3:3:boolean retainAll(java.util.Collection):4166:4166 -> retainAll
+    4:4:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSetWithExpectedSize(int):253:253 -> retainAll
+    4:4:boolean retainAll(java.util.Collection):4166 -> retainAll
+    5:11:boolean retainAll(java.util.Collection):4167:4173 -> retainAll
+    1:1:int size():4117:4117 -> size
+com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap -> com.android.tools.r8.r.a.a.b.D1:
+    1:1:void <init>():3653:3653 -> <init>
+    1:1:java.util.Set entrySet():3666:3666 -> entrySet
+    java.util.Iterator entryIterator() -> h
+com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap$1 -> com.android.tools.r8.r.a.a.b.C1:
+    com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap):3666:3666 -> <init>
+    1:1:java.util.Map map():3669:3669 -> e
+    1:1:void forEach(java.util.function.Consumer):3684:3684 -> forEach
+    2:2:void com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.forEachEntry(java.util.function.Consumer):3690:3690 -> forEach
+    2:2:void forEach(java.util.function.Consumer):3684 -> forEach
+    1:1:java.util.Iterator iterator():3674:3674 -> iterator
+    1:1:java.util.Spliterator spliterator():3679:3679 -> spliterator
+    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.entrySpliterator():3661:3661 -> spliterator
+    2:2:java.util.Spliterator spliterator():3679 -> spliterator
+    3:3:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.entrySpliterator():3660:3660 -> spliterator
+    3:3:java.util.Spliterator spliterator():3679 -> spliterator
+com.android.tools.r8.com.google.common.collect.Maps$KeySet -> com.android.tools.r8.r.a.a.b.E1:
+    java.util.Map map -> a
+    1:2:void <init>(java.util.Map):3839:3840 -> <init>
+    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):3856:3856 -> a
+    1:1:java.util.Map map():3844:3844 -> clear
+    1:1:void clear():3885 -> clear
+    2:2:void clear():3885:3885 -> clear
+    1:1:java.util.Map map():3844:3844 -> contains
+    1:1:boolean contains(java.lang.Object):3871 -> contains
+    2:2:boolean contains(java.lang.Object):3871:3871 -> contains
+    1:1:void forEach(java.util.function.Consumer):3856:3856 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.Consumer):3854 -> forEach
+    1:1:java.util.Map map():3844:3844 -> isEmpty
+    1:1:boolean isEmpty():3866 -> isEmpty
+    2:2:boolean isEmpty():3866:3866 -> isEmpty
+    1:1:java.util.Map map():3844:3844 -> iterator
+    1:1:java.util.Iterator iterator():3849 -> iterator
+    2:2:java.util.Iterator iterator():3849:3849 -> iterator
+    3:3:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.keyFunction():111:111 -> iterator
+    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
+    3:3:java.util.Iterator iterator():3849 -> iterator
+    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> iterator
+    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
+    4:4:java.util.Iterator iterator():3849 -> iterator
+    1:1:java.util.Map map():3844:3844 -> remove
+    1:1:boolean contains(java.lang.Object):3871 -> remove
+    1:1:boolean remove(java.lang.Object):3876 -> remove
+    2:2:boolean contains(java.lang.Object):3871:3871 -> remove
+    2:2:boolean remove(java.lang.Object):3876 -> remove
+    3:3:java.util.Map map():3844:3844 -> remove
+    3:3:boolean remove(java.lang.Object):3877 -> remove
+    4:4:boolean remove(java.lang.Object):3877:3877 -> remove
+    1:1:java.util.Map map():3844:3844 -> size
+    1:1:int size():3861 -> size
+    2:2:int size():3861:3861 -> size
+com.android.tools.r8.com.google.common.collect.Maps$Values -> com.android.tools.r8.r.a.a.b.F1:
+    java.util.Map map -> a
+    1:2:void <init>(java.util.Map):4026:4027 -> <init>
+    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):4043:4043 -> a
+    1:1:java.util.Map map():4031:4031 -> clear
+    1:1:void clear():4108 -> clear
+    2:2:void clear():4108:4108 -> clear
+    1:1:java.util.Map map():4031:4031 -> contains
+    1:1:boolean contains(java.lang.Object):4103 -> contains
+    2:2:boolean contains(java.lang.Object):4103:4103 -> contains
+    1:1:void forEach(java.util.function.Consumer):4043:4043 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.Consumer):4041 -> forEach
+    1:1:java.util.Map map():4031:4031 -> isEmpty
+    1:1:boolean isEmpty():4098 -> isEmpty
+    2:2:boolean isEmpty():4098:4098 -> isEmpty
+    1:1:java.util.Map map():4031:4031 -> iterator
+    1:1:java.util.Iterator iterator():4036 -> iterator
+    2:2:java.util.Iterator iterator():4036:4036 -> iterator
+    3:3:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.valueFunction():116:116 -> iterator
+    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.valueIterator(java.util.Iterator):124 -> iterator
+    3:3:java.util.Iterator iterator():4036 -> iterator
+    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> iterator
+    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.valueIterator(java.util.Iterator):124 -> iterator
+    4:4:java.util.Iterator iterator():4036 -> iterator
+    1:1:boolean remove(java.lang.Object):4049:4049 -> remove
+    2:2:java.util.Map map():4031:4031 -> remove
+    2:2:boolean remove(java.lang.Object):4051 -> remove
+    3:4:boolean remove(java.lang.Object):4051:4052 -> remove
+    5:5:java.util.Map map():4031:4031 -> remove
+    5:5:boolean remove(java.lang.Object):4053 -> remove
+    6:6:boolean remove(java.lang.Object):4053:4053 -> remove
+    1:1:boolean removeAll(java.util.Collection):4064:4064 -> removeAll
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> removeAll
+    2:2:boolean removeAll(java.util.Collection):4064 -> removeAll
+    3:3:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> removeAll
+    3:3:boolean removeAll(java.util.Collection):4066 -> removeAll
+    4:4:java.util.Map map():4031:4031 -> removeAll
+    4:4:boolean removeAll(java.util.Collection):4067 -> removeAll
+    5:7:boolean removeAll(java.util.Collection):4067:4069 -> removeAll
+    8:8:java.util.Map map():4031:4031 -> removeAll
+    8:8:boolean removeAll(java.util.Collection):4072 -> removeAll
+    9:9:boolean removeAll(java.util.Collection):4072:4072 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):4079:4079 -> retainAll
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
+    2:2:boolean retainAll(java.util.Collection):4079 -> retainAll
+    3:3:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> retainAll
+    3:3:boolean retainAll(java.util.Collection):4081 -> retainAll
+    4:4:java.util.Map map():4031:4031 -> retainAll
+    4:4:boolean retainAll(java.util.Collection):4082 -> retainAll
+    5:7:boolean retainAll(java.util.Collection):4082:4084 -> retainAll
+    8:8:java.util.Map map():4031:4031 -> retainAll
+    8:8:boolean retainAll(java.util.Collection):4087 -> retainAll
+    9:9:boolean retainAll(java.util.Collection):4087:4087 -> retainAll
+    1:1:java.util.Map map():4031:4031 -> size
+    1:1:int size():4093 -> size
+    2:2:int size():4093:4093 -> size
+com.android.tools.r8.com.google.common.collect.Maps$ViewCachingAbstractMap -> com.android.tools.r8.r.a.a.b.G1:
+    java.util.Collection values -> b
+    java.util.Set entrySet -> a
+    1:1:void <init>():3612:3612 -> <init>
+    1:2:java.util.Set entrySet():3624:3625 -> entrySet
+    3:3:java.util.Set com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap.createEntrySet():1307:1307 -> entrySet
+    3:3:java.util.Set entrySet():3625 -> entrySet
+    4:4:java.util.Set entrySet():3625:3625 -> entrySet
+    1:1:java.util.Collection values():3644:3644 -> values
+    2:2:java.util.Collection createValues():3649:3649 -> values
+    2:2:java.util.Collection values():3645 -> values
+    3:3:java.util.Collection values():3645:3645 -> values
+com.android.tools.r8.com.google.common.collect.Multimap -> com.android.tools.r8.r.a.a.b.H1:
+    boolean containsEntry(java.lang.Object,java.lang.Object) -> a
+    java.util.Collection entries() -> a
+    java.util.Map asMap() -> b
+    com.android.tools.r8.com.google.common.collect.Multiset keys() -> c
+com.android.tools.r8.com.google.common.collect.MultimapBuilder$2 -> com.android.tools.r8.r.a.a.b.I1:
+    int val$expectedKeys -> a
+    1:1:void <init>(int):127:127 -> <init>
+com.android.tools.r8.com.google.common.collect.MultimapBuilder$ArrayListSupplier -> com.android.tools.r8.r.a.a.b.J1:
+    int expectedValuesPerKey -> a
+    1:2:void <init>(int):193:194 -> <init>
+    1:1:java.util.List get():199:199 -> get
+    1:1:java.lang.Object get():190 -> get
+com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder -> com.android.tools.r8.r.a.a.b.K1:
+    1:1:void com.android.tools.r8.com.google.common.collect.MultimapBuilder.<init>():77:77 -> <init>
+    1:1:void com.android.tools.r8.com.google.common.collect.MultimapBuilder.<init>(com.android.tools.r8.com.google.common.collect.MultimapBuilder$1):71 -> <init>
+    1:1:void <init>():438 -> <init>
+    com.android.tools.r8.com.google.common.collect.ListMultimap build() -> a
+    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys com.android.tools.r8.com.google.common.collect.MultimapBuilder.linkedHashKeys(int):126:127 -> b
+    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys com.android.tools.r8.com.google.common.collect.MultimapBuilder.linkedHashKeys():113 -> b
+com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys -> com.android.tools.r8.r.a.a.b.M1:
+    1:1:void <init>():282:282 -> <init>
+    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder arrayListValues(int):300:301 -> a
+    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder arrayListValues():290 -> a
+com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys$1 -> com.android.tools.r8.r.a.a.b.L1:
+    com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys this$0 -> b
+    int val$expectedValuesPerKey -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys,int):301:301 -> <init>
+    1:2:com.android.tools.r8.com.google.common.collect.ListMultimap build():304:305 -> a
+    3:3:java.util.Map com.android.tools.r8.com.google.common.collect.MultimapBuilder$2.createMap():130:130 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ListMultimap build():305 -> a
+    4:4:java.util.LinkedHashMap com.android.tools.r8.com.google.common.collect.Maps.newLinkedHashMapWithExpectedSize(int):377:377 -> a
+    4:4:java.util.Map com.android.tools.r8.com.google.common.collect.MultimapBuilder$2.createMap():130 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ListMultimap build():305 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ListMultimap build():305:305 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ListMultimap com.android.tools.r8.com.google.common.collect.Multimaps.newListMultimap(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):294:294 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.ListMultimap build():304 -> a
+com.android.tools.r8.com.google.common.collect.Multimaps$CustomListMultimap -> com.android.tools.r8.r.a.a.b.N1:
+    com.android.tools.r8.com.google.common.base.Supplier factory -> g
+    1:2:void <init>(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):301:302 -> <init>
+    1:1:java.util.List createCollection():307:307 -> j
+    1:1:java.util.Collection createCollection():297 -> j
+com.android.tools.r8.com.google.common.collect.Multimaps$Entries -> com.android.tools.r8.r.a.a.b.O1:
+    1:1:void <init>():1793:1793 -> <init>
+    1:1:void clear():1821:1821 -> clear
+    2:2:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> clear
+    2:2:void clear():1821 -> clear
+    3:3:void clear():1821:1821 -> clear
+    1:3:boolean contains(java.lang.Object):1803:1805 -> contains
+    4:4:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> contains
+    4:4:boolean contains(java.lang.Object):1805 -> contains
+    5:5:boolean contains(java.lang.Object):1805:1805 -> contains
+    1:3:boolean remove(java.lang.Object):1812:1814 -> remove
+    4:4:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> remove
+    4:4:boolean remove(java.lang.Object):1814 -> remove
+    5:5:boolean remove(java.lang.Object):1814:1814 -> remove
+    1:1:int size():1798:1798 -> size
+    2:2:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> size
+    2:2:int size():1798 -> size
+    3:3:int size():1798:1798 -> size
+com.android.tools.r8.com.google.common.collect.Multimaps$Keys -> com.android.tools.r8.r.a.a.b.R1:
+    com.android.tools.r8.com.google.common.collect.Multimap multimap -> c
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Multimap):1645:1646 -> <init>
+    1:1:void lambda$forEach$0(java.util.function.Consumer,java.util.Map$Entry):1678:1678 -> a
+    2:20:int remove(java.lang.Object,int):1755:1773 -> a
+    1:2:int count(java.lang.Object):1749:1750 -> b
+    1:1:java.util.Set elementSet():1786:1786 -> c
+    1:1:void clear():1781:1781 -> clear
+    1:1:boolean contains(java.lang.Object):1739:1739 -> contains
+    1:1:java.util.Set createEntrySet():1688:1688 -> e
+    1:1:int distinctElements():1683:1683 -> f
+    1:1:void forEach(java.util.function.Consumer):1678:1678 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.Consumer):1677 -> forEach
+    1:2:java.util.Iterator entryIterator():1651:1652 -> g
+    1:1:java.util.Iterator iterator():1744:1744 -> iterator
+    2:2:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.keyFunction():111:111 -> iterator
+    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
+    2:2:java.util.Iterator iterator():1744 -> iterator
+    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> iterator
+    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
+    3:3:java.util.Iterator iterator():1744 -> iterator
+    1:1:java.util.Spliterator spliterator():1672:1672 -> spliterator
+com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1 -> com.android.tools.r8.r.a.a.b.Q1:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys,java.util.Iterator):1652:1652 -> <init>
+    1:1:java.lang.Object transform(java.lang.Object):1652:1652 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.Multiset$Entry transform(java.util.Map$Entry):1655:1655 -> a
+    2:2:java.lang.Object transform(java.lang.Object):1652 -> a
+com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1$1 -> com.android.tools.r8.r.a.a.b.P1:
+    java.util.Map$Entry val$backingEntry -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1,java.util.Map$Entry):1655:1655 -> <init>
+    1:1:int getCount():1663:1663 -> a
+    1:1:java.lang.Object getElement():1658:1658 -> b
+com.android.tools.r8.com.google.common.collect.Multimaps$Keys$KeysEntrySet -> com.android.tools.r8.r.a.a.b.R1$a:
+    com.android.tools.r8.com.google.common.collect.Multimaps$Keys this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys):1692:1692 -> <init>
+    1:4:boolean contains(java.lang.Object):1715:1718 -> contains
+    1:1:com.android.tools.r8.com.google.common.collect.Multiset multiset():1695:1695 -> e
+    1:1:boolean isEmpty():1710:1710 -> isEmpty
+    1:1:java.util.Iterator iterator():1700:1700 -> iterator
+    2:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Multimaps$Keys.entryIterator():1651:1652 -> iterator
+    2:3:java.util.Iterator iterator():1700 -> iterator
+    1:5:boolean remove(java.lang.Object):1725:1729 -> remove
+    1:1:int size():1705:1705 -> size
+    2:2:int com.android.tools.r8.com.google.common.collect.Multimaps$Keys.distinctElements():1683:1683 -> size
+    2:2:int size():1705 -> size
+com.android.tools.r8.com.google.common.collect.Multiset -> com.android.tools.r8.r.a.a.b.S1:
+    int remove(java.lang.Object,int) -> a
+    boolean setCount(java.lang.Object,int,int) -> a
+    1:4:void lambda$forEach$1(java.util.function.Consumer,com.android.tools.r8.com.google.common.collect.Multiset$Entry):494:497 -> a
+    int add(java.lang.Object,int) -> b
+    int count(java.lang.Object) -> b
+    java.util.Set elementSet() -> c
+    int setCount(java.lang.Object,int) -> c
+    1:2:void forEach(java.util.function.Consumer):491:492 -> forEach
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    3:3:void forEach(java.util.function.Consumer):490 -> forEach
+    1:1:java.util.Spliterator spliterator():504:504 -> spliterator
+com.android.tools.r8.com.google.common.collect.Multiset$Entry -> com.android.tools.r8.r.a.a.b.S1$a:
+    int getCount() -> a
+    java.lang.Object getElement() -> b
+com.android.tools.r8.com.google.common.collect.Multisets$AbstractEntry -> com.android.tools.r8.r.a.a.b.T1:
+    1:1:void <init>():833:833 -> <init>
+    1:4:boolean equals(java.lang.Object):840:843 -> equals
+    1:2:int hashCode():854:855 -> hashCode
+    1:3:java.lang.String toString():867:869 -> toString
+com.android.tools.r8.com.google.common.collect.Multisets$DecreasingCount -> com.android.tools.r8.r.a.a.b.U1:
+    com.android.tools.r8.com.google.common.collect.Multisets$DecreasingCount INSTANCE -> a
+    1:1:void <clinit>():1165:1165 -> <clinit>
+    1:1:void <init>():1164:1164 -> <init>
+    1:1:int compare(java.lang.Object,java.lang.Object):1164:1164 -> compare
+    2:2:int compare(com.android.tools.r8.com.google.common.collect.Multiset$Entry,com.android.tools.r8.com.google.common.collect.Multiset$Entry):1168:1168 -> compare
+    2:2:int compare(java.lang.Object,java.lang.Object):1164 -> compare
+com.android.tools.r8.com.google.common.collect.Multisets$ElementSet -> com.android.tools.r8.r.a.a.b.W1:
+    1:1:void <init>():977:977 -> <init>
+    1:1:void clear():982:982 -> clear
+    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> clear
+    2:2:void clear():982 -> clear
+    3:3:void clear():982:982 -> clear
+    1:1:boolean contains(java.lang.Object):987:987 -> contains
+    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> contains
+    2:2:boolean contains(java.lang.Object):987 -> contains
+    3:3:boolean contains(java.lang.Object):987:987 -> contains
+    1:1:boolean containsAll(java.util.Collection):992:992 -> containsAll
+    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> containsAll
+    2:2:boolean containsAll(java.util.Collection):992 -> containsAll
+    3:3:boolean containsAll(java.util.Collection):992:992 -> containsAll
+    1:1:boolean isEmpty():997:997 -> isEmpty
+    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> isEmpty
+    2:2:boolean isEmpty():997 -> isEmpty
+    3:3:boolean isEmpty():997:997 -> isEmpty
+    1:1:java.util.Iterator iterator():1002:1002 -> iterator
+    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> iterator
+    2:2:java.util.Iterator iterator():1002 -> iterator
+    3:3:java.util.Iterator iterator():1002:1002 -> iterator
+    1:1:boolean remove(java.lang.Object):1012:1012 -> remove
+    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> remove
+    2:2:boolean remove(java.lang.Object):1012 -> remove
+    3:3:boolean remove(java.lang.Object):1012:1012 -> remove
+    1:1:int size():1017:1017 -> size
+    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> size
+    2:2:int size():1017 -> size
+    3:3:int size():1017:1017 -> size
+com.android.tools.r8.com.google.common.collect.Multisets$ElementSet$1 -> com.android.tools.r8.r.a.a.b.V1:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multisets$ElementSet,java.util.Iterator):1002:1002 -> <init>
+    1:1:java.lang.Object transform(java.lang.Object):1002:1002 -> a
+    2:2:java.lang.Object transform(com.android.tools.r8.com.google.common.collect.Multiset$Entry):1005:1005 -> a
+    2:2:java.lang.Object transform(java.lang.Object):1002 -> a
+com.android.tools.r8.com.google.common.collect.Multisets$EntrySet -> com.android.tools.r8.r.a.a.b.X1:
+    1:1:void <init>():1021:1021 -> <init>
+    1:1:void clear():1061:1061 -> clear
+    1:11:boolean contains(java.lang.Object):1026:1036 -> contains
+    com.android.tools.r8.com.google.common.collect.Multiset multiset() -> e
+    1:9:boolean remove(java.lang.Object):1045:1053 -> remove
+com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry -> com.android.tools.r8.r.a.a.b.Y1:
+    java.lang.Object element -> a
+    int count -> b
+    1:4:void <init>(java.lang.Object,int):258:261 -> <init>
+    1:1:int getCount():272:272 -> a
+    1:1:java.lang.Object getElement():267:267 -> b
+    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket() -> c
+com.android.tools.r8.com.google.common.collect.NaturalOrdering -> com.android.tools.r8.r.a.a.b.Z1:
+    com.android.tools.r8.com.google.common.collect.NaturalOrdering INSTANCE -> a
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>():73:73 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.Ordering reverse():60:60 -> a
+    1:1:int compare(java.lang.Object,java.lang.Object):25:25 -> compare
+    2:2:int compare(java.lang.Comparable,java.lang.Comparable):37:37 -> compare
+    2:2:int compare(java.lang.Object,java.lang.Object):25 -> compare
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> compare
+    3:3:int compare(java.lang.Comparable,java.lang.Comparable):36 -> compare
+    3:3:int compare(java.lang.Object,java.lang.Object):25 -> compare
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> compare
+    4:4:int compare(java.lang.Comparable,java.lang.Comparable):35 -> compare
+    4:4:int compare(java.lang.Object,java.lang.Object):25 -> compare
+com.android.tools.r8.com.google.common.collect.Ordering -> com.android.tools.r8.r.a.a.b.a2:
+    1:1:void <init>():390:390 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.Ordering from(java.util.Comparator):181:181 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.Ordering reverse():404:404 -> a
+com.android.tools.r8.com.google.common.collect.RegularImmutableAsList -> com.android.tools.r8.r.a.a.b.b2:
+    com.android.tools.r8.com.google.common.collect.ImmutableCollection delegate -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableList delegateList -> c
+    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,com.android.tools.r8.com.google.common.collect.ImmutableList):35:37 -> <init>
+    1:1:int copyIntoArray(java.lang.Object[],int):68:68 -> a
+    1:1:void forEach(java.util.function.Consumer):62:62 -> forEach
+    1:1:java.lang.Object get(int):73:73 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):56:56 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():46:46 -> k
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList delegateList():50:50 -> l
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):56:56 -> listIterator
+    1:1:java.util.ListIterator listIterator(int):29 -> listIterator
+com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap -> com.android.tools.r8.r.a.a.b.e2:
+    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse -> j
+    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] keyTable -> e
+    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap EMPTY -> k
+    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] valueTable -> f
+    int mask -> h
+    java.util.Map$Entry[] entries -> g
+    int hashCode -> i
+    1:1:void <clinit>():44:44 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],java.util.Map$Entry[],int,int):119:124 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] access$100(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> a
+    2:3:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):61:62 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):64 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):65 -> a
+    6:6:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):67:67 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
+    7:7:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):70 -> a
+    8:19:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):76:87 -> a
+    20:20:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue():45:45 -> a
+    20:20:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):132 -> a
+    20:20:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
+    21:21:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):132:132 -> a
+    21:21:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
+    22:22:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):131:131 -> a
+    22:22:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
+    23:37:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):97:111 -> a
+    1:1:int access$200(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> b
+    1:1:int access$300(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> c
+    1:1:java.util.Map$Entry[] access$400(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> d
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():41:41 -> e
+    1:2:void forEach(java.util.function.BiConsumer):157:158 -> forEach
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    3:3:void forEach(java.util.function.BiConsumer):156 -> forEach
+    1:1:java.lang.Object get(java.lang.Object):139:139 -> get
+    1:1:int hashCode():169:169 -> hashCode
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():144:145 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():151:151 -> j
+    boolean isHashCodeFast() -> m
+    boolean isPartialView() -> n
+    1:1:int size():179:179 -> size
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():188:188 -> t
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of():66:66 -> t
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():189 -> t
+    3:4:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():191:192 -> t
+com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$1 -> com.android.tools.r8.r.a.a.b.c2:
+com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse -> com.android.tools.r8.r.a.a.b.e2$a:
+    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap this$0 -> e
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):195:195 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap,com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$1):195:195 -> <init>
+    1:1:void lambda$forEach$0(java.util.function.BiConsumer,java.lang.Object,java.lang.Object):210:210 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> e
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():195 -> e
+    1:1:void forEach(java.util.function.BiConsumer):210:210 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.BiConsumer):209 -> forEach
+    1:5:java.lang.Object get(java.lang.Object):215:219 -> get
+    6:6:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue():45:45 -> get
+    6:6:java.lang.Object get(java.lang.Object):222 -> get
+    7:7:java.lang.Object get(java.lang.Object):222:222 -> get
+    8:8:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> get
+    8:8:java.lang.Object get(java.lang.Object):223 -> get
+    9:9:java.lang.Object get(java.lang.Object):221:221 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():236:236 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():231:231 -> j
+    boolean isPartialView() -> n
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> size
+    1:1:int size():199 -> size
+    2:2:int size():199:199 -> size
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> t
+com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet -> com.android.tools.r8.r.a.a.b.e2$a$a:
+    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse this$1 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse):240:240 -> <init>
+    1:1:void forEach(java.util.function.Consumer):263:263 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():258:258 -> g
+    1:1:int hashCode():253:253 -> hashCode
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():268:268 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():258:258 -> iterator
+    1:1:java.util.Iterator iterator():239 -> iterator
+    boolean isHashCodeFast() -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():243:243 -> m
+com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet$1 -> com.android.tools.r8.r.a.a.b.d2:
+    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet this$2 -> b
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet):268:268 -> <init>
+    1:2:java.util.Map$Entry get(int):271:272 -> get
+    1:2:java.lang.Object get(int):268 -> get
+    3:3:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> get
+    3:3:java.util.Map$Entry get(int):272 -> get
+    3:3:java.lang.Object get(int):268 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():277:277 -> k
+com.android.tools.r8.com.google.common.collect.RegularImmutableList -> com.android.tools.r8.r.a.a.b.f2:
+    java.lang.Object[] array -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableList EMPTY -> c
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:2:void <init>(java.lang.Object[]):36:37 -> <init>
+    1:2:int copyIntoArray(java.lang.Object[],int):52:53 -> a
+    boolean isPartialView() -> f
+    1:1:java.lang.Object get(int):60:60 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):68:68 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):68:68 -> listIterator
+    1:1:java.util.ListIterator listIterator(int):28 -> listIterator
+    1:1:int size():42:42 -> size
+    1:1:java.util.Spliterator spliterator():73:73 -> spliterator
+com.android.tools.r8.com.google.common.collect.RegularImmutableMap -> com.android.tools.r8.r.a.a.b.i2:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap EMPTY -> h
+    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] table -> f
+    java.util.Map$Entry[] entries -> e
+    int mask -> g
+    1:1:void <clinit>():42:42 -> <clinit>
+    1:4:void <init>(java.util.Map$Entry[],com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):100:103 -> <init>
+    1:1:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> a
+    1:1:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109 -> a
+    2:2:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109:109 -> a
+    3:3:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):108:108 -> a
+    4:4:java.util.Map$Entry[] access$000(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):40:40 -> a
+    5:5:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntries(java.util.Map$Entry[]):54:54 -> a
+    6:11:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):63:68 -> a
+    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
+    12:12:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):71 -> a
+    13:13:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):73:73 -> a
+    14:14:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
+    14:14:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):74 -> a
+    15:32:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):77:94 -> a
+    33:33:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> a
+    33:33:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109 -> a
+    33:33:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):95 -> a
+    34:34:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109:109 -> a
+    34:34:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):95 -> a
+    35:35:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):108:108 -> a
+    35:35:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):95 -> a
+    36:36:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):97:97 -> a
+    37:38:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):130:131 -> a
+    39:39:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey() -> a
+    39:39:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):134 -> a
+    40:40:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):142:142 -> a
+    41:41:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue():45:45 -> a
+    41:41:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):143 -> a
+    42:42:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):133:133 -> a
+    1:2:void forEach(java.util.function.BiConsumer):152:153 -> forEach
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    3:3:void forEach(java.util.function.BiConsumer):151 -> forEach
+    1:1:java.lang.Object get(java.lang.Object):122:122 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():169:169 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():174:174 -> j
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():229:229 -> k
+    boolean isPartialView() -> n
+    1:1:int size():159:159 -> size
+com.android.tools.r8.com.google.common.collect.RegularImmutableMap$KeySet -> com.android.tools.r8.r.a.a.b.g2:
+    com.android.tools.r8.com.google.common.collect.RegularImmutableMap map -> c
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):181:182 -> <init>
+    1:1:boolean contains(java.lang.Object):192:192 -> contains
+    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMap.containsKey(java.lang.Object):652:652 -> contains
+    2:2:boolean contains(java.lang.Object):192 -> contains
+    boolean isPartialView() -> f
+    1:1:java.lang.Object get(int):187:187 -> get
+    1:1:int size():202:202 -> size
+com.android.tools.r8.com.google.common.collect.RegularImmutableMap$Values -> com.android.tools.r8.r.a.a.b.h2:
+    com.android.tools.r8.com.google.common.collect.RegularImmutableMap map -> b
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):236:237 -> <init>
+    boolean isPartialView() -> f
+    1:1:java.lang.Object get(int):242:242 -> get
+    1:1:int size():247:247 -> size
+com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset -> com.android.tools.r8.r.a.a.b.k2:
+    com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset EMPTY -> i
+    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] hashTable -> e
+    int size -> f
+    int hashCode -> g
+    com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet -> h
+    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] entries -> d
+    1:2:void <clinit>():37:38 -> <clinit>
+    1:45:void <init>(java.util.Collection):48:92 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] access$100(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset):36:36 -> a
+    1:11:int count(java.lang.Object):117:127 -> b
+    12:12:int count(java.lang.Object):125:125 -> b
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():140:141 -> c
+    1:2:java.util.Set elementSet():34 -> c
+    boolean isPartialView() -> f
+    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():140:141 -> h
+    1:1:int hashCode():175:175 -> hashCode
+    1:1:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):170:170 -> i
+    1:1:int size():135:135 -> size
+com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$1 -> com.android.tools.r8.r.a.a.b.j2:
+com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$ElementSet -> com.android.tools.r8.r.a.a.b.k2$a:
+    com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset this$0 -> c
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset):145:145 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset,com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$1):145:145 -> <init>
+    1:1:boolean contains(java.lang.Object):154:154 -> contains
+    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultiset.contains(java.lang.Object):273:273 -> contains
+    2:2:boolean contains(java.lang.Object):154 -> contains
+    boolean isPartialView() -> f
+    1:1:java.lang.Object get(int):149:149 -> get
+    1:1:int size():164:164 -> size
+com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$NonTerminalEntry -> com.android.tools.r8.r.a.a.b.l2:
+    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket -> c
+    1:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry):100:101 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket():106:106 -> c
+com.android.tools.r8.com.google.common.collect.RegularImmutableSet -> com.android.tools.r8.r.a.a.b.m2:
+    java.lang.Object[] table -> d
+    com.android.tools.r8.com.google.common.collect.RegularImmutableSet EMPTY -> g
+    java.lang.Object[] elements -> c
+    int hashCode -> f
+    int mask -> e
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:5:void <init>(java.lang.Object[],int,java.lang.Object[],int):43:47 -> <init>
+    1:2:int copyIntoArray(java.lang.Object[],int):84:85 -> a
+    1:10:boolean contains(java.lang.Object):52:61 -> contains
+    boolean isPartialView() -> f
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74:74 -> g
+    1:1:int hashCode():100:100 -> hashCode
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():90:90 -> i
+    2:2:void com.android.tools.r8.com.google.common.collect.RegularImmutableAsList.<init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> i
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():90 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74:74 -> iterator
+    1:1:java.util.Iterator iterator():30 -> iterator
+    boolean isHashCodeFast() -> j
+    1:1:int size():69:69 -> size
+    1:1:java.util.Spliterator spliterator():79:79 -> spliterator
+com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet -> com.android.tools.r8.r.a.a.b.n2:
+    com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet NATURAL_EMPTY_SET -> f
+    com.android.tools.r8.com.google.common.collect.ImmutableList elements -> e
+    1:2:void <clinit>():44:45 -> <clinit>
+    3:3:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> <clinit>
+    3:3:void <clinit>():45 -> <clinit>
+    4:4:void <clinit>():45:45 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Comparator):50:51 -> <init>
+    1:1:int copyIntoArray(java.lang.Object[],int):154:154 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> a
+    3:3:int size():77:77 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256 -> a
+    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> a
+    1:1:int headIndex(java.lang.Object,boolean):240:240 -> b
+    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> b
+    2:2:int headIndex(java.lang.Object,boolean):240 -> b
+    3:3:int headIndex(java.lang.Object,boolean):240:240 -> b
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
+    4:4:int headIndex(java.lang.Object,boolean):240 -> b
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> b
+    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> b
+    6:6:int size():77:77 -> b
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256 -> b
+    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> b
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> b
+    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> b
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSetImpl(java.lang.Object,boolean):236:236 -> b
+    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> b
+    1:1:int tailIndex(java.lang.Object,boolean):260:260 -> c
+    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> c
+    2:2:int tailIndex(java.lang.Object,boolean):260 -> c
+    3:3:int tailIndex(java.lang.Object,boolean):260:260 -> c
+    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
+    4:4:int tailIndex(java.lang.Object,boolean):260 -> c
+    1:1:java.lang.Object ceiling(java.lang.Object):224:224 -> ceiling
+    2:2:int size():77:77 -> ceiling
+    2:2:java.lang.Object ceiling(java.lang.Object):225 -> ceiling
+    3:3:java.lang.Object ceiling(java.lang.Object):225:225 -> ceiling
+    1:1:int unsafeBinarySearch(java.lang.Object):144:144 -> contains
+    1:1:boolean contains(java.lang.Object):83 -> contains
+    2:2:java.util.Comparator unsafeComparator():273:273 -> contains
+    2:2:int unsafeBinarySearch(java.lang.Object):144 -> contains
+    2:2:boolean contains(java.lang.Object):83 -> contains
+    3:3:int unsafeBinarySearch(java.lang.Object):144:144 -> contains
+    3:3:boolean contains(java.lang.Object):83 -> contains
+    1:2:boolean containsAll(java.util.Collection):95:96 -> containsAll
+    3:3:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> containsAll
+    3:3:boolean containsAll(java.util.Collection):98 -> containsAll
+    4:4:boolean containsAll(java.util.Collection):98:98 -> containsAll
+    5:5:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> containsAll
+    5:5:boolean containsAll(java.util.Collection):106 -> containsAll
+    6:14:boolean containsAll(java.util.Collection):108:116 -> containsAll
+    15:15:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550:550 -> containsAll
+    15:15:boolean containsAll(java.util.Collection):119 -> containsAll
+    16:16:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.util.Comparator,java.lang.Object,java.lang.Object):559:559 -> containsAll
+    16:16:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550 -> containsAll
+    16:16:boolean containsAll(java.util.Collection):119 -> containsAll
+    17:25:boolean containsAll(java.util.Collection):122:130 -> containsAll
+    26:26:boolean containsAll(java.util.Collection):99:99 -> containsAll
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator descendingIterator():62:62 -> descendingIterator
+    1:1:java.util.Iterator descendingIterator():41 -> descendingIterator
+    1:1:int size():77:77 -> e
+    1:1:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet getSubSet(int,int):277 -> e
+    2:5:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet getSubSet(int,int):280:283 -> e
+    1:5:boolean equals(java.lang.Object):162:166 -> equals
+    6:6:int size():77:77 -> equals
+    6:6:boolean equals(java.lang.Object):167 -> equals
+    7:14:boolean equals(java.lang.Object):167:174 -> equals
+    15:15:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> equals
+    15:15:boolean equals(java.lang.Object):176 -> equals
+    16:18:boolean equals(java.lang.Object):177:179 -> equals
+    19:19:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550:550 -> equals
+    19:19:boolean equals(java.lang.Object):180 -> equals
+    20:20:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.util.Comparator,java.lang.Object,java.lang.Object):559:559 -> equals
+    20:20:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550 -> equals
+    20:20:boolean equals(java.lang.Object):180 -> equals
+    21:21:boolean equals(java.lang.Object):191:191 -> equals
+    1:1:boolean isPartialView():149:149 -> f
+    1:4:java.lang.Object first():196:199 -> first
+    5:5:java.lang.Object first():197:197 -> first
+    1:2:java.lang.Object floor(java.lang.Object):218:219 -> floor
+    1:1:void forEach(java.util.function.Consumer):72:72 -> forEach
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> g
+    1:1:java.lang.Object higher(java.lang.Object):230:230 -> higher
+    2:2:int size():77:77 -> higher
+    2:2:java.lang.Object higher(java.lang.Object):231 -> higher
+    3:3:java.lang.Object higher(java.lang.Object):231:231 -> higher
+    1:1:int size():77:77 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():303 -> i
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():303:303 -> i
+    1:1:int indexOf(java.lang.Object):294:294 -> indexOf
+    2:2:java.util.Comparator unsafeComparator():273:273 -> indexOf
+    2:2:int indexOf(java.lang.Object):294 -> indexOf
+    3:3:int indexOf(java.lang.Object):294:294 -> indexOf
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> iterator
+    1:1:java.util.Iterator iterator():41 -> iterator
+    1:4:java.lang.Object last():204:207 -> last
+    5:5:int size():77:77 -> last
+    5:5:java.lang.Object last():207 -> last
+    6:6:java.lang.Object last():207:207 -> last
+    7:7:java.lang.Object last():205:205 -> last
+    1:2:java.lang.Object lower(java.lang.Object):212:213 -> lower
+    1:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet createDescendingSet():308:311 -> m
+    1:1:int size():77:77 -> size
+    1:1:java.util.Spliterator spliterator():67:67 -> spliterator
+com.android.tools.r8.com.google.common.collect.ReverseNaturalOrdering -> com.android.tools.r8.r.a.a.b.o2:
+    com.android.tools.r8.com.google.common.collect.ReverseNaturalOrdering INSTANCE -> a
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:1:void <init>():98:98 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.Ordering reverse():43 -> a
+    1:1:int compare(java.lang.Object,java.lang.Object):26:26 -> compare
+    2:2:int compare(java.lang.Comparable,java.lang.Comparable):38:38 -> compare
+    2:2:int compare(java.lang.Object,java.lang.Object):26 -> compare
+    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> compare
+    3:3:int compare(java.lang.Comparable,java.lang.Comparable):33 -> compare
+    3:3:int compare(java.lang.Object,java.lang.Object):26 -> compare
+com.android.tools.r8.com.google.common.collect.ReverseOrdering -> com.android.tools.r8.r.a.a.b.p2:
+    com.android.tools.r8.com.google.common.collect.Ordering forwardOrder -> a
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Ordering):31:32 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.Ordering reverse():43:43 -> a
+    1:1:int compare(java.lang.Object,java.lang.Object):37:37 -> compare
+    1:3:boolean equals(java.lang.Object):98:100 -> equals
+    1:1:int hashCode():90:90 -> hashCode
+    1:1:java.lang.String toString():107:107 -> toString
+com.android.tools.r8.com.google.common.collect.Sets$1 -> com.android.tools.r8.r.a.a.b.r2:
+    java.util.Set val$set1 -> a
+    java.util.Set val$set2 -> b
+    1:1:void <init>(java.util.Set,java.util.Set):744:744 -> <init>
+    1:1:boolean lambda$stream$0(java.util.Set,java.lang.Object):785:785 -> a
+    1:1:boolean contains(java.lang.Object):795:795 -> contains
+    1:1:boolean isEmpty():758:758 -> isEmpty
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():763:763 -> iterator
+    1:1:java.util.Iterator iterator():744 -> iterator
+    1:1:java.util.stream.Stream parallelStream():790:790 -> parallelStream
+    1:3:int size():747:749 -> size
+    1:1:java.util.stream.Stream stream():785:785 -> stream
+com.android.tools.r8.com.google.common.collect.Sets$1$1 -> com.android.tools.r8.r.a.a.b.q2:
+    java.util.Iterator itr2 -> d
+    java.util.Iterator itr1 -> c
+    com.android.tools.r8.com.google.common.collect.Sets$1 this$0 -> e
+    1:3:void <init>(com.android.tools.r8.com.google.common.collect.Sets$1):763:765 -> <init>
+    1:10:java.lang.Object computeNext():769:778 -> k
+com.android.tools.r8.com.google.common.collect.Sets$2 -> com.android.tools.r8.r.a.a.b.t2:
+    java.util.Set val$set1 -> a
+    java.util.Set val$set2 -> b
+    1:1:void <init>(java.util.Set,java.util.Set):842:842 -> <init>
+    1:1:boolean contains(java.lang.Object):889:889 -> contains
+    1:1:boolean containsAll(java.util.Collection):894:894 -> containsAll
+    1:1:boolean isEmpty():884:884 -> isEmpty
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():845:845 -> iterator
+    1:1:java.util.Iterator iterator():842 -> iterator
+    1:1:java.util.stream.Stream parallelStream():868:868 -> parallelStream
+    1:2:int size():874:875 -> size
+    1:1:java.util.stream.Stream stream():863:863 -> stream
+com.android.tools.r8.com.google.common.collect.Sets$2$1 -> com.android.tools.r8.r.a.a.b.s2:
+    java.util.Iterator itr -> c
+    com.android.tools.r8.com.google.common.collect.Sets$2 this$0 -> d
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$2):845:846 -> <init>
+    1:7:java.lang.Object computeNext():850:856 -> k
+com.android.tools.r8.com.google.common.collect.Sets$3 -> com.android.tools.r8.r.a.a.b.v2:
+    java.util.Set val$set1 -> a
+    java.util.Set val$set2 -> b
+    1:1:void <init>(java.util.Set,java.util.Set):914:914 -> <init>
+    1:1:boolean lambda$parallelStream$1(java.util.Set,java.lang.Object):939:939 -> a
+    1:1:boolean lambda$stream$0(java.util.Set,java.lang.Object):934:934 -> b
+    1:1:boolean contains(java.lang.Object):960:960 -> contains
+    1:1:boolean isEmpty():955:955 -> isEmpty
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():917:917 -> iterator
+    1:1:java.util.Iterator iterator():914 -> iterator
+    1:1:java.util.stream.Stream parallelStream():939:939 -> parallelStream
+    1:2:int size():945:946 -> size
+    1:1:java.util.stream.Stream stream():934:934 -> stream
+com.android.tools.r8.com.google.common.collect.Sets$3$1 -> com.android.tools.r8.r.a.a.b.u2:
+    java.util.Iterator itr -> c
+    com.android.tools.r8.com.google.common.collect.Sets$3 this$0 -> d
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$3):917:918 -> <init>
+    1:7:java.lang.Object computeNext():921:927 -> k
+com.android.tools.r8.com.google.common.collect.Sets$5 -> com.android.tools.r8.r.a.a.b.z2:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap val$index -> b
+    int val$size -> a
+    1:1:void <init>(int,com.android.tools.r8.com.google.common.collect.ImmutableMap):1676:1676 -> <init>
+    1:3:boolean contains(java.lang.Object):1679:1681 -> contains
+    1:1:java.util.Iterator iterator():1688:1688 -> iterator
+    1:1:int size():1755:1755 -> size
+    1:1:java.lang.String toString():1760:1760 -> toString
+com.android.tools.r8.com.google.common.collect.Sets$5$1 -> com.android.tools.r8.r.a.a.b.y2:
+    java.util.BitSet bits -> c
+    com.android.tools.r8.com.google.common.collect.Sets$5 this$0 -> d
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5):1688:1689 -> <init>
+    1:29:java.util.Set computeNext():1693:1721 -> k
+    1:29:java.lang.Object computeNext():1688 -> k
+com.android.tools.r8.com.google.common.collect.Sets$5$1$1 -> com.android.tools.r8.r.a.a.b.x2:
+    com.android.tools.r8.com.google.common.collect.Sets$5$1 this$1 -> b
+    java.util.BitSet val$copy -> a
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5$1,java.util.BitSet):1721:1721 -> <init>
+    1:2:boolean contains(java.lang.Object):1724:1725 -> contains
+    1:1:java.util.Iterator iterator():1730:1730 -> iterator
+    1:1:int size():1746:1746 -> size
+com.android.tools.r8.com.google.common.collect.Sets$5$1$1$1 -> com.android.tools.r8.r.a.a.b.w2:
+    com.android.tools.r8.com.google.common.collect.Sets$5$1$1 this$2 -> d
+    int i -> c
+    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5$1$1):1730:1731 -> <init>
+    1:5:java.lang.Object computeNext():1735:1739 -> k
+com.android.tools.r8.com.google.common.collect.Sets$ImprovedAbstractSet -> com.android.tools.r8.r.a.a.b.A2:
+    1:1:void <init>():77:77 -> <init>
+    1:1:boolean removeAll(java.util.Collection):80:80 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):85:85 -> retainAll
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
+    2:2:boolean retainAll(java.util.Collection):85 -> retainAll
+com.android.tools.r8.com.google.common.collect.Sets$SetView -> com.android.tools.r8.r.a.a.b.B2:
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Sets$1):599:599 -> <init>
+    2:2:void <init>():600:600 -> <init>
+    1:1:boolean add(java.lang.Object):640:640 -> add
+    1:1:boolean addAll(java.util.Collection):666:666 -> addAll
+    1:1:void clear():717:717 -> clear
+    1:1:boolean remove(java.lang.Object):653:653 -> remove
+    1:1:boolean removeAll(java.util.Collection):679:679 -> removeAll
+    1:1:boolean removeIf(java.util.function.Predicate):692:692 -> removeIf
+    1:1:boolean retainAll(java.util.Collection):705:705 -> retainAll
+com.android.tools.r8.com.google.common.collect.Sets$UnmodifiableNavigableSet -> com.android.tools.r8.r.a.a.b.C2:
+    java.util.SortedSet unmodifiableDelegate -> b
+    java.util.NavigableSet delegate -> a
+    com.android.tools.r8.com.google.common.collect.Sets$UnmodifiableNavigableSet descendingSet -> c
+    1:3:void <init>(java.util.NavigableSet):1828:1830 -> <init>
+    1:1:java.lang.Object ceiling(java.lang.Object):1872:1872 -> ceiling
+    1:1:java.util.Iterator descendingIterator():1904:1904 -> descendingIterator
+    1:4:java.util.NavigableSet descendingSet():1894:1897 -> descendingSet
+    1:1:java.util.SortedSet delegate():1835:1835 -> e
+    1:1:java.lang.Object delegate():1823 -> e
+    1:1:java.util.SortedSet delegate():1835:1835 -> f
+    1:1:java.util.Collection delegate():1823 -> f
+    1:1:java.lang.Object floor(java.lang.Object):1867:1867 -> floor
+    1:1:void forEach(java.util.function.Consumer):1857:1857 -> forEach
+    1:1:java.util.SortedSet delegate():1835:1835 -> g
+    1:1:java.util.Set delegate():1823 -> g
+    1:1:java.util.SortedSet delegate():1835:1835 -> h
+    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):1916:1916 -> headSet
+    1:1:java.lang.Object higher(java.lang.Object):1877:1877 -> higher
+    1:1:java.lang.Object lower(java.lang.Object):1862:1862 -> lower
+    1:1:java.util.stream.Stream parallelStream():1852:1852 -> parallelStream
+    1:1:java.lang.Object pollFirst():1882:1882 -> pollFirst
+    1:1:java.lang.Object pollLast():1887:1887 -> pollLast
+    1:1:boolean removeIf(java.util.function.Predicate):1842:1842 -> removeIf
+    1:1:java.util.stream.Stream stream():1847:1847 -> stream
+    1:3:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1910:1910 -> subSet
+    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):1921:1921 -> tailSet
+com.android.tools.r8.com.google.common.collect.SingletonImmutableBiMap -> com.android.tools.r8.r.a.a.b.D2:
+    java.lang.Object singleValue -> f
+    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse -> g
+    java.lang.Object singleKey -> e
+    1:4:void <init>(java.lang.Object,java.lang.Object):41:44 -> <init>
+    5:8:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableBiMap):47:50 -> <init>
+    1:1:boolean containsKey(java.lang.Object):70:70 -> containsKey
+    1:1:boolean containsValue(java.lang.Object):75:75 -> containsValue
+    1:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():100:102 -> e
+    1:3:com.android.tools.r8.com.google.common.collect.BiMap inverse():34 -> e
+    1:1:void forEach(java.util.function.BiConsumer):65:65 -> forEach
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
+    2:2:void forEach(java.util.function.BiConsumer):65 -> forEach
+    1:1:java.lang.Object get(java.lang.Object):55:55 -> get
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85:85 -> i
+    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> i
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85 -> i
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85:85 -> i
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():90:90 -> j
+    boolean isPartialView() -> n
+    1:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():100:102 -> t
+com.android.tools.r8.com.google.common.collect.SingletonImmutableList -> com.android.tools.r8.r.a.a.b.E2:
+    java.lang.Object element -> b
+    1:2:void <init>(java.lang.Object):37:38 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):64:64 -> e
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> e
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):65 -> e
+    boolean isPartialView() -> f
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49:49 -> g
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> g
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49 -> g
+    1:2:java.lang.Object get(int):43:44 -> get
+    1:1:java.util.Iterator iterator():31:31 -> iterator
+    1:1:java.util.Spliterator spliterator():54:54 -> spliterator
+    1:1:java.util.List subList(int,int):31:31 -> subList
+    1:1:java.lang.String toString():70:70 -> toString
+com.android.tools.r8.com.google.common.collect.SingletonImmutableSet -> com.android.tools.r8.r.a.a.b.F2:
+    java.lang.Object element -> c
+    int cachedHashCode -> d
+    1:2:void <init>(java.lang.Object):44:45 -> <init>
+    3:6:void <init>(java.lang.Object,int):48:51 -> <init>
+    1:1:int copyIntoArray(java.lang.Object[],int):81:81 -> a
+    1:1:boolean contains(java.lang.Object):61:61 -> contains
+    boolean isPartialView() -> f
+    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66:66 -> g
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> g
+    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66 -> g
+    1:3:int hashCode():88:90 -> hashCode
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():71:71 -> i
+    1:1:java.util.Iterator iterator():29:29 -> iterator
+    1:1:boolean isHashCodeFast():97:97 -> j
+    1:1:java.lang.String toString():102:102 -> toString
+com.android.tools.r8.com.google.common.collect.SortedIterable -> com.android.tools.r8.r.a.a.b.G2:
+com.android.tools.r8.com.google.common.collect.Streams$1Splitr -> com.android.tools.r8.r.a.a.b.H2:
+    com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex val$function -> d
+    java.lang.Object holder -> c
+    1:2:void <init>(java.util.Spliterator,long,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):369:370 -> <init>
+    1:1:void accept(java.lang.Object):375:375 -> accept
+    1:6:boolean tryAdvance(java.util.function.Consumer):380:385 -> tryAdvance
+com.android.tools.r8.com.google.common.collect.Streams$2 -> com.android.tools.r8.r.a.a.b.I2:
+    java.util.Iterator val$fromIterator -> b
+    long index -> a
+    com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex val$function -> c
+    1:2:void <init>(long,int,java.util.Iterator,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):352:353 -> <init>
+    1:2:boolean tryAdvance(java.util.function.Consumer):357:358 -> tryAdvance
+com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex -> com.android.tools.r8.r.a.a.b.J2:
+    java.lang.Object apply(java.lang.Object,long) -> a
+com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator -> com.android.tools.r8.r.a.a.b.K2:
+    long index -> b
+    java.util.Spliterator fromSpliterator -> a
+    1:3:void <init>(java.util.Spliterator,long):419:421 -> <init>
+    1:1:int characteristics():445:445 -> characteristics
+    1:1:long estimateSize():440:440 -> estimateSize
+    1:5:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():429:433 -> trySplit
+    1:5:java.util.Spliterator trySplit():413 -> trySplit
+    6:6:com.android.tools.r8.com.google.common.collect.Streams$1Splitr com.android.tools.r8.com.google.common.collect.Streams$1Splitr.createSplit(java.util.Spliterator,long):393:393 -> trySplit
+    6:6:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator com.android.tools.r8.com.google.common.collect.Streams$1Splitr.createSplit(java.util.Spliterator,long):366 -> trySplit
+    6:6:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():433 -> trySplit
+    6:6:java.util.Spliterator trySplit():413 -> trySplit
+    7:7:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():434:434 -> trySplit
+    7:7:java.util.Spliterator trySplit():413 -> trySplit
+com.android.tools.r8.com.google.common.collect.TransformedIterator -> com.android.tools.r8.r.a.a.b.L2:
+    java.util.Iterator backingIterator -> a
+    1:2:void <init>(java.util.Iterator):35:36 -> <init>
+    java.lang.Object transform(java.lang.Object) -> a
+    1:1:boolean hasNext():43:43 -> hasNext
+    1:1:java.lang.Object next():48:48 -> next
+    1:1:void remove():53:53 -> remove
+com.android.tools.r8.com.google.common.collect.UnmodifiableIterator -> com.android.tools.r8.r.a.a.b.M2:
+    1:1:void <init>():35:35 -> <init>
+    1:1:void remove():46:46 -> remove
+com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator -> com.android.tools.r8.r.a.a.b.N2:
+    1:1:void <init>():33:33 -> <init>
+    1:1:void add(java.lang.Object):44:44 -> add
+    1:1:void set(java.lang.Object):56:56 -> set
+com.android.tools.r8.com.google.common.hash.AbstractHashFunction -> com.android.tools.r8.r.a.a.c.a:
+    1:1:void <init>():28:28 -> <init>
+    1:1:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):42:42 -> a
+com.android.tools.r8.com.google.common.hash.AbstractHasher -> com.android.tools.r8.r.a.a.c.b:
+    1:1:void <init>():29:29 -> <init>
+    com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int) -> a
+    1:1:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):55:55 -> a
+    2:2:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[]):60:60 -> a
+com.android.tools.r8.com.google.common.hash.HashCode -> com.android.tools.r8.r.a.a.c.e:
+    char[] hexDigits -> a
+    1:1:void <clinit>():429:429 -> <clinit>
+    1:1:void <init>():38:38 -> <init>
+    byte[] asBytes() -> a
+    boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode) -> a
+    1:1:com.android.tools.r8.com.google.common.hash.HashCode fromInt(int):119:119 -> a
+    2:2:com.android.tools.r8.com.google.common.hash.HashCode fromBytesNoCopy(byte[]):256:256 -> a
+    int asInt() -> b
+    int bits() -> c
+    1:1:byte[] getBytesInternal():103:103 -> d
+    1:3:boolean equals(java.lang.Object):380:382 -> equals
+    1:8:int hashCode():396:403 -> hashCode
+    1:6:java.lang.String toString():421:426 -> toString
+com.android.tools.r8.com.google.common.hash.HashCode$BytesHashCode -> com.android.tools.r8.r.a.a.c.c:
+    byte[] bytes -> b
+    1:2:void <init>(byte[]):262:263 -> <init>
+    1:1:byte[] asBytes():273:273 -> a
+    2:8:boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode):320:326 -> a
+    1:5:int asInt():278:282 -> b
+    1:1:int bits():268:268 -> c
+    1:1:byte[] getBytesInternal():313:313 -> d
+com.android.tools.r8.com.google.common.hash.HashCode$IntHashCode -> com.android.tools.r8.r.a.a.c.d:
+    int hash -> b
+    1:2:void <init>(int):125:126 -> <init>
+    1:1:byte[] asBytes():136:136 -> a
+    2:2:boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode):168:168 -> a
+    1:1:int asInt():146:146 -> b
+    int bits() -> c
+com.android.tools.r8.com.google.common.hash.HashFunction -> com.android.tools.r8.r.a.a.c.f:
+    com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset) -> a
+    com.android.tools.r8.com.google.common.hash.Hasher newHasher() -> a
+com.android.tools.r8.com.google.common.hash.Hasher -> com.android.tools.r8.r.a.a.c.g:
+    com.android.tools.r8.com.google.common.hash.HashCode hash() -> a
+    com.android.tools.r8.com.google.common.hash.Hasher putInt(int) -> a
+    com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset) -> a
+com.android.tools.r8.com.google.common.hash.Hashing -> com.android.tools.r8.r.a.a.c.i:
+    int GOOD_FAST_HASH_SEED -> a
+    1:1:void <clinit>():90:90 -> <clinit>
+    1:1:com.android.tools.r8.com.google.common.hash.HashFunction murmur3_32():111:111 -> a
+    1:1:com.android.tools.r8.com.google.common.hash.HashFunction sha256():200:200 -> b
+com.android.tools.r8.com.google.common.hash.Hashing$Sha256Holder -> com.android.tools.r8.r.a.a.c.h:
+    com.android.tools.r8.com.google.common.hash.HashFunction SHA_256 -> a
+    1:1:void <clinit>():204:204 -> <clinit>
+com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction -> com.android.tools.r8.r.a.a.c.l:
+    java.security.MessageDigest prototype -> a
+    int bytes -> b
+    boolean supportsClone -> c
+    java.lang.String toString -> d
+    1:5:void <init>(java.lang.String,java.lang.String):39:43 -> <init>
+    1:1:boolean supportsClone(java.security.MessageDigest):58:58 -> a
+    2:4:java.security.MessageDigest getMessageDigest(java.lang.String):77:79 -> a
+    5:12:com.android.tools.r8.com.google.common.hash.Hasher newHasher():85:92 -> a
+    13:13:java.security.MessageDigest getMessageDigest(java.lang.String):77:77 -> a
+    13:13:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92 -> a
+    14:14:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92:92 -> a
+    15:15:java.security.MessageDigest getMessageDigest(java.lang.String):79:79 -> a
+    15:15:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92 -> a
+    1:1:java.lang.String toString():72:72 -> toString
+com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$1 -> com.android.tools.r8.r.a.a.c.j:
+com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$MessageDigestHasher -> com.android.tools.r8.r.a.a.c.k:
+    java.security.MessageDigest digest -> b
+    java.nio.ByteBuffer com.android.tools.r8.com.google.common.hash.AbstractByteHasher.scratch -> a
+    int bytes -> c
+    boolean done -> d
+    1:2:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.<init>():35:36 -> <init>
+    1:2:void <init>(java.security.MessageDigest,int):125 -> <init>
+    3:4:void <init>(java.security.MessageDigest,int):126:127 -> <init>
+    5:5:void <init>(java.security.MessageDigest,int,com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$1):120:120 -> <init>
+    1:1:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(byte[]):47:47 -> a
+    1:1:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(byte[]):0 -> a
+    1:1:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):80 -> a
+    1:1:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):0 -> a
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    2:2:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):79 -> a
+    2:2:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):0 -> a
+    3:4:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[],int,int):86:87 -> a
+    3:4:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[],int,int):0 -> a
+    5:6:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putInt(int):117:118 -> a
+    5:6:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putInt(int):0 -> a
+    7:7:void checkNotDone():149:149 -> a
+    7:7:com.android.tools.r8.com.google.common.hash.HashCode hash():154 -> a
+    8:11:com.android.tools.r8.com.google.common.hash.HashCode hash():155:158 -> a
+    12:12:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> a
+    12:12:void checkNotDone():149 -> a
+    12:12:com.android.tools.r8.com.google.common.hash.HashCode hash():154 -> a
+    1:3:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(int):102:104 -> b
+    4:4:void checkNotDone():149:149 -> b
+    4:4:void update(byte[],int,int):138 -> b
+    5:5:void update(byte[],int,int):139:139 -> b
+    6:6:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> b
+    6:6:void checkNotDone():149 -> b
+    6:6:void update(byte[],int,int):138 -> b
+com.android.tools.r8.com.google.common.hash.Murmur3_32HashFunction -> com.android.tools.r8.r.a.a.c.n:
+    com.android.tools.r8.com.google.common.hash.HashFunction MURMUR3_32 -> b
+    int seed -> a
+    1:3:void <clinit>():53:55 -> <clinit>
+    1:2:void <init>(int):65:66 -> <init>
+    1:1:int access$000(int):52:52 -> a
+    2:2:int access$100(int,int):52:52 -> a
+    3:3:int access$200(byte[],int):52:52 -> a
+    4:4:long access$300(char):52:52 -> a
+    5:5:com.android.tools.r8.com.google.common.hash.Hasher newHasher():76:76 -> a
+    6:49:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):144:187 -> a
+    50:50:com.android.tools.r8.com.google.common.hash.HashCode com.android.tools.r8.com.google.common.hash.AbstractHashFunction.hashBytes(byte[]):57:57 -> a
+    50:50:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):187 -> a
+    51:51:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):190:190 -> a
+    52:78:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):180:206 -> a
+    79:79:com.android.tools.r8.com.google.common.hash.HashCode com.android.tools.r8.com.google.common.hash.AbstractHashFunction.hashBytes(byte[]):57:57 -> a
+    79:79:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):206 -> a
+    80:93:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):212:225 -> a
+    1:1:long access$400(char):52:52 -> b
+    2:2:long access$500(int):52:52 -> b
+    3:3:com.android.tools.r8.com.google.common.hash.HashCode access$600(int,int):52:52 -> b
+    4:4:int getIntLittleEndian(byte[],int):229:229 -> b
+    long charToThreeUtf8Bytes(char) -> c
+    long codePointToFourUtf8Bytes(int) -> c
+    1:1:com.android.tools.r8.com.google.common.hash.HashCode fmix(int,int):254:254 -> c
+    long charToTwoUtf8Bytes(char) -> d
+    1:1:int mixK1(int):234:234 -> d
+    2:2:int mixH1(int,int):241:241 -> d
+    1:3:boolean equals(java.lang.Object):86:88 -> equals
+    1:1:int hashCode():95:95 -> hashCode
+    1:1:java.lang.String toString():81:81 -> toString
+com.android.tools.r8.com.google.common.hash.Murmur3_32HashFunction$Murmur3_32Hasher -> com.android.tools.r8.r.a.a.c.m:
+    long buffer -> b
+    boolean isDone -> e
+    int length -> d
+    int shift -> c
+    int h1 -> a
+    1:4:void <init>(int):265:268 -> <init>
+    1:8:void update(int,long):273:280 -> a
+    9:15:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int):292:298 -> a
+    16:16:com.android.tools.r8.com.google.common.hash.Hasher putByte(byte):286:286 -> a
+    16:16:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int):298 -> a
+    17:17:com.android.tools.r8.com.google.common.hash.Hasher putInt(int):319:319 -> a
+    18:48:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):339:369 -> a
+    49:49:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractHasher.putBytes(byte[]):60:60 -> a
+    49:49:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):369 -> a
+    50:50:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):373:373 -> a
+    51:51:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):364:364 -> a
+    52:52:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractHasher.putString(java.lang.CharSequence,java.nio.charset.Charset):55:55 -> a
+    52:52:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):378 -> a
+    53:56:com.android.tools.r8.com.google.common.hash.HashCode hash():384:387 -> a
+com.android.tools.r8.com.google.common.io.BaseEncoding -> com.android.tools.r8.r.a.a.d.e:
+    com.android.tools.r8.com.google.common.io.BaseEncoding BASE64_URL -> a
+    1:45:void <clinit>():315:359 -> <clinit>
+    46:46:void com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.<init>(java.lang.String,java.lang.String,java.lang.Character):563:563 -> <clinit>
+    46:46:void <clinit>():359 -> <clinit>
+    47:48:void <clinit>():377:378 -> <clinit>
+    49:49:void com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.<init>(java.lang.String,java.lang.String,java.lang.Character):563:563 -> <clinit>
+    49:49:void <clinit>():378 -> <clinit>
+    50:50:void <clinit>():396:396 -> <clinit>
+    1:1:void <init>():122:122 -> <init>
+    void encodeTo(java.lang.Appendable,byte[],int,int) -> a
+    1:1:java.lang.String encode(byte[]):144:144 -> a
+    2:3:java.lang.String encode(byte[],int,int):152:153 -> a
+    2:3:java.lang.String encode(byte[]):144 -> a
+    4:4:int com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.maxEncodedSize(int):582:582 -> a
+    4:4:java.lang.String encode(byte[],int,int):153 -> a
+    4:4:java.lang.String encode(byte[]):144 -> a
+    5:11:java.lang.String encode(byte[],int,int):153:159 -> a
+    5:11:java.lang.String encode(byte[]):144 -> a
+    12:12:java.lang.String encode(byte[],int,int):157:157 -> a
+    12:12:java.lang.String encode(byte[]):144 -> a
+    13:13:com.android.tools.r8.com.google.common.io.BaseEncoding base64Url():355:355 -> a
+    com.android.tools.r8.com.google.common.io.BaseEncoding omitPadding() -> b
+com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet -> com.android.tools.r8.r.a.a.d.a:
+    char[] chars -> b
+    int bytesPerChunk -> f
+    byte[] decodabet -> g
+    java.lang.String name -> a
+    int bitsPerChar -> d
+    int charsPerChunk -> e
+    int mask -> c
+    1:36:void <init>(java.lang.String,char[]):426:461 -> <init>
+    37:37:void <init>(java.lang.String,char[]):444:444 -> <init>
+    38:38:void <init>(java.lang.String,char[]):432:432 -> <init>
+    1:1:char[] access$000(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):415:415 -> a
+    2:2:char encode(int):467:467 -> a
+    3:3:boolean matches(char):533:533 -> a
+    1:3:boolean equals(java.lang.Object):543:545 -> equals
+    1:1:int hashCode():552:552 -> hashCode
+    1:1:java.lang.String toString():538:538 -> toString
+com.android.tools.r8.com.google.common.io.BaseEncoding$Base16Encoding -> com.android.tools.r8.r.a.a.d.b:
+    char[] encoding -> d
+    1:1:void <init>(java.lang.String,java.lang.String):847:847 -> <init>
+    2:2:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):851:851 -> <init>
+    3:14:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):844:855 -> <init>
+    1:5:void encodeTo(java.lang.Appendable,byte[],int,int):862:866 -> a
+    6:6:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):886:886 -> a
+com.android.tools.r8.com.google.common.io.BaseEncoding$Base64Encoding -> com.android.tools.r8.r.a.a.d.c:
+    1:1:void <init>(java.lang.String,java.lang.String,java.lang.Character):892:892 -> <init>
+    2:3:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):896:897 -> <init>
+    1:11:void encodeTo(java.lang.Appendable,byte[],int,int):903:913 -> a
+    12:12:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):943:943 -> a
+com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding -> com.android.tools.r8.r.a.a.d.d:
+    java.lang.Character paddingChar -> c
+    com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet alphabet -> b
+    1:4:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):566:569 -> <init>
+    5:9:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):568:572 -> <init>
+    1:3:void encodeTo(java.lang.Appendable,byte[],int,int):633:635 -> a
+    4:4:void encodeTo(java.lang.Appendable,byte[],int,int):634:634 -> a
+    5:5:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):810:810 -> a
+    1:19:void encodeChunkTo(java.lang.Appendable,byte[],int,int):641:659 -> b
+    20:20:com.android.tools.r8.com.google.common.io.BaseEncoding omitPadding():762:762 -> b
+    1:4:boolean equals(java.lang.Object):829:832 -> equals
+    1:1:int hashCode():839:839 -> hashCode
+    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
+    2:2:int hashCode():839 -> hashCode
+    1:10:java.lang.String toString():815:824 -> toString
+com.android.tools.r8.com.google.common.io.ByteStreams -> com.android.tools.r8.r.a.a.d.g:
+    java.io.OutputStream NULL_OUTPUT_STREAM -> a
+    1:1:void <clinit>():594:594 -> <clinit>
+    1:1:byte[] createBuffer():56:56 -> a
+    1:1:long copy(java.io.InputStream,java.io.OutputStream):103 -> a
+    2:6:long copy(java.io.InputStream,java.io.OutputStream):106:110 -> a
+    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    7:7:long copy(java.io.InputStream,java.io.OutputStream):101 -> a
+    8:10:byte[] toByteArray(java.io.InputStream):165:167 -> a
+com.android.tools.r8.com.google.common.io.ByteStreams$1 -> com.android.tools.r8.r.a.a.d.f:
+    1:1:void <init>():595:595 -> <init>
+    1:1:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> write
+    1:1:void write(byte[]):603 -> write
+    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> write
+    2:2:void write(byte[],int,int):609 -> write
+com.android.tools.r8.com.google.common.io.CharSequenceReader -> com.android.tools.r8.r.a.a.d.h:
+    java.lang.CharSequence seq -> a
+    int pos -> b
+    int mark -> c
+    1:2:void <init>(java.lang.CharSequence):43:44 -> <init>
+    1:2:void checkOpen():48:49 -> a
+    1:1:boolean hasRemaining():54:54 -> b
+    1:1:int remaining():58:58 -> c
+    1:1:void close():130:130 -> close
+    1:3:void mark(int):117:119 -> mark
+    1:7:int read(java.nio.CharBuffer):64:70 -> read
+    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> read
+    8:8:int read(java.nio.CharBuffer):63 -> read
+    9:10:int read():77:78 -> read
+    11:18:int read(char[],int,int):83:90 -> read
+    1:1:boolean ready():106:106 -> ready
+    1:2:void reset():124:125 -> reset
+    1:4:long skip(long):97:100 -> skip
+com.android.tools.r8.com.google.common.io.CharSource -> com.android.tools.r8.r.a.a.d.k:
+    1:1:void <init>():76:76 -> <init>
+    java.io.Reader openStream() -> a
+    1:1:com.android.tools.r8.com.google.common.io.CharSource wrap(java.lang.CharSequence):479:479 -> a
+com.android.tools.r8.com.google.common.io.CharSource$CharSequenceCharSource -> com.android.tools.r8.r.a.a.d.i:
+    java.lang.CharSequence seq -> a
+    1:1:void <clinit>():525:525 -> <clinit>
+    1:2:void <init>(java.lang.CharSequence):529:530 -> <init>
+    1:1:java.io.Reader openStream():535:535 -> a
+    1:1:java.lang.String toString():609:609 -> toString
+    2:20:java.lang.String com.android.tools.r8.com.google.common.base.Ascii.truncate(java.lang.CharSequence,int,java.lang.String):553:571 -> toString
+    2:20:java.lang.String toString():609 -> toString
+    21:21:java.lang.String toString():609:609 -> toString
+    22:22:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> toString
+    22:22:java.lang.String com.android.tools.r8.com.google.common.base.Ascii.truncate(java.lang.CharSequence,int,java.lang.String):546 -> toString
+    22:22:java.lang.String toString():609 -> toString
+com.android.tools.r8.com.google.common.io.CharSource$StringCharSource -> com.android.tools.r8.r.a.a.d.j:
+    1:1:void <init>(java.lang.String):630:630 -> <init>
+    1:1:java.io.Reader openStream():635:635 -> a
+com.android.tools.r8.com.google.common.io.Closeables -> com.android.tools.r8.r.a.a.d.l:
+    java.util.logging.Logger logger -> a
+    1:1:void <clinit>():37:37 -> <clinit>
+com.android.tools.r8.com.google.common.io.Closer -> com.android.tools.r8.r.a.a.d.p:
+    com.android.tools.r8.com.google.common.io.Closer$Suppressor suppressor -> a
+    java.util.Deque stack -> b
+    com.android.tools.r8.com.google.common.io.Closer$Suppressor SUPPRESSOR -> c
+    1:1:boolean com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor.isAvailable():271:271 -> <clinit>
+    1:1:void <clinit>():96 -> <clinit>
+    2:2:void <clinit>():96:96 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.com.google.common.io.Closer$Suppressor):114:114 -> <init>
+    2:7:void <init>(com.android.tools.r8.com.google.common.io.Closer$Suppressor):110:115 -> <init>
+    1:1:com.android.tools.r8.com.google.common.io.Closer create():104:104 -> a
+    2:2:java.io.Closeable register(java.io.Closeable):128:128 -> a
+    1:16:void close():213:228 -> close
+com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor -> com.android.tools.r8.r.a.a.d.m:
+    com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor INSTANCE -> a
+    1:1:void <clinit>():251:251 -> <clinit>
+    1:1:void <init>():249:249 -> <init>
+    1:1:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):256:256 -> a
+com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor -> com.android.tools.r8.r.a.a.d.n:
+    com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor INSTANCE -> a
+    java.lang.reflect.Method addSuppressed -> b
+    1:1:void <clinit>():268:268 -> <clinit>
+    2:2:java.lang.reflect.Method getAddSuppressed():278:278 -> <clinit>
+    2:2:void <clinit>():274 -> <clinit>
+    3:3:void <clinit>():274:274 -> <clinit>
+    1:1:void <init>():266:266 -> <init>
+    1:1:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):291:291 -> a
+    2:2:void com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor.suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):256:256 -> a
+    2:2:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):294 -> a
+com.android.tools.r8.com.google.common.io.Closer$Suppressor -> com.android.tools.r8.r.a.a.d.o:
+    void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable) -> a
+com.android.tools.r8.com.google.common.math.IntMath -> com.android.tools.r8.r.a.a.e.b:
+    int[] biggestBinomials -> a
+    1:1:void <clinit>():675:675 -> <clinit>
+    boolean isPowerOfTwo(int) -> a
+    1:24:int log2(int,java.math.RoundingMode):121:144 -> a
+    25:25:int log2(int,java.math.RoundingMode):137:137 -> a
+    26:26:int log2(int,java.math.RoundingMode):131:131 -> a
+    27:31:int log2(int,java.math.RoundingMode):123:127 -> a
+    32:32:void com.android.tools.r8.com.google.common.math.MathPreconditions.checkRoundingUnnecessary(boolean):81:81 -> a
+    32:32:int log2(int,java.math.RoundingMode):123 -> a
+    33:33:int com.android.tools.r8.com.google.common.math.MathPreconditions.checkPositive(java.lang.String,int):32:32 -> a
+    33:33:int log2(int,java.math.RoundingMode):120 -> a
+    34:80:int divide(int,int,java.math.RoundingMode):322:368 -> a
+    81:86:int divide(int,int,java.math.RoundingMode):357:362 -> a
+    87:87:void com.android.tools.r8.com.google.common.math.MathPreconditions.checkRoundingUnnecessary(boolean):81:81 -> a
+    87:87:int divide(int,int,java.math.RoundingMode):340 -> a
+    88:88:int divide(int,int,java.math.RoundingMode):320:320 -> a
+    89:89:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    89:89:int divide(int,int,java.math.RoundingMode):318 -> a
+    90:108:int binomial(int,int):649:667 -> a
+com.android.tools.r8.com.google.common.math.IntMath$1 -> com.android.tools.r8.r.a.a.e.a:
+    int[] $SwitchMap$java$math$RoundingMode -> a
+    1:1:void <clinit>():121:121 -> <clinit>
+com.android.tools.r8.com.google.common.math.MathPreconditions -> com.android.tools.r8.r.a.a.e.c:
+    1:1:int checkNonNegative(java.lang.String,int):53:53 -> a
+com.android.tools.r8.com.google.gson.JsonArray -> com.android.tools.r8.r.a.b.a:
+    java.util.List elements -> a
+    1:2:void <init>():39:40 -> <init>
+    1:3:void add(com.android.tools.r8.com.google.gson.JsonElement):95:97 -> a
+    1:4:boolean getAsBoolean():358:361 -> e
+    1:1:boolean equals(java.lang.Object):366:366 -> equals
+    1:4:int getAsInt():310:313 -> f
+    1:1:int hashCode():371:371 -> hashCode
+    1:4:long getAsLong():294:297 -> i
+    1:1:java.util.Iterator iterator():171:171 -> iterator
+    1:4:java.lang.String getAsString():212:215 -> j
+    1:1:int size():161:161 -> size
+com.android.tools.r8.com.google.gson.JsonElement -> com.android.tools.r8.r.a.b.b:
+    1:1:void <init>():33:33 -> <init>
+    1:1:boolean getAsBoolean():152:152 -> e
+    1:1:int getAsInt():243:243 -> f
+    1:1:boolean isJsonArray():46:46 -> g
+    1:1:com.android.tools.r8.com.google.gson.JsonArray getAsJsonArray():103 -> g
+    2:4:com.android.tools.r8.com.google.gson.JsonArray getAsJsonArray():104:106 -> g
+    1:1:boolean isJsonObject():55:55 -> h
+    1:1:com.android.tools.r8.com.google.gson.JsonObject getAsJsonObject():87 -> h
+    2:4:com.android.tools.r8.com.google.gson.JsonObject getAsJsonObject():88:90 -> h
+    1:1:long getAsLong():230:230 -> i
+    1:1:java.lang.String getAsString():191:191 -> j
+    1:3:java.lang.String toString():321:323 -> toString
+    4:4:void com.android.tools.r8.com.google.gson.internal.Streams.write(com.android.tools.r8.com.google.gson.JsonElement,com.android.tools.r8.com.google.gson.stream.JsonWriter):72:72 -> toString
+    4:4:java.lang.String toString():324 -> toString
+    5:7:java.lang.String toString():325:327 -> toString
+com.android.tools.r8.com.google.gson.JsonIOException -> com.android.tools.r8.r.a.b.c:
+    1:1:void <init>(java.lang.Throwable):43:43 -> <init>
+com.android.tools.r8.com.google.gson.JsonNull -> com.android.tools.r8.r.a.b.d:
+    com.android.tools.r8.com.google.gson.JsonNull INSTANCE -> a
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:1:void <init>():39:39 -> <init>
+    1:1:boolean equals(java.lang.Object):61:61 -> equals
+    1:1:int hashCode():53:53 -> hashCode
+com.android.tools.r8.com.google.gson.JsonObject -> com.android.tools.r8.r.a.b.e:
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap members -> a
+    1:2:void <init>():32:33 -> <init>
+    1:3:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):55:57 -> a
+    4:4:void addProperty(java.lang.String,java.lang.String):79:79 -> a
+    5:5:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):57:57 -> a
+    5:5:void addProperty(java.lang.String,java.lang.String):79 -> a
+    6:6:void addProperty(java.lang.String,java.lang.Number):90:90 -> a
+    7:7:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):57:57 -> a
+    7:7:void addProperty(java.lang.String,java.lang.Number):90 -> a
+    8:8:void addProperty(java.lang.String,java.lang.Boolean):101:101 -> a
+    9:9:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):57:57 -> a
+    9:9:void addProperty(java.lang.String,java.lang.Boolean):101 -> a
+    10:10:com.android.tools.r8.com.google.gson.JsonElement createJsonElement(java.lang.Object):122:122 -> a
+    11:11:com.android.tools.r8.com.google.gson.JsonElement get(java.lang.String):161:161 -> a
+    1:1:com.android.tools.r8.com.google.gson.JsonArray getAsJsonArray(java.lang.String):181:181 -> b
+    1:1:boolean has(java.lang.String):151:151 -> c
+    1:1:java.util.Set entrySet():132:132 -> entrySet
+    1:2:boolean equals(java.lang.Object):196:197 -> equals
+    1:1:int hashCode():202:202 -> hashCode
+com.android.tools.r8.com.google.gson.JsonParseException -> com.android.tools.r8.r.a.b.f:
+    1:1:void <init>(java.lang.String):42:42 -> <init>
+    2:2:void <init>(java.lang.String,java.lang.Throwable):52:52 -> <init>
+    3:3:void <init>(java.lang.Throwable):62:62 -> <init>
+com.android.tools.r8.com.google.gson.JsonParser -> com.android.tools.r8.r.a.b.g:
+    1:1:void <init>():34:34 -> <init>
+    1:1:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45:45 -> a
+    2:3:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):58:59 -> a
+    2:3:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
+    4:78:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonNull():0:74 -> a
+    4:78:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):60 -> a
+    4:78:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
+    79:88:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):60:69 -> a
+    79:88:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
+    89:89:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):67:67 -> a
+    89:89:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
+    90:90:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):65:65 -> a
+    90:90:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
+    91:100:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):81:90 -> a
+    101:101:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):88:88 -> a
+    102:106:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):86:90 -> a
+com.android.tools.r8.com.google.gson.JsonPrimitive -> com.android.tools.r8.r.a.b.h:
+    java.lang.Class[] PRIMITIVE_TYPES -> b
+    java.lang.Object value -> a
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:2:void <init>(java.lang.Boolean):46:47 -> <init>
+    3:4:void <init>(java.lang.Number):55:56 -> <init>
+    5:6:void <init>(java.lang.String):64:65 -> <init>
+    7:8:void <init>(java.lang.Object):84:85 -> <init>
+    1:7:void setValue(java.lang.Object):94:100 -> a
+    8:14:boolean isPrimitiveOrString(java.lang.Object):274:280 -> a
+    8:14:void setValue(java.lang.Object):101 -> a
+    15:15:void setValue(java.lang.Object):102:102 -> a
+    16:16:void com.android.tools.r8.com.google.gson.internal.$Gson$Preconditions.checkArgument(boolean):46:46 -> a
+    16:16:void setValue(java.lang.Object):100 -> a
+    17:19:boolean isIntegral(com.android.tools.r8.com.google.gson.JsonPrimitive):334:336 -> a
+    1:1:boolean isBoolean():112:112 -> e
+    1:1:boolean getAsBoolean():132 -> e
+    2:2:java.lang.Boolean getAsBooleanWrapper():122:122 -> e
+    2:2:boolean getAsBoolean():133 -> e
+    3:6:boolean getAsBoolean():133:136 -> e
+    1:18:boolean equals(java.lang.Object):309:326 -> equals
+    1:1:boolean isNumber():146:146 -> f
+    1:1:int getAsInt():260 -> f
+    2:2:int getAsInt():260:260 -> f
+    1:13:int hashCode():289:301 -> hashCode
+    1:1:boolean isNumber():146:146 -> i
+    1:1:long getAsLong():238 -> i
+    2:2:long getAsLong():238:238 -> i
+    1:1:boolean isNumber():146:146 -> j
+    1:1:java.lang.String getAsString():176 -> j
+    2:2:java.lang.String getAsString():177:177 -> j
+    3:3:boolean isBoolean():112:112 -> j
+    3:3:java.lang.String getAsString():178 -> j
+    4:4:java.lang.Boolean getAsBooleanWrapper():122:122 -> j
+    4:4:java.lang.String getAsString():179 -> j
+    5:7:java.lang.String getAsString():179:181 -> j
+    1:1:java.lang.Number getAsNumber():157:157 -> k
+    1:1:boolean isBoolean():112:112 -> l
+    1:1:boolean isNumber():146:146 -> m
+com.android.tools.r8.com.google.gson.JsonSyntaxException -> com.android.tools.r8.r.a.b.i:
+    1:1:void <init>(java.lang.String):30:30 -> <init>
+    2:2:void <init>(java.lang.Throwable):45:45 -> <init>
+com.android.tools.r8.com.google.gson.TypeAdapter -> com.android.tools.r8.r.a.b.k:
+    1:1:void <init>():119:119 -> <init>
+    java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader) -> a
+    void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object) -> a
+    1:1:com.android.tools.r8.com.google.gson.TypeAdapter nullSafe():186:186 -> a
+com.android.tools.r8.com.google.gson.TypeAdapter$1 -> com.android.tools.r8.r.a.b.j:
+    com.android.tools.r8.com.google.gson.TypeAdapter this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.gson.TypeAdapter):186:186 -> <init>
+    1:3:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):189:191 -> a
+    4:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):195:199 -> a
+com.android.tools.r8.com.google.gson.internal.LazilyParsedNumber -> com.android.tools.r8.r.a.b.l.a:
+    java.lang.String value -> a
+    1:2:void <init>(java.lang.String):30:31 -> <init>
+    1:1:double doubleValue():63:63 -> doubleValue
+    1:3:boolean equals(java.lang.Object):90:92 -> equals
+    1:1:float floatValue():58:58 -> floatValue
+    1:1:int hashCode():82:82 -> hashCode
+    1:6:int intValue():37:42 -> intValue
+    1:3:long longValue():50:52 -> longValue
+    1:1:java.lang.String toString():68:68 -> toString
+com.android.tools.r8.com.google.gson.internal.LinkedTreeMap -> com.android.tools.r8.r.a.b.l.d:
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node header -> e
+    java.util.Comparator NATURAL_ORDER -> h
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet keySet -> g
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node root -> b
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet entrySet -> f
+    int modCount -> d
+    int size -> c
+    java.util.Comparator comparator -> a
+    1:3:void <clinit>():38:40 -> <clinit>
+    1:1:void <init>():60:60 -> <init>
+    2:2:void <init>(java.util.Comparator):71:71 -> <init>
+    3:27:void <init>(java.util.Comparator):48:72 -> <init>
+    1:57:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node find(java.lang.Object,boolean):122:178 -> a
+    58:58:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByObject(java.lang.Object):186:186 -> a
+    59:60:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByEntry(java.util.Map$Entry):202:203 -> a
+    61:61:boolean equal(java.lang.Object,java.lang.Object):208:208 -> a
+    61:61:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByEntry(java.util.Map$Entry):203 -> a
+    62:76:void replaceInParent(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):285:299 -> a
+    77:95:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):312:330 -> a
+    96:118:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):326:348 -> a
+    119:137:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):344:362 -> a
+    138:138:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):311:311 -> a
+    139:159:void rotateLeft(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):374:394 -> a
+    1:19:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):219:237 -> b
+    20:23:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node.last():517:520 -> b
+    20:23:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):237 -> b
+    24:27:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node.first():504:507 -> b
+    24:27:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):237 -> b
+    28:63:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):238:273 -> b
+    64:84:void rotateRight(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):402:422 -> b
+    1:7:void clear():101:107 -> clear
+    1:1:boolean containsKey(java.lang.Object):87:87 -> containsKey
+    1:2:java.util.Set entrySet():430:431 -> entrySet
+    1:2:java.lang.Object get(java.lang.Object):82:83 -> get
+    1:2:java.util.Set keySet():435:436 -> keySet
+    1:3:java.lang.Object put(java.lang.Object,java.lang.Object):94:96 -> put
+    4:4:java.lang.Object put(java.lang.Object,java.lang.Object):92:92 -> put
+    1:3:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node removeInternalByKey(java.lang.Object):277:279 -> remove
+    1:3:java.lang.Object remove(java.lang.Object):111 -> remove
+    4:4:java.lang.Object remove(java.lang.Object):112:112 -> remove
+    1:1:int size():78:78 -> size
+com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$1 -> com.android.tools.r8.r.a.b.l.b:
+    1:1:void <init>():40:40 -> <init>
+    1:1:int compare(java.lang.Object,java.lang.Object):40:40 -> compare
+    2:2:int compare(java.lang.Comparable,java.lang.Comparable):42:42 -> compare
+    2:2:int compare(java.lang.Object,java.lang.Object):40 -> compare
+com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet -> com.android.tools.r8.r.a.b.l.d$a:
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):560:560 -> <init>
+    1:1:void clear():591:591 -> clear
+    1:1:boolean contains(java.lang.Object):574:574 -> contains
+    1:1:java.util.Iterator iterator():566:566 -> iterator
+    1:9:boolean remove(java.lang.Object):578:586 -> remove
+    1:1:int size():562:562 -> size
+com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet$1 -> com.android.tools.r8.r.a.b.l.c:
+    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet):566:566 -> <init>
+    1:1:java.util.Map$Entry next():568:568 -> next
+    1:1:java.lang.Object next():566 -> next
+com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet -> com.android.tools.r8.r.a.b.l.d$b:
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):595:595 -> <init>
+    1:1:void clear():617:617 -> clear
+    1:1:boolean contains(java.lang.Object):609:609 -> contains
+    2:2:boolean com.android.tools.r8.com.google.gson.internal.LinkedTreeMap.containsKey(java.lang.Object):87:87 -> contains
+    2:2:boolean contains(java.lang.Object):609 -> contains
+    1:1:java.util.Iterator iterator():601:601 -> iterator
+    1:1:boolean remove(java.lang.Object):613:613 -> remove
+    2:4:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap.removeInternalByKey(java.lang.Object):277:279 -> remove
+    2:4:boolean remove(java.lang.Object):613 -> remove
+    1:1:int size():597:597 -> size
+com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet$1 -> com.android.tools.r8.r.a.b.l.e:
+    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet):601:601 -> <init>
+    1:1:java.lang.Object next():603:603 -> next
+com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$LinkedTreeMapIterator -> com.android.tools.r8.r.a.b.l.d$c:
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> d
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node lastReturned -> b
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node next -> a
+    int expectedModCount -> c
+    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):531:531 -> <init>
+    2:4:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):527:529 -> <init>
+    1:1:boolean hasNext():535:535 -> hasNext
+    1:9:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():539:547 -> k
+    10:10:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():544:544 -> k
+    11:11:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():541:541 -> k
+    1:6:void remove():551:556 -> remove
+    7:7:void remove():552:552 -> remove
+com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node -> com.android.tools.r8.r.a.b.l.f:
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node next -> d
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node right -> c
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node prev -> e
+    java.lang.Object key -> f
+    java.lang.Object value -> g
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node left -> b
+    int height -> h
+    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node parent -> a
+    1:3:void <init>():450:452 -> <init>
+    4:11:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,java.lang.Object,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):456:463 -> <init>
+    1:4:boolean equals(java.lang.Object):482:485 -> equals
+    1:1:java.lang.Object getKey():467:467 -> getKey
+    1:1:java.lang.Object getValue():471:471 -> getValue
+    1:2:int hashCode():491:492 -> hashCode
+    1:2:java.lang.Object setValue(java.lang.Object):475:476 -> setValue
+    1:1:java.lang.String toString():496:496 -> toString
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters -> com.android.tools.r8.r.a.b.l.g.w:
+    com.android.tools.r8.com.google.gson.TypeAdapter STRING -> l
+    com.android.tools.r8.com.google.gson.TypeAdapter STRING_BUILDER -> m
+    com.android.tools.r8.com.google.gson.TypeAdapter NUMBER -> j
+    com.android.tools.r8.com.google.gson.TypeAdapter CHARACTER -> k
+    com.android.tools.r8.com.google.gson.TypeAdapter URI -> p
+    com.android.tools.r8.com.google.gson.TypeAdapter INET_ADDRESS -> q
+    com.android.tools.r8.com.google.gson.TypeAdapter STRING_BUFFER -> n
+    com.android.tools.r8.com.google.gson.TypeAdapter URL -> o
+    com.android.tools.r8.com.google.gson.TypeAdapter BYTE -> d
+    com.android.tools.r8.com.google.gson.TypeAdapter SHORT -> e
+    com.android.tools.r8.com.google.gson.TypeAdapter BIT_SET -> b
+    com.android.tools.r8.com.google.gson.TypeAdapter BOOLEAN -> c
+    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_BOOLEAN -> h
+    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_INTEGER_ARRAY -> i
+    com.android.tools.r8.com.google.gson.TypeAdapter INTEGER -> f
+    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_INTEGER -> g
+    com.android.tools.r8.com.google.gson.TypeAdapter CLASS -> a
+    com.android.tools.r8.com.google.gson.TypeAdapter CALENDAR -> t
+    com.android.tools.r8.com.google.gson.TypeAdapter LOCALE -> u
+    com.android.tools.r8.com.google.gson.TypeAdapter UUID -> r
+    com.android.tools.r8.com.google.gson.TypeAdapter CURRENCY -> s
+    com.android.tools.r8.com.google.gson.TypeAdapter JSON_ELEMENT -> v
+    1:646:void <clinit>():69:714 -> <clinit>
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$1 -> com.android.tools.r8.r.a.b.l.g.f:
+    1:1:void <init>():69:69 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):69:69 -> a
+    2:5:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Class):73:76 -> a
+    2:5:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):69 -> a
+    6:10:java.lang.Class read(com.android.tools.r8.com.google.gson.stream.JsonReader):81:85 -> a
+    6:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):69 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$10 -> com.android.tools.r8.r.a.b.l.g.a:
+    1:1:void <init>():282:282 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):282:282 -> a
+    2:6:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicIntegerArray):303:307 -> a
+    2:6:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):282 -> a
+    7:21:java.util.concurrent.atomic.AtomicIntegerArray read(com.android.tools.r8.com.google.gson.stream.JsonReader):284:298 -> a
+    7:21:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):282 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$14 -> com.android.tools.r8.r.a.b.l.g.b:
+    1:1:void <init>():362:362 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):362:362 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):378:378 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):362 -> a
+    3:11:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):365:373 -> a
+    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):362 -> a
+    12:12:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):371:371 -> a
+    12:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):362 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$15 -> com.android.tools.r8.r.a.b.l.g.c:
+    1:1:void <init>():384:384 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):384:384 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Character):399:399 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):384 -> a
+    3:11:java.lang.Character read(com.android.tools.r8.com.google.gson.stream.JsonReader):387:395 -> a
+    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):384 -> a
+    12:12:java.lang.Character read(com.android.tools.r8.com.google.gson.stream.JsonReader):393:393 -> a
+    12:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):384 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$16 -> com.android.tools.r8.r.a.b.l.g.d:
+    1:1:void <init>():406:406 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):406:406 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.String):422:422 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):406 -> a
+    3:12:java.lang.String read(com.android.tools.r8.com.google.gson.stream.JsonReader):409:418 -> a
+    3:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):406 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$19 -> com.android.tools.r8.r.a.b.l.g.e:
+    1:1:void <init>():464:464 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):464:464 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.StringBuilder):475:475 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):464 -> a
+    3:7:java.lang.StringBuilder read(com.android.tools.r8.com.google.gson.stream.JsonReader):467:471 -> a
+    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):464 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$2 -> com.android.tools.r8.r.a.b.l.g.p:
+    1:1:void <init>():92:92 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):92:92 -> a
+    2:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.BitSet):136:145 -> a
+    2:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):92 -> a
+    12:40:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):94:122 -> a
+    12:40:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
+    41:41:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):110:110 -> a
+    41:41:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
+    42:63:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):107:128 -> a
+    42:63:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
+    64:77:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):117:130 -> a
+    64:77:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$20 -> com.android.tools.r8.r.a.b.l.g.g:
+    1:1:void <init>():482:482 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):482:482 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.StringBuffer):493:493 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):482 -> a
+    3:7:java.lang.StringBuffer read(com.android.tools.r8.com.google.gson.stream.JsonReader):485:489 -> a
+    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):482 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$21 -> com.android.tools.r8.r.a.b.l.g.h:
+    1:1:void <init>():500:500 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):500:500 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.URL):512:512 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):500 -> a
+    3:8:java.net.URL read(com.android.tools.r8.com.google.gson.stream.JsonReader):503:508 -> a
+    3:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):500 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$22 -> com.android.tools.r8.r.a.b.l.g.i:
+    1:1:void <init>():518:518 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):518:518 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.URI):534:534 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):518 -> a
+    3:11:java.net.URI read(com.android.tools.r8.com.google.gson.stream.JsonReader):521:529 -> a
+    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):518 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$23 -> com.android.tools.r8.r.a.b.l.g.j:
+    1:1:void <init>():540:540 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):540:540 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.InetAddress):552:552 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):540 -> a
+    3:8:java.net.InetAddress read(com.android.tools.r8.com.google.gson.stream.JsonReader):543:548 -> a
+    3:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):540 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$24 -> com.android.tools.r8.r.a.b.l.g.k:
+    1:1:void <init>():559:559 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):559:559 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.UUID):570:570 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):559 -> a
+    3:7:java.util.UUID read(com.android.tools.r8.com.google.gson.stream.JsonReader):562:566 -> a
+    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):559 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$25 -> com.android.tools.r8.r.a.b.l.g.l:
+    1:1:void <init>():576:576 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):576:576 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Currency):583:583 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):576 -> a
+    3:3:java.util.Currency read(com.android.tools.r8.com.google.gson.stream.JsonReader):579:579 -> a
+    3:3:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):576 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$27 -> com.android.tools.r8.r.a.b.l.g.m:
+    1:1:void <init>():609:609 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):609:609 -> a
+    2:18:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Calendar):654:670 -> a
+    2:18:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):609 -> a
+    19:48:java.util.Calendar read(com.android.tools.r8.com.google.gson.stream.JsonReader):619:648 -> a
+    19:48:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):609 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$28 -> com.android.tools.r8.r.a.b.l.g.n:
+    1:1:void <init>():677:677 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):677:677 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Locale):708:708 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):677 -> a
+    3:26:java.util.Locale read(com.android.tools.r8.com.google.gson.stream.JsonReader):680:703 -> a
+    3:26:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):677 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$29 -> com.android.tools.r8.r.a.b.l.g.o:
+    1:1:void <init>():714:714 -> <init>
+    1:1:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonNull():74:74 -> a
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):753 -> a
+    2:2:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonPrimitive():64:64 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):755 -> a
+    3:3:com.android.tools.r8.com.google.gson.JsonPrimitive com.android.tools.r8.com.google.gson.JsonElement.getAsJsonPrimitive():120:120 -> a
+    3:3:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):756 -> a
+    4:9:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):757:762 -> a
+    10:10:com.android.tools.r8.com.google.gson.JsonPrimitive com.android.tools.r8.com.google.gson.JsonElement.getAsJsonPrimitive():122:122 -> a
+    10:10:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):756 -> a
+    11:11:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonArray():46:46 -> a
+    11:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):765 -> a
+    12:16:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):766:770 -> a
+    17:17:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> a
+    17:17:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):772 -> a
+    18:26:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):773:781 -> a
+    27:27:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):754:754 -> a
+    28:28:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):714:714 -> a
+    29:29:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):714:714 -> a
+    1:33:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):716:748 -> b
+    34:35:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):725:726 -> b
+    36:36:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):723:723 -> b
+    37:38:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):720:721 -> b
+    39:62:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):718:741 -> b
+    63:68:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):728:733 -> b
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$3 -> com.android.tools.r8.r.a.b.l.g.q:
+    1:1:void <init>():151:151 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):151:151 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Boolean):165:165 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):151 -> a
+    3:10:java.lang.Boolean read(com.android.tools.r8.com.google.gson.stream.JsonReader):154:161 -> a
+    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):151 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$5 -> com.android.tools.r8.r.a.b.l.g.r:
+    1:1:void <init>():190:190 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):190:190 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):206:206 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):190 -> a
+    3:11:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):193:201 -> a
+    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):190 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$6 -> com.android.tools.r8.r.a.b.l.g.s:
+    1:1:void <init>():213:213 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):213:213 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):228:228 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):213 -> a
+    3:10:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):216:223 -> a
+    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):213 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$7 -> com.android.tools.r8.r.a.b.l.g.t:
+    1:1:void <init>():235:235 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):235:235 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):250:250 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):235 -> a
+    3:10:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):238:245 -> a
+    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):235 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$8 -> com.android.tools.r8.r.a.b.l.g.u:
+    1:1:void <init>():256:256 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):256:256 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicInteger):265:265 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):256 -> a
+    3:5:java.util.concurrent.atomic.AtomicInteger read(com.android.tools.r8.com.google.gson.stream.JsonReader):259:261 -> a
+    3:5:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):256 -> a
+com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$9 -> com.android.tools.r8.r.a.b.l.g.v:
+    1:1:void <init>():271:271 -> <init>
+    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):271:271 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicBoolean):276:276 -> a
+    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):271 -> a
+    3:3:java.util.concurrent.atomic.AtomicBoolean read(com.android.tools.r8.com.google.gson.stream.JsonReader):273:273 -> a
+    3:3:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):271 -> a
+com.android.tools.r8.com.google.gson.stream.JsonReader -> com.android.tools.r8.r.a.b.m.a:
+    long peekedLong -> i
+    char[] buffer -> c
+    int stackSize -> m
+    int peekedNumberLength -> j
+    java.lang.String peekedString -> k
+    int peeked -> h
+    int lineNumber -> f
+    int lineStart -> g
+    java.io.Reader in -> a
+    int pos -> d
+    int limit -> e
+    java.lang.String[] pathNames -> n
+    int[] pathIndices -> o
+    boolean lenient -> b
+    int[] stack -> l
+    char[] NON_EXECUTE_PREFIX -> p
+    1:1:void <clinit>():192:192 -> <clinit>
+    1:1:void <init>(java.io.Reader):289:289 -> <init>
+    2:65:void <init>(java.io.Reader):230:293 -> <init>
+    66:66:void <init>(java.io.Reader):291:291 -> <init>
+    1:10:void beginArray():341:350 -> a
+    11:11:boolean isLiteral(char):751:751 -> a
+    12:33:boolean fillBuffer(int):1276:1297 -> a
+    34:108:int nextNonWhitespace(boolean):1319:1393 -> a
+    109:151:int nextNonWhitespace(boolean):1328:1370 -> a
+    152:152:int nextNonWhitespace(boolean):1357:1357 -> a
+    153:161:boolean skipTo(java.lang.String):1428:1428 -> a
+    153:161:int nextNonWhitespace(boolean):1358 -> a
+    162:163:int nextNonWhitespace(boolean):1361:1362 -> a
+    164:193:int nextNonWhitespace(boolean):1359:1388 -> a
+    194:194:java.io.IOException syntaxError(java.lang.String):1559:1559 -> a
+    1:1:void setLenient(boolean):326:326 -> b
+    2:10:void beginObject():377:385 -> b
+    11:27:java.lang.String nextQuotedValue(char):987:1003 -> b
+    28:83:char readEscapeCharacter():1495:1550 -> b
+    28:83:java.lang.String nextQuotedValue(char):1004 -> b
+    84:122:char readEscapeCharacter():1502:1540 -> b
+    84:122:java.lang.String nextQuotedValue(char):1004 -> b
+    123:125:java.lang.String nextQuotedValue(char):1004:1006 -> b
+    126:126:char readEscapeCharacter():1550:1550 -> b
+    126:126:java.lang.String nextQuotedValue(char):1004 -> b
+    127:135:java.lang.String nextQuotedValue(char):1009:1017 -> b
+    136:147:void push(int):1256:1267 -> b
+    1:2:void checkLenient():1400:1401 -> c
+    1:4:void close():1208:1211 -> close
+    1:15:int doPeek():462:476 -> d
+    16:77:int doPeek():472:533 -> d
+    78:92:void consumeNonExecutePrefix():1567:1581 -> d
+    78:92:int doPeek():534 -> d
+    93:133:int doPeek():536:576 -> d
+    134:173:int peekKeyword():599:638 -> d
+    134:173:int doPeek():579 -> d
+    174:269:int peekNumber():643:738 -> d
+    174:269:int doPeek():584 -> d
+    270:275:int doPeek():589:594 -> d
+    276:276:int doPeek():590:590 -> d
+    277:277:int doPeek():574:574 -> d
+    278:297:int doPeek():553:572 -> d
+    298:298:int doPeek():564:564 -> d
+    299:309:int doPeek():560:570 -> d
+    310:310:int doPeek():546:546 -> d
+    311:323:int doPeek():479:491 -> d
+    324:350:int doPeek():487:513 -> d
+    351:353:int doPeek():503:505 -> d
+    354:355:int doPeek():499:500 -> d
+    356:356:int doPeek():497:497 -> d
+    1:10:void endArray():359:368 -> e
+    1:11:void endObject():394:404 -> f
+    1:3:boolean hasNext():412:414 -> g
+    1:1:boolean isLenient():333:333 -> h
+    1:3:java.lang.String locationString():1449:1451 -> i
+    4:17:java.lang.String getPath():1459:1472 -> i
+    4:17:java.lang.String locationString():1451 -> i
+    18:36:java.lang.String getPath():1464:1482 -> i
+    18:36:java.lang.String locationString():1451 -> i
+    37:37:java.lang.String locationString():1451:1451 -> i
+    1:14:boolean nextBoolean():840:853 -> j
+    1:13:int nextInt():1155:1167 -> k
+    14:39:int nextInt():1164:1189 -> k
+    40:64:int nextInt():1176:1200 -> k
+    65:65:int nextInt():1196:1196 -> k
+    1:16:java.lang.String nextName():777:792 -> l
+    17:17:java.lang.String nextName():789:789 -> l
+    1:9:void nextNull():864:872 -> m
+    1:24:java.lang.String nextString():805:828 -> n
+    25:25:java.lang.String nextString():825:825 -> n
+    1:52:java.lang.String nextUnquotedValue():1032:1083 -> o
+    1:35:com.android.tools.r8.com.google.gson.stream.JsonToken peek():423:457 -> p
+    36:36:com.android.tools.r8.com.google.gson.stream.JsonToken peek():455:455 -> p
+    37:37:com.android.tools.r8.com.google.gson.stream.JsonToken peek():453:453 -> p
+    38:48:com.android.tools.r8.com.google.gson.stream.JsonToken peek():440:450 -> p
+    49:49:com.android.tools.r8.com.google.gson.stream.JsonToken peek():445:445 -> p
+    50:50:com.android.tools.r8.com.google.gson.stream.JsonToken peek():443:443 -> p
+    51:51:com.android.tools.r8.com.google.gson.stream.JsonToken peek():436:436 -> p
+    52:52:com.android.tools.r8.com.google.gson.stream.JsonToken peek():434:434 -> p
+    53:53:com.android.tools.r8.com.google.gson.stream.JsonToken peek():432:432 -> p
+    54:54:com.android.tools.r8.com.google.gson.stream.JsonToken peek():430:430 -> p
+    1:5:void skipToEndOfLine():1411:1415 -> q
+    1:1:java.lang.String toString():1445:1445 -> toString
+com.android.tools.r8.com.google.gson.stream.JsonToken -> com.android.tools.r8.r.a.b.m.b:
+    com.android.tools.r8.com.google.gson.stream.JsonToken END_ARRAY -> b
+    com.android.tools.r8.com.google.gson.stream.JsonToken BEGIN_OBJECT -> c
+    com.android.tools.r8.com.google.gson.stream.JsonToken BEGIN_ARRAY -> a
+    com.android.tools.r8.com.google.gson.stream.JsonToken STRING -> f
+    com.android.tools.r8.com.google.gson.stream.JsonToken NUMBER -> g
+    com.android.tools.r8.com.google.gson.stream.JsonToken END_OBJECT -> d
+    com.android.tools.r8.com.google.gson.stream.JsonToken NAME -> e
+    com.android.tools.r8.com.google.gson.stream.JsonToken END_DOCUMENT -> j
+    com.android.tools.r8.com.google.gson.stream.JsonToken BOOLEAN -> h
+    com.android.tools.r8.com.google.gson.stream.JsonToken NULL -> i
+    com.android.tools.r8.com.google.gson.stream.JsonToken[] $VALUES -> k
+    1:54:void <clinit>():31:84 -> <clinit>
+    55:55:void <clinit>():25:25 -> <clinit>
+    1:1:void <init>(java.lang.String,int):25:25 -> <init>
+com.android.tools.r8.com.google.gson.stream.JsonWriter -> com.android.tools.r8.r.a.b.m.c:
+    java.lang.String deferredName -> f
+    java.lang.String[] HTML_SAFE_REPLACEMENT_CHARS -> i
+    int[] stack -> b
+    java.lang.String[] REPLACEMENT_CHARS -> h
+    boolean lenient -> e
+    java.io.Writer out -> a
+    boolean serializeNulls -> g
+    int stackSize -> c
+    java.lang.String separator -> d
+    1:17:void <clinit>():145:161 -> <clinit>
+    1:1:void <init>(java.io.Writer):197:197 -> <init>
+    2:36:void <init>(java.io.Writer):167:201 -> <init>
+    1:1:void setLenient(boolean):235:235 -> a
+    2:14:com.android.tools.r8.com.google.gson.stream.JsonWriter close(int,int,java.lang.String):337:349 -> a
+    15:15:com.android.tools.r8.com.google.gson.stream.JsonWriter close(int,int,java.lang.String):342:342 -> a
+    16:21:void push(int):354:359 -> a
+    22:28:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):389:395 -> a
+    29:29:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):393:393 -> a
+    30:30:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):390:390 -> a
+    31:31:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):387:387 -> a
+    32:36:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.Boolean):478:482 -> a
+    37:39:com.android.tools.r8.com.google.gson.stream.JsonWriter value(long):509:511 -> a
+    40:50:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.Number):524:534 -> a
+    51:78:void beforeValue():629:656 -> a
+    79:100:void beforeValue():631:652 -> a
+    101:101:void beforeValue():646:646 -> a
+    102:102:void beforeValue():641:641 -> a
+    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter beginArray():287:287 -> b
+    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter open(int,java.lang.String):325:327 -> b
+    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter beginArray():288 -> b
+    5:5:void replaceTop(int):376:376 -> b
+    6:8:com.android.tools.r8.com.google.gson.stream.JsonWriter value(boolean):465:467 -> b
+    9:37:void string(java.lang.String):565:593 -> b
+    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter beginObject():307:307 -> c
+    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter open(int,java.lang.String):325:327 -> c
+    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter beginObject():308 -> c
+    5:9:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.String):415:419 -> c
+    1:7:void close():555:561 -> close
+    8:8:void close():559:559 -> close
+    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter endArray():297:297 -> d
+    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter endObject():317:317 -> e
+    1:10:com.android.tools.r8.com.google.gson.stream.JsonWriter nullValue():446:455 -> f
+    1:4:void flush():543:546 -> flush
+    5:5:void flush():544:544 -> flush
+    1:4:int peek():366:369 -> g
+    5:5:int peek():367:367 -> g
+    1:1:void writeDeferredName():400:400 -> h
+    2:9:void beforeName():612:619 -> h
+    2:9:void writeDeferredName():401 -> h
+    10:11:void writeDeferredName():402:403 -> h
+    12:12:void beforeName():616:616 -> h
+    12:12:void writeDeferredName():401 -> h
+com.android.tools.r8.com.google.gson.stream.MalformedJsonException -> com.android.tools.r8.r.a.b.m.d:
+    1:1:void <init>(java.lang.String):29:29 -> <init>
+com.android.tools.r8.compatdexbuilder.CompatDexBuilder -> com.android.tools.r8.compatdexbuilder.CompatDexBuilder:
+    boolean backportStatics -> e
+    java.lang.String input -> a
+    java.lang.String output -> b
+    int numberOfThreads -> c
+    boolean noLocals -> d
+    1:28:void <init>():36:63 -> <init>
+    1:47:void run(java.lang.String[]):71:117 -> a
+    48:48:void run(java.lang.String[]):113:113 -> a
+    49:49:void run(java.lang.String[]):110:110 -> a
+    50:50:void run(java.lang.String[]):99:99 -> a
+    51:97:void run(java.lang.String[]):96:142 -> a
+    98:98:void addEntry(java.lang.String,java.io.InputStream,java.util.zip.ZipOutputStream):190:190 -> a
+    98:98:void run(java.lang.String[]):142 -> a
+    99:99:void run(java.lang.String[]):143:143 -> a
+    100:116:void run(java.lang.String[]):141:157 -> a
+    117:117:byte[] com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer.getBytes():55:55 -> a
+    117:117:void run(java.lang.String[]):157 -> a
+    118:122:void run(java.lang.String[]):157:161 -> a
+    123:146:void run(java.lang.String[]):136:159 -> a
+    147:176:void run(java.lang.String[]):132:161 -> a
+    177:177:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):160:160 -> a
+    178:193:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):167:182 -> a
+    178:193:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):152 -> a
+    194:199:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):179:184 -> a
+    194:199:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):152 -> a
+    200:205:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):178:183 -> a
+    200:205:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):152 -> a
+    206:215:void addEntry(java.lang.String,byte[],java.util.zip.ZipOutputStream):194:203 -> a
+    1:1:void main(java.lang.String[]):67:67 -> main
+com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer -> com.android.tools.r8.compatdexbuilder.CompatDexBuilder$a:
+    byte[] bytes -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():38:38 -> <clinit>
+    1:1:void <init>():43:43 -> <init>
+    1:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):49:51 -> accept
+com.android.tools.r8.compatdx.CompatDx -> com.android.tools.r8.compatdx.CompatDx:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():55:55 -> <clinit>
+    1:3:void run(java.lang.String[]):328:330 -> a
+    4:5:void printHelpOn(java.io.PrintStream):598:599 -> a
+    4:5:void run(java.lang.String[]):330 -> a
+    6:131:void run(java.lang.String[]):333:458 -> a
+    132:140:com.android.tools.r8.ProgramConsumer createConsumer(java.util.List,java.nio.file.Path,boolean,boolean):479:487 -> a
+    132:140:void run(java.lang.String[]):459 -> a
+    141:153:void run(java.lang.String[]):459:471 -> a
+    154:154:void run(java.lang.String[]):450:450 -> a
+    155:155:void run(java.lang.String[]):416:416 -> a
+    156:156:void run(java.lang.String[]):412:412 -> a
+    157:157:void run(java.lang.String[]):396:396 -> a
+    158:158:void run(java.lang.String[]):367:367 -> a
+    159:159:void run(java.lang.String[]):363:363 -> a
+    160:164:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):494:498 -> a
+    165:172:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):495:502 -> a
+    173:176:void processPath(java.io.File,java.util.List):603:606 -> a
+    177:179:void processDirectory(java.io.File,java.util.List):621:623 -> a
+    177:179:void processPath(java.io.File,java.util.List):607 -> a
+    180:181:void processPath(java.io.File,java.util.List):610:611 -> a
+    182:183:boolean com.android.tools.r8.utils.FileUtils.isApkFile(java.nio.file.Path):68:69 -> a
+    182:183:void processPath(java.io.File,java.util.List):615 -> a
+    184:184:void processPath(java.io.File,java.util.List):616:616 -> a
+    185:185:void processPath(java.io.File,java.util.List):612:612 -> a
+    186:186:void processPath(java.io.File,java.util.List):604:604 -> a
+    187:187:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    187:187:void processPath(java.io.File,java.util.List):604 -> a
+    188:188:void processPath(java.io.File,java.util.List):604:604 -> a
+    1:7:void main(java.lang.String[]):316:322 -> main
+    8:9:void main(java.lang.String[]):318:319 -> main
+    10:10:void com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$DxUsageMessage.printHelpOn(java.io.PrintStream):116:116 -> main
+    10:10:void main(java.lang.String[]):319 -> main
+    11:11:void main(java.lang.String[]):320:320 -> main
+com.android.tools.r8.compatdx.CompatDx$DexKeepClassesConsumer -> com.android.tools.r8.compatdx.CompatDx$a:
+    java.util.List inputs -> e
+    1:2:void <init>(java.nio.file.Path,java.util.List):562:563 -> <init>
+    1:11:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):578:588 -> a
+    12:18:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):585:591 -> a
+    19:30:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):580:591 -> a
+    31:31:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):591:591 -> a
+    1:5:void finished(com.android.tools.r8.DiagnosticsHandler):569:573 -> finished
+com.android.tools.r8.compatdx.CompatDx$DxCompatOptions -> com.android.tools.r8.compatdx.CompatDx$b:
+    java.lang.String noOptimizeList -> j
+    boolean noStrict -> k
+    boolean forceJumbo -> u
+    java.lang.String dumpTo -> n
+    boolean dump -> q
+    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo positions -> e
+    int minApiLevel -> y
+    boolean noLocals -> f
+    boolean statistics -> h
+    boolean version -> b
+    int numThreads -> s
+    boolean $assertionsDisabled -> C
+    boolean verbose -> d
+    java.lang.String optimizeList -> i
+    boolean verboseDump -> p
+    java.lang.String output -> m
+    boolean keepClasses -> l
+    java.lang.String dumpMethod -> o
+    boolean multiDex -> v
+    boolean minimalMainDex -> x
+    int maxIndexNumber -> B
+    boolean noFiles -> r
+    com.android.tools.r8.com.google.common.collect.ImmutableList inputs -> A
+    boolean incremental -> t
+    java.lang.String mainDexList -> w
+    boolean backportStatics -> z
+    boolean noOptimize -> g
+    boolean help -> a
+    boolean debug -> c
+    1:1:void <clinit>():62:62 -> <clinit>
+    1:21:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):243:263 -> <init>
+    22:22:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):260:260 -> <init>
+    23:23:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):257:257 -> <init>
+    24:24:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):254:254 -> <init>
+    25:74:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):251:300 -> <init>
+    1:2:com.android.tools.r8.compatdx.CompatDx$DxCompatOptions parse(java.lang.String[]):304:305 -> a
+    3:4:int lastIntOf(java.util.List):309:310 -> a
+com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$DxUsageMessage -> com.android.tools.r8.compatdx.CompatDx$b$a:
+    java.lang.String message -> a
+    1:2:void <init>(java.lang.String):111:112 -> <init>
+com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo -> com.android.tools.r8.compatdx.CompatDx$b$b:
+    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo THROWING -> d
+    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo LINES -> c
+    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo IMPORTANT -> b
+    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo NONE -> a
+    1:1:void <clinit>():104:104 -> <clinit>
+    1:1:void <init>(java.lang.String,int):103:103 -> <init>
+com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec -> com.android.tools.r8.compatdx.CompatDx$b$c:
+    com.android.tools.r8.joptsimple.OptionSpec output -> l
+    com.android.tools.r8.joptsimple.OptionSpec dumpWidth -> n
+    com.android.tools.r8.joptsimple.OptionSpec dump -> p
+    com.android.tools.r8.joptsimple.OptionSpec noFiles -> r
+    com.android.tools.r8.joptsimple.OptionSpec numThreads -> t
+    com.android.tools.r8.joptsimple.OptionSpec forceJumbo -> v
+    com.android.tools.r8.joptsimple.OptionSpec multiDex -> x
+    com.android.tools.r8.joptsimple.OptionSpec minimalMainDex -> z
+    com.android.tools.r8.joptsimple.OptionSpec debug -> b
+    com.android.tools.r8.joptsimple.OptionSpec minApiLevel -> A
+    com.android.tools.r8.joptsimple.OptionSpec positions -> d
+    com.android.tools.r8.joptsimple.OptionSpec inputList -> C
+    com.android.tools.r8.joptsimple.OptionSpec noOptimize -> f
+    com.android.tools.r8.joptsimple.OptionSpec version -> E
+    com.android.tools.r8.joptsimple.OptionSpec optimizeList -> h
+    com.android.tools.r8.joptsimple.OptionSpec maxIndexNumber -> G
+    com.android.tools.r8.joptsimple.OptionSpec noStrict -> j
+    com.android.tools.r8.joptsimple.OptionSpec keepClasses -> k
+    com.android.tools.r8.joptsimple.OptionSpec dumpTo -> m
+    com.android.tools.r8.joptsimple.OptionSpec dumpMethod -> o
+    com.android.tools.r8.joptsimple.OptionSpec verboseDump -> q
+    com.android.tools.r8.joptsimple.OptionSpec coreLibrary -> s
+    com.android.tools.r8.joptsimple.OptionSpec incremental -> u
+    com.android.tools.r8.joptsimple.OptionSpec noWarning -> w
+    com.android.tools.r8.joptsimple.OptionSpec mainDexList -> y
+    com.android.tools.r8.joptsimple.OptionSpec backportStatics -> B
+    com.android.tools.r8.joptsimple.OptionSpec inputs -> D
+    com.android.tools.r8.joptsimple.OptionSpec verbose -> c
+    com.android.tools.r8.joptsimple.OptionSpec help -> F
+    com.android.tools.r8.joptsimple.OptionSpec noLocals -> e
+    com.android.tools.r8.joptsimple.OptionParser parser -> a
+    com.android.tools.r8.joptsimple.OptionSpec statistics -> g
+    com.android.tools.r8.joptsimple.OptionSpec noOptimizeList -> i
+    1:82:void <init>():158:239 -> <init>
+com.android.tools.r8.compatdx.CompatDx$NamedDexFileConsumer -> com.android.tools.r8.compatdx.CompatDx$c:
+    java.nio.file.Path output -> c
+    1:2:void <init>(java.nio.file.Path):539:540 -> <init>
+    1:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):546:551 -> accept
+    7:10:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):549:552 -> accept
+com.android.tools.r8.compatdx.CompatDx$SingleDexFileConsumer -> com.android.tools.r8.compatdx.CompatDx$d:
+    byte[] bytes -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():505:505 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.DexIndexedConsumer):510:510 -> <init>
+    2:2:void <init>(com.android.tools.r8.DexIndexedConsumer):507:507 -> <init>
+    1:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):521:523 -> accept
+    4:4:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):517:517 -> accept
+    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> accept
+    5:5:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):517 -> accept
+    6:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):517:517 -> accept
+    1:4:void finished(com.android.tools.r8.DiagnosticsHandler):528:531 -> finished
+com.android.tools.r8.compatproguard.CompatProguard -> com.android.tools.r8.compatproguard.CompatProguard:
+    1:21:void run(java.lang.String[]):190:210 -> a
+    22:22:void run(java.lang.String[]):192:192 -> a
+    23:23:void printVersion():176:176 -> a
+    23:23:void printHelp():180 -> a
+    23:23:void run(java.lang.String[]):193 -> a
+    24:27:void printHelp():181:184 -> a
+    24:27:void run(java.lang.String[]):193 -> a
+    28:38:void com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions.print():161:171 -> a
+    28:38:void printHelp():185 -> a
+    28:38:void run(java.lang.String[]):193 -> a
+    1:5:void main(java.lang.String[]):215:219 -> main
+com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions -> com.android.tools.r8.compatproguard.CompatProguard$a:
+    java.lang.String mainDexList -> g
+    boolean printHelpAndExit -> i
+    boolean disableVerticalClassMerging -> j
+    boolean includeDataResources -> e
+    boolean multiDex -> f
+    java.lang.String output -> a
+    java.util.List proguardConfig -> h
+    int minApi -> c
+    com.android.tools.r8.CompilationMode mode -> b
+    boolean forceProguardCompatibility -> d
+    1:11:void <init>(java.util.List,java.lang.String,com.android.tools.r8.CompilationMode,int,boolean,boolean,boolean,java.lang.String,boolean,boolean):58:68 -> <init>
+    1:13:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):87:99 -> a
+    14:14:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):97:97 -> a
+    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    15:15:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):97 -> a
+    16:23:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):97:104 -> a
+    24:24:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):102:102 -> a
+    25:25:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    25:25:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):102 -> a
+    26:58:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):102:134 -> a
+    59:59:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):128:128 -> a
+    60:60:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    60:60:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):128 -> a
+    61:81:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):128:148 -> a
+com.android.tools.r8.dex.ApplicationReader -> com.android.tools.r8.dex.a:
+    com.android.tools.r8.graph.DexItemFactory itemFactory -> b
+    com.android.tools.r8.utils.Timing timing -> c
+    com.android.tools.r8.utils.InternalOptions options -> a
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.utils.AndroidApp inputApp -> d
+    1:1:void <clinit>():60:60 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):71:75 -> <init>
+    1:192:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):0:191 -> a
+    1:192:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    193:203:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):79:89 -> a
+    193:203:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
+    193:203:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    204:204:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):87:87 -> a
+    204:204:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
+    204:204:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    205:205:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):85:85 -> a
+    205:205:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
+    205:205:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    206:206:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):83:83 -> a
+    206:206:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
+    206:206:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    207:207:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):81:81 -> a
+    207:207:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
+    207:207:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    208:211:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193:196 -> a
+    208:211:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    212:212:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    212:212:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):196 -> a
+    212:212:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    213:213:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    213:213:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    213:213:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):196 -> a
+    213:213:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    214:214:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):196:196 -> a
+    214:214:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
+    215:215:com.android.tools.r8.utils.InternalOptions access$000(com.android.tools.r8.dex.ApplicationReader):60:60 -> a
+    216:216:com.android.tools.r8.graph.DexApplication read():79:79 -> a
+    217:221:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource):83:87 -> a
+    222:224:com.android.tools.r8.graph.DexApplication read(java.util.concurrent.ExecutorService):93:93 -> a
+    225:229:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService):99:99 -> a
+    230:230:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):110:110 -> a
+    231:240:boolean verifyMainDexOptionsCompatible(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):176:185 -> a
+    231:240:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):110 -> a
+    241:252:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):113:124 -> a
+    253:253:void dumpInputToFile(com.android.tools.r8.utils.AndroidApp,java.nio.file.Path,com.android.tools.r8.utils.InternalOptions):171:171 -> a
+    253:253:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):124 -> a
+    254:259:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):128:133 -> a
+    260:260:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):131:131 -> a
+    261:263:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    261:263:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):131 -> a
+    264:295:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):136:167 -> a
+    296:296:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):163:163 -> a
+    297:299:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    297:299:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):163 -> a
+    300:304:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):161:165 -> a
+    305:307:void readProguardMap(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):211:211 -> a
+    308:311:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):215:218 -> a
+    312:312:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    312:312:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):218 -> a
+    313:313:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):218:218 -> a
+    314:315:void readMainDexList(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):225:226 -> a
+    316:324:void lambda$readMainDexList$2(com.android.tools.r8.graph.DexApplication$Builder):227:235 -> a
+    325:325:void lambda$readMainDexList$2(com.android.tools.r8.graph.DexApplication$Builder):231:231 -> a
+    326:326:com.android.tools.r8.graph.DexType lambda$readMainDexList$1(java.lang.String):234:234 -> a
+    1:1:com.android.tools.r8.utils.AndroidApp access$200(com.android.tools.r8.dex.ApplicationReader):60:60 -> b
+com.android.tools.r8.dex.ApplicationReader$ClassReader -> com.android.tools.r8.dex.a$a:
+    java.util.List futures -> b
+    com.android.tools.r8.graph.JarApplicationReader application -> f
+    java.util.Queue programClasses -> c
+    java.util.Queue libraryClasses -> e
+    java.util.Queue classpathClasses -> d
+    com.android.tools.r8.dex.ApplicationReader this$0 -> g
+    boolean $assertionsDisabled -> h
+    java.util.concurrent.ExecutorService executorService -> a
+    1:1:void <clinit>():240:240 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.dex.ApplicationReader,java.util.concurrent.ExecutorService,java.util.List):252:252 -> <init>
+    2:10:void <init>(com.android.tools.r8.dex.ApplicationReader,java.util.concurrent.ExecutorService,java.util.List):246:254 -> <init>
+    1:3:void lambda$readDexSources$0(com.android.tools.r8.dex.DexParser,com.android.tools.r8.graph.ClassKind,java.util.Queue):279:279 -> a
+    4:9:com.android.tools.r8.graph.JarClassFileReader readClassSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):289:294 -> a
+    10:10:com.android.tools.r8.graph.JarClassFileReader readClassSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):293:293 -> a
+    11:14:java.lang.Object lambda$readClassSources$1(com.android.tools.r8.ProgramResource,com.android.tools.r8.graph.JarClassFileReader,com.android.tools.r8.graph.ClassKind):296:296 -> a
+    16:16:java.lang.Object lambda$readClassSources$1(com.android.tools.r8.ProgramResource,com.android.tools.r8.graph.JarClassFileReader,com.android.tools.r8.graph.ClassKind):298:298 -> a
+    17:29:com.android.tools.r8.graph.JarClassFileReader readSources():309:321 -> a
+    30:47:com.android.tools.r8.utils.ClassProvider buildClassProvider(com.android.tools.r8.graph.ClassKind,java.util.Queue,java.util.List,com.android.tools.r8.graph.JarApplicationReader):327:344 -> a
+    48:54:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):349:355 -> a
+    55:63:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):354:362 -> a
+    64:67:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):361:364 -> a
+    1:19:void readDexSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):260:278 -> b
+com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver -> com.android.tools.r8.dex.a$b:
+    com.android.tools.r8.graph.DexProgramClass resolveClassConflict(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass) -> a
+com.android.tools.r8.dex.ApplicationWriter -> com.android.tools.r8.dex.b:
+    com.android.tools.r8.graph.DexApplication application -> a
+    com.android.tools.r8.graph.AppView appView -> b
+    com.android.tools.r8.DexIndexedConsumer programConsumer -> i
+    boolean $assertionsDisabled -> k
+    com.android.tools.r8.graph.GraphLense graphLense -> c
+    com.android.tools.r8.dex.CodeToKeep desugaredLibraryCodeToKeep -> f
+    com.android.tools.r8.utils.InternalOptions options -> e
+    com.android.tools.r8.naming.NamingLens namingLens -> d
+    java.util.List markerStrings -> h
+    java.util.List markers -> g
+    com.android.tools.r8.naming.ProguardMapSupplier proguardMapSupplier -> j
+    1:1:void <clinit>():67:67 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.naming.ProguardMapSupplier):146:146 -> <init>
+    2:13:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.naming.ProguardMapSupplier,com.android.tools.r8.DexIndexedConsumer):165:176 -> <init>
+    1:1:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):183:183 -> a
+    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingDexFilePerClassFile():351:351 -> a
+    2:2:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):183 -> a
+    3:3:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):184:184 -> a
+    4:4:com.android.tools.r8.DexFilePerClassFileConsumer com.android.tools.r8.utils.InternalOptions.getDexFilePerClassFileConsumer():363:363 -> a
+    4:4:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):185 -> a
+    5:15:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):185:195 -> a
+    16:17:void encodeChecksums(java.lang.Iterable):206:207 -> a
+    18:18:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.<init>(int):110:110 -> a
+    18:18:void encodeChecksums(java.lang.Iterable):207 -> a
+    19:19:void encodeChecksums(java.lang.Iterable):208:208 -> a
+    20:20:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    20:20:void encodeChecksums(java.lang.Iterable):209 -> a
+    21:29:void encodeChecksums(java.lang.Iterable):209:217 -> a
+    30:30:void lambda$write$0(com.android.tools.r8.dex.ApplicationWriter$SortAnnotations,com.android.tools.r8.graph.DexProgramClass):262:262 -> a
+    31:35:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):273:277 -> a
+    36:36:com.android.tools.r8.DexFilePerClassFileConsumer com.android.tools.r8.utils.InternalOptions.getDexFilePerClassFileConsumer():363:363 -> a
+    36:36:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):277 -> a
+    37:44:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):280:287 -> a
+    45:45:com.android.tools.r8.DexIndexedConsumer com.android.tools.r8.utils.InternalOptions.getDexIndexedConsumer():359:359 -> a
+    45:45:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):287 -> a
+    46:49:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):291:294 -> a
+    50:50:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):293:293 -> a
+    51:63:com.android.tools.r8.dex.FileWriter$ByteBufferResult writeDexFile(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.ByteBufferProvider):593:605 -> a
+    51:63:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):296 -> a
+    64:72:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):297:305 -> a
+    73:83:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):302:312 -> a
+    84:93:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):309:318 -> a
+    94:97:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):350:353 -> a
+    98:104:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):351:357 -> a
+    105:107:boolean validateProguardMapParses(java.lang.String):460:462 -> a
+    105:107:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):357 -> a
+    108:115:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):357:364 -> a
+    116:163:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):363:410 -> a
+    164:164:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):409:409 -> a
+    165:165:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):386:386 -> a
+    166:175:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):385:394 -> a
+    176:184:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):389:397 -> a
+    185:185:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):388:388 -> a
+    186:186:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):387:387 -> a
+    187:220:void adaptAndPassDataResources(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.DataResourceConsumer,java.util.Collection,com.android.tools.r8.dex.ResourceAdapter):420:453 -> a
+    221:234:void insertAttributeAnnotations():470:483 -> a
+    235:235:void insertAttributeAnnotations():482:482 -> a
+    236:244:void insertAttributeAnnotations():481:489 -> a
+    245:245:void insertAttributeAnnotations():488:488 -> a
+    246:262:void insertAttributeAnnotations():487:503 -> a
+    263:269:void insertAttributeAnnotations():502:508 -> a
+    270:279:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createInnerClassAnnotation(com.android.tools.r8.graph.DexString,int,com.android.tools.r8.graph.DexItemFactory):142:151 -> a
+    270:279:void insertAttributeAnnotations():506 -> a
+    280:288:void insertAttributeAnnotations():505:513 -> a
+    289:289:void insertAttributeAnnotations():512:512 -> a
+    290:301:void insertAttributeAnnotations():511:522 -> a
+    302:312:void insertAttributeAnnotations():521:531 -> a
+    313:313:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):72:72 -> a
+    313:313:void insertAttributeAnnotations():529 -> a
+    314:314:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Class,int):49:49 -> a
+    314:314:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):72 -> a
+    314:314:void insertAttributeAnnotations():529 -> a
+    315:316:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):73:74 -> a
+    315:316:void insertAttributeAnnotations():529 -> a
+    317:326:void insertAttributeAnnotations():529:538 -> a
+    327:329:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):554:556 -> a
+    330:330:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
+    330:330:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):557 -> a
+    331:332:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):560:561 -> a
+    333:333:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
+    333:333:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):562 -> a
+    334:337:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):567:570 -> a
+    338:338:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMapBacking(java.util.Map):25:25 -> a
+    338:338:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):586 -> a
+    339:349:void lambda$rewriteCodeWithJumboStrings$3(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexApplication,java.util.Map,boolean,com.android.tools.r8.graph.DexEncodedMethod):572:582 -> a
+    350:351:java.lang.String mapMainDexListName(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):609:610 -> a
+    350:351:void lambda$writeMainDexList$4(java.lang.StringBuilder,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexType):618 -> a
+    352:352:void lambda$writeMainDexList$4(java.lang.StringBuilder,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexType):618:618 -> a
+    353:358:java.lang.String writeMainDexList(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):614:619 -> a
+    1:38:void write(java.util.concurrent.ExecutorService):222:259 -> b
+    39:51:void write(java.util.concurrent.ExecutorService):257:269 -> b
+    52:109:void write(java.util.concurrent.ExecutorService):268:325 -> b
+    110:110:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> b
+    110:110:void write(java.util.concurrent.ExecutorService):325 -> b
+    111:123:void write(java.util.concurrent.ExecutorService):325:337 -> b
+    124:132:void write(java.util.concurrent.ExecutorService):331:339 -> b
+com.android.tools.r8.dex.ApplicationWriter$1 -> com.android.tools.r8.dex.b$a:
+    com.android.tools.r8.dex.ResourceAdapter val$resourceAdapter -> a
+    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> b
+    java.util.Set val$generatedResourceNames -> d
+    com.android.tools.r8.utils.InternalOptions val$options -> c
+    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,java.util.Set):425:425 -> <init>
+    1:4:void visit(com.android.tools.r8.DataDirectoryResource):428:431 -> visit
+    5:5:void visit(com.android.tools.r8.DataEntryResource):437:437 -> visit
+    6:103:boolean com.android.tools.r8.dex.ResourceAdapter.isService(com.android.tools.r8.DataEntryResource):0:97 -> visit
+    6:103:void visit(com.android.tools.r8.DataEntryResource):437 -> visit
+    104:109:void visit(com.android.tools.r8.DataEntryResource):442:447 -> visit
+    110:113:void visit(com.android.tools.r8.DataEntryResource):446:449 -> visit
+com.android.tools.r8.dex.ApplicationWriter$SortAnnotations -> com.android.tools.r8.dex.b$b:
+    1:1:void <init>():81:81 -> <init>
+    2:2:void <init>(com.android.tools.r8.dex.ApplicationWriter$1):81:81 -> <init>
+    boolean add(com.android.tools.r8.graph.DexCode) -> a
+    boolean add(com.android.tools.r8.graph.DexDebugInfo) -> a
+    boolean add(com.android.tools.r8.graph.DexProgramClass) -> a
+    boolean add(com.android.tools.r8.graph.DexTypeList) -> a
+    boolean add(com.android.tools.r8.graph.ParameterAnnotationsList) -> a
+    boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory) -> a
+    1:1:boolean add(com.android.tools.r8.graph.DexAnnotationSet):86:86 -> a
+    2:2:boolean add(com.android.tools.r8.graph.DexAnnotation):93:93 -> a
+    3:4:boolean add(com.android.tools.r8.graph.DexEncodedArray):100:101 -> a
+com.android.tools.r8.dex.BinaryReader -> com.android.tools.r8.dex.c:
+    com.android.tools.r8.origin.Origin origin -> a
+    com.android.tools.r8.dex.CompatByteBuffer buffer -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ProgramResource):22:22 -> <init>
+    2:5:void <init>(com.android.tools.r8.origin.Origin,byte[]):25:28 -> <init>
+    1:2:int getUint(int):72:73 -> a
+    3:3:byte get():97:97 -> a
+    1:1:com.android.tools.r8.origin.Origin getOrigin():32:32 -> b
+    2:2:void position(int):86:86 -> b
+    1:2:int getUbyte():101:102 -> c
+    1:2:int getUint():56:57 -> d
+    1:1:int getUleb128():44:44 -> e
+    1:1:int getUleb128p1():52 -> e
+    1:2:int getUshort():62:63 -> f
+com.android.tools.r8.dex.ClassesChecksum -> com.android.tools.r8.dex.d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap dictionary -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:1:void <init>():23:23 -> <init>
+    2:8:void <init>():21:27 -> <init>
+    1:2:void append(com.android.tools.r8.com.google.gson.JsonObject):31:32 -> a
+    3:3:void lambda$append$0(java.util.Map$Entry):34:34 -> a
+    4:4:void addChecksum(java.lang.String,long):38:38 -> a
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap getChecksums():42:42 -> a
+    6:6:void lambda$toJsonString$1(com.android.tools.r8.com.google.gson.JsonObject,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$Entry):52:52 -> a
+    7:27:boolean definitelyPrecedesChecksumMarker(com.android.tools.r8.graph.DexString):83:103 -> a
+    1:7:java.lang.String toJsonString():47:53 -> b
+    8:14:void tryParseAndAppend(com.android.tools.r8.graph.DexString):58:64 -> b
+    15:15:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> b
+    15:15:void tryParseAndAppend(com.android.tools.r8.graph.DexString):65 -> b
+    16:16:void tryParseAndAppend(com.android.tools.r8.graph.DexString):66:66 -> b
+com.android.tools.r8.dex.CodeToKeep -> com.android.tools.r8.dex.i:
+    1:1:void <init>():20:20 -> <init>
+    void generateKeepRules(com.android.tools.r8.utils.InternalOptions) -> a
+    boolean isNop() -> a
+    void recordClass(com.android.tools.r8.graph.DexType) -> a
+    void recordField(com.android.tools.r8.graph.DexField) -> a
+    void recordMethod(com.android.tools.r8.graph.DexMethod) -> a
+    1:2:com.android.tools.r8.dex.CodeToKeep createCodeToKeep(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):23:24 -> a
+    3:3:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    3:3:com.android.tools.r8.dex.CodeToKeep createCodeToKeep(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):25 -> a
+    4:6:com.android.tools.r8.dex.CodeToKeep createCodeToKeep(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):26:28 -> a
+    void recordClassAllAccesses(com.android.tools.r8.graph.DexType) -> b
+com.android.tools.r8.dex.CodeToKeep$1 -> com.android.tools.r8.dex.e:
+com.android.tools.r8.dex.CodeToKeep$DesugaredLibraryCodeToKeep -> com.android.tools.r8.dex.g:
+    java.util.Map toKeep -> c
+    com.android.tools.r8.naming.NamingLens namingLens -> a
+    com.android.tools.r8.utils.InternalOptions options -> d
+    java.util.Set potentialTypesToKeep -> b
+    1:1:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):57:57 -> <init>
+    2:10:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):53:61 -> <init>
+    11:14:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):60:63 -> <init>
+    15:15:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):62:62 -> <init>
+    boolean isNop() -> a
+    1:10:void recordMethod(com.android.tools.r8.graph.DexMethod):72:81 -> a
+    11:16:void recordField(com.android.tools.r8.graph.DexField):88:93 -> a
+    17:18:void recordClass(com.android.tools.r8.graph.DexType):99:100 -> a
+    19:58:void generateKeepRules(com.android.tools.r8.utils.InternalOptions):131:170 -> a
+    1:3:void recordClassAllAccesses(com.android.tools.r8.graph.DexType):106:108 -> b
+    1:3:java.lang.String convertType(com.android.tools.r8.graph.DexType):123:125 -> c
+    1:1:void keepClass(com.android.tools.r8.graph.DexType):113:113 -> d
+    2:9:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexType.lookupBaseType(com.android.tools.r8.graph.DexItemFactory):349:356 -> d
+    2:9:void keepClass(com.android.tools.r8.graph.DexType):113 -> d
+    10:14:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexType.lookupBaseType(com.android.tools.r8.graph.DexItemFactory):354:358 -> d
+    10:14:void keepClass(com.android.tools.r8.graph.DexType):113 -> d
+    15:15:void keepClass(com.android.tools.r8.graph.DexType):114:114 -> d
+    1:1:boolean shouldKeep(com.android.tools.r8.graph.DexType):67:67 -> e
+com.android.tools.r8.dex.CodeToKeep$DesugaredLibraryCodeToKeep$KeepStruct -> com.android.tools.r8.dex.f:
+    java.util.Set fields -> a
+    java.util.Set methods -> b
+    boolean all -> c
+    1:5:void <init>():45:49 -> <init>
+    6:6:void <init>(com.android.tools.r8.dex.CodeToKeep$1):45:45 -> <init>
+com.android.tools.r8.dex.CodeToKeep$NopCodeToKeep -> com.android.tools.r8.dex.h:
+    1:1:void <init>():174:174 -> <init>
+    boolean isNop() -> a
+    void recordClass(com.android.tools.r8.graph.DexType) -> a
+    void recordField(com.android.tools.r8.graph.DexField) -> a
+    void recordMethod(com.android.tools.r8.graph.DexMethod) -> a
+    1:1:void generateKeepRules(com.android.tools.r8.utils.InternalOptions):195:195 -> a
+    void recordClassAllAccesses(com.android.tools.r8.graph.DexType) -> b
+com.android.tools.r8.dex.CompatByteBuffer -> com.android.tools.r8.dex.j:
+    java.nio.ByteBuffer buffer -> a
+    1:2:void <init>(java.nio.ByteBuffer):21:22 -> <init>
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> a
+    1:1:byte[] array():57 -> a
+    2:2:byte[] array():57:57 -> a
+    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> a
+    3:3:byte get(int):101 -> a
+    4:4:byte get(int):101:101 -> a
+    5:5:java.nio.ByteBuffer asByteBuffer():34:34 -> a
+    5:5:void get(byte[]):105 -> a
+    6:6:void get(byte[]):105:105 -> a
+    7:7:java.nio.ByteBuffer asByteBuffer():34:34 -> a
+    7:7:void order(java.nio.ByteOrder):93 -> a
+    8:8:void order(java.nio.ByteOrder):93:93 -> a
+    9:9:java.nio.ByteBuffer asByteBuffer():34:34 -> a
+    9:9:void put(byte):121 -> a
+    10:10:void put(byte):121:121 -> a
+    11:11:java.nio.ByteBuffer asByteBuffer():34:34 -> a
+    11:11:void putShort(short):125 -> a
+    12:12:void putShort(short):125:125 -> a
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> b
+    1:1:int arrayOffset():61 -> b
+    2:2:int arrayOffset():61:61 -> b
+    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> b
+    3:3:int getInt(int):113 -> b
+    4:4:int getInt(int):113:113 -> b
+    5:5:java.nio.ByteBuffer asByteBuffer():34:34 -> b
+    5:5:void put(byte[]):133 -> b
+    6:6:void put(byte[]):133:133 -> b
+    1:1:com.android.tools.r8.dex.CompatByteBuffer wrap(byte[]):26:26 -> c
+    2:2:java.nio.Buffer asBuffer():30:30 -> c
+    2:2:void position(int):43 -> c
+    3:3:void position(int):43:43 -> c
+    4:4:java.nio.ByteBuffer asByteBuffer():34:34 -> c
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> d
+    1:1:java.nio.ShortBuffer asShortBuffer():89 -> d
+    2:2:java.nio.ShortBuffer asShortBuffer():89:89 -> d
+    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> d
+    3:3:void putInt(int):129 -> d
+    4:4:void putInt(int):129:129 -> d
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> e
+    1:1:int capacity():65 -> e
+    2:2:int capacity():65:65 -> e
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> f
+    1:1:byte get():97 -> f
+    2:2:byte get():97:97 -> f
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> g
+    1:1:int getInt():109 -> g
+    2:2:int getInt():109:109 -> g
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> h
+    1:1:short getShort():117 -> h
+    2:2:short getShort():117:117 -> h
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> i
+    1:1:boolean hasArray():69 -> i
+    2:2:boolean hasArray():69:69 -> i
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> j
+    1:1:boolean hasRemaining():73 -> j
+    2:2:boolean hasRemaining():73:73 -> j
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> k
+    1:1:int position():77 -> k
+    2:2:int position():77:77 -> k
+    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> l
+    1:1:int remaining():81 -> l
+    2:2:int remaining():81:81 -> l
+    1:1:java.nio.Buffer asBuffer():30:30 -> m
+    1:1:void rewind():48 -> m
+    2:2:void rewind():48:48 -> m
+com.android.tools.r8.dex.Constants -> com.android.tools.r8.dex.k:
+    byte[] VDEX_FILE_MAGIC_PREFIX -> b
+    byte[] DEX_FILE_MAGIC_PREFIX -> a
+    1:4:void <clinit>():8:11 -> <clinit>
+com.android.tools.r8.dex.DebugBytecodeWriter -> com.android.tools.r8.dex.l:
+    com.android.tools.r8.graph.ObjectToOffsetMapping mapping -> a
+    com.android.tools.r8.graph.DexDebugInfo info -> b
+    java.nio.ByteBuffer buffer -> c
+    1:6:void <init>(com.android.tools.r8.graph.DexDebugInfo,com.android.tools.r8.graph.ObjectToOffsetMapping):21:26 -> <init>
+    1:12:byte[] generate():31:42 -> a
+    13:16:void maybeGrow(int):46:49 -> a
+    17:17:void putNoIndex():75:75 -> a
+    17:17:void putString(com.android.tools.r8.graph.DexString):89 -> a
+    18:18:void putString(com.android.tools.r8.graph.DexString):91:91 -> a
+    19:19:void putUleb128p1(int):71:71 -> a
+    19:19:void putString(com.android.tools.r8.graph.DexString):92 -> a
+    20:20:void putNoIndex():75:75 -> a
+    20:20:void putType(com.android.tools.r8.graph.DexType):80 -> a
+    21:21:void putType(com.android.tools.r8.graph.DexType):82:82 -> a
+    22:22:void putUleb128p1(int):71:71 -> a
+    22:22:void putType(com.android.tools.r8.graph.DexType):83 -> a
+    1:2:void putByte(int):54:55 -> b
+    1:3:void putSleb128(int):59:61 -> c
+    1:3:void putUleb128(int):65:67 -> d
+com.android.tools.r8.dex.DexOutputBuffer -> com.android.tools.r8.dex.m:
+    com.android.tools.r8.dex.CompatByteBuffer byteBuffer -> b
+    com.android.tools.r8.ByteBufferProvider byteBufferProvider -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>():31:31 -> <init>
+    2:4:void <init>(com.android.tools.r8.ByteBufferProvider):34:36 -> <init>
+    1:21:void putInstructions(com.android.tools.r8.code.Instruction[],com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.CodeToKeep):98:118 -> a
+    22:23:void putByte(byte):122:123 -> a
+    24:25:void putBytes(byte[]):127:128 -> a
+    26:27:void putShort(short):132:133 -> a
+    28:32:int align(int):148:152 -> a
+    33:33:byte[] asArray():179:179 -> a
+    1:20:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):51:70 -> b
+    21:23:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):65:67 -> b
+    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
+    24:24:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):67 -> b
+    25:25:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):67:67 -> b
+    26:31:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):57:62 -> b
+    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
+    32:32:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):62 -> b
+    33:33:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):62:62 -> b
+    34:34:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53:53 -> b
+    35:35:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
+    35:35:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53 -> b
+    36:36:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53:53 -> b
+    37:37:int position():157:157 -> b
+    1:6:void ensureSpaceFor(int):40:45 -> c
+    7:8:void freeByteBuffer(com.android.tools.r8.dex.CompatByteBuffer):75:76 -> c
+    7:8:void ensureSpaceFor(int):45 -> c
+    9:9:void ensureSpaceFor(int):46:46 -> c
+    10:11:com.android.tools.r8.dex.CompatByteBuffer stealByteBuffer():183:184 -> c
+    1:2:void forward(int):161:162 -> d
+    1:1:boolean isAligned(int):175:175 -> e
+    1:2:void moveTo(int):170:171 -> f
+    1:2:void putInt(int):137:138 -> g
+com.android.tools.r8.dex.DexOutputBuffer$1 -> com.android.tools.r8.dex.m$a:
+    1:1:void <init>():31:31 -> <init>
+com.android.tools.r8.dex.DexParser -> com.android.tools.r8.dex.n:
+    com.android.tools.r8.graph.OffsetToObjectMapping indexedItems -> h
+    com.android.tools.r8.graph.ClassKind classKind -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap checksums -> g
+    com.android.tools.r8.origin.Origin origin -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap offsetMap -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap codes -> i
+    com.android.tools.r8.dex.DexReader dexReader -> b
+    com.android.tools.r8.dex.DexSection[] dexSections -> c
+    int[] stringIDs -> d
+    boolean $assertionsDisabled -> l
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> k
+    com.android.tools.r8.utils.InternalOptions options -> f
+    1:1:void <clinit>():83:83 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.utils.InternalOptions):128:128 -> <init>
+    2:22:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.utils.InternalOptions):117:137 -> <init>
+    1:1:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):95:95 -> a
+    2:2:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.io.InputStream,com.android.tools.r8.origin.Origin):99:99 -> a
+    2:2:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):95 -> a
+    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(com.android.tools.r8.dex.DexReader):103:104 -> a
+    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.io.InputStream,com.android.tools.r8.origin.Origin):99 -> a
+    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):95 -> a
+    5:8:void checkName(com.android.tools.r8.graph.DexString):281:284 -> a
+    9:9:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    9:9:void checkName(com.android.tools.r8.graph.DexString):284 -> a
+    10:10:void checkName(com.android.tools.r8.graph.DexString):284:284 -> a
+    11:20:java.lang.Object cacheAt(int,java.util.function.Supplier):412:421 -> a
+    21:22:com.android.tools.r8.graph.DexAnnotation parseAnnotation():426:427 -> a
+    23:23:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
+    23:23:com.android.tools.r8.graph.DexAnnotation parseAnnotation():427 -> a
+    24:24:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
+    24:24:com.android.tools.r8.graph.DexAnnotation parseAnnotation():427 -> a
+    25:25:com.android.tools.r8.graph.DexAnnotation parseAnnotation():429:429 -> a
+    26:26:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> a
+    26:26:com.android.tools.r8.graph.DexAnnotation parseAnnotation():429 -> a
+    27:27:com.android.tools.r8.graph.DexAnnotation parseAnnotation():430:430 -> a
+    28:28:com.android.tools.r8.graph.DexAnnotation annotationAt(int):434:434 -> a
+    29:34:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):604:609 -> a
+    35:79:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    35:79:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):609 -> a
+    80:81:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):610:611 -> a
+    82:126:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    82:126:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):611 -> a
+    127:135:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):611:619 -> a
+    136:143:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):630:637 -> a
+    144:188:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    144:188:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):637 -> a
+    189:189:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):638:638 -> a
+    190:234:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    190:234:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):638 -> a
+    235:236:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):638:639 -> a
+    237:281:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    237:281:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):639 -> a
+    282:296:void ensureCodesInited(int):145:159 -> a
+    282:296:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    297:297:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
+    297:297:void ensureCodesInited(int):159 -> a
+    297:297:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    298:299:void ensureCodesInited(int):160:161 -> a
+    298:299:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    300:393:void com.android.tools.r8.dex.BinaryReader.align(int):0:93 -> a
+    300:393:void ensureCodesInited(int):161 -> a
+    300:393:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    394:406:com.android.tools.r8.graph.DexCode parseCodeItem():837:849 -> a
+    394:406:void ensureCodesInited(int):162 -> a
+    394:406:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    407:407:short com.android.tools.r8.dex.BinaryReader.getShort():68:68 -> a
+    407:407:com.android.tools.r8.graph.DexCode parseCodeItem():849 -> a
+    407:407:void ensureCodesInited(int):162 -> a
+    407:407:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    408:423:com.android.tools.r8.graph.DexCode parseCodeItem():849:864 -> a
+    408:423:void ensureCodesInited(int):162 -> a
+    408:423:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    424:424:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
+    424:424:com.android.tools.r8.graph.DexCode parseCodeItem():864 -> a
+    424:424:void ensureCodesInited(int):162 -> a
+    424:424:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    425:425:com.android.tools.r8.graph.DexCode parseCodeItem():866:866 -> a
+    425:425:void ensureCodesInited(int):162 -> a
+    425:425:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    426:470:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    426:470:com.android.tools.r8.graph.DexCode parseCodeItem():866 -> a
+    426:470:void ensureCodesInited(int):162 -> a
+    426:470:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    471:475:com.android.tools.r8.graph.DexCode parseCodeItem():867:871 -> a
+    471:475:void ensureCodesInited(int):162 -> a
+    471:475:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    476:476:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
+    476:476:com.android.tools.r8.graph.DexCode parseCodeItem():871 -> a
+    476:476:void ensureCodesInited(int):162 -> a
+    476:476:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    477:479:com.android.tools.r8.graph.DexCode parseCodeItem():872:874 -> a
+    477:479:void ensureCodesInited(int):162 -> a
+    477:479:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    480:528:int com.android.tools.r8.dex.BinaryReader.getSleb128():0:48 -> a
+    480:528:com.android.tools.r8.graph.DexCode parseCodeItem():874 -> a
+    480:528:void ensureCodesInited(int):162 -> a
+    480:528:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    529:533:com.android.tools.r8.graph.DexCode parseCodeItem():875:879 -> a
+    529:533:void ensureCodesInited(int):162 -> a
+    529:533:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    534:578:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    534:578:com.android.tools.r8.graph.DexCode parseCodeItem():879 -> a
+    534:578:void ensureCodesInited(int):162 -> a
+    534:578:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    579:579:com.android.tools.r8.graph.DexCode parseCodeItem():880:880 -> a
+    579:579:void ensureCodesInited(int):162 -> a
+    579:579:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    580:624:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    580:624:com.android.tools.r8.graph.DexCode parseCodeItem():880 -> a
+    580:624:void ensureCodesInited(int):162 -> a
+    580:624:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    625:629:com.android.tools.r8.graph.DexCode parseCodeItem():881:885 -> a
+    625:629:void ensureCodesInited(int):162 -> a
+    625:629:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    630:674:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    630:674:com.android.tools.r8.graph.DexCode parseCodeItem():885 -> a
+    630:674:void ensureCodesInited(int):162 -> a
+    630:674:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    675:678:com.android.tools.r8.graph.DexCode parseCodeItem():887:890 -> a
+    675:678:void ensureCodesInited(int):162 -> a
+    675:678:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    679:679:void com.android.tools.r8.graph.DexCode$Try.setHandlerIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):464:464 -> a
+    679:679:com.android.tools.r8.graph.DexCode parseCodeItem():891 -> a
+    679:679:void ensureCodesInited(int):162 -> a
+    679:679:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    680:680:com.android.tools.r8.graph.DexCode parseCodeItem():896:896 -> a
+    680:680:void ensureCodesInited(int):162 -> a
+    680:680:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    681:681:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
+    681:681:com.android.tools.r8.graph.DexCode parseCodeItem():896 -> a
+    681:681:void ensureCodesInited(int):162 -> a
+    681:681:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    682:687:com.android.tools.r8.graph.DexCode parseCodeItem():897:902 -> a
+    682:687:void ensureCodesInited(int):162 -> a
+    682:687:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    688:689:void ensureCodesInited(int):163:164 -> a
+    688:689:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
+    690:704:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):643:657 -> a
+    705:705:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    705:705:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):657 -> a
+    706:709:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):658:661 -> a
+    710:729:void addClassDefsTo(java.util.function.Consumer):667:686 -> a
+    730:730:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
+    730:730:void addClassDefsTo(java.util.function.Consumer):686 -> a
+    731:731:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
+    731:731:void addClassDefsTo(java.util.function.Consumer):686 -> a
+    732:734:void addClassDefsTo(java.util.function.Consumer):688:690 -> a
+    735:735:int com.android.tools.r8.dex.BinaryReader.getInt():78:78 -> a
+    735:735:void addClassDefsTo(java.util.function.Consumer):690 -> a
+    736:738:void addClassDefsTo(java.util.function.Consumer):690:692 -> a
+    739:739:int com.android.tools.r8.dex.BinaryReader.getInt():78:78 -> a
+    739:739:void addClassDefsTo(java.util.function.Consumer):692 -> a
+    740:777:void addClassDefsTo(java.util.function.Consumer):692:729 -> a
+    778:822:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    778:822:void addClassDefsTo(java.util.function.Consumer):729 -> a
+    823:823:void addClassDefsTo(java.util.function.Consumer):730:730 -> a
+    824:868:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    824:868:void addClassDefsTo(java.util.function.Consumer):730 -> a
+    869:869:void addClassDefsTo(java.util.function.Consumer):731:731 -> a
+    870:914:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    870:914:void addClassDefsTo(java.util.function.Consumer):731 -> a
+    915:915:void addClassDefsTo(java.util.function.Consumer):732:732 -> a
+    916:960:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> a
+    916:960:void addClassDefsTo(java.util.function.Consumer):732 -> a
+    961:963:void addClassDefsTo(java.util.function.Consumer):734:734 -> a
+    965:973:void addClassDefsTo(java.util.function.Consumer):736:744 -> a
+    974:988:void addClassDefsTo(java.util.function.Consumer):738:752 -> a
+    989:1023:void addClassDefsTo(java.util.function.Consumer):746:780 -> a
+    1024:1043:void addClassDefsTo(java.util.function.Consumer):763:782 -> a
+    1044:1044:void addClassDefsTo(java.util.function.Consumer):708:708 -> a
+    1045:1045:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    1045:1045:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    1045:1045:void addClassDefsTo(java.util.function.Consumer):708 -> a
+    1046:1046:void addClassDefsTo(java.util.function.Consumer):708:708 -> a
+    1047:1047:long lambda$addClassDefsTo$0(java.lang.Long,com.android.tools.r8.graph.DexProgramClass):760:760 -> a
+    1:2:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():438:439 -> b
+    3:3:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> b
+    3:3:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():439 -> b
+    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> b
+    4:4:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():439 -> b
+    5:13:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():441:449 -> b
+    14:15:boolean retainAnnotation(com.android.tools.r8.graph.DexAnnotation):468:469 -> b
+    14:15:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():450 -> b
+    16:29:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():451:464 -> b
+    30:31:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():461:462 -> b
+    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
+    32:32:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():462 -> b
+    33:33:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():462:462 -> b
+    34:34:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):473:473 -> b
+    35:37:java.lang.Object cacheAt(int,java.util.function.Supplier,java.util.function.Supplier):403:405 -> b
+    35:37:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):473 -> b
+    38:38:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):473:473 -> b
+    1:1:com.android.tools.r8.graph.ParameterAnnotationsList annotationSetRefListAt(int):362:362 -> c
+    2:11:com.android.tools.r8.graph.ParameterAnnotationsList parseAnnotationSetRefList():366:375 -> c
+    12:12:void com.android.tools.r8.graph.ParameterAnnotationsList.<init>(com.android.tools.r8.graph.DexAnnotationSet[]):56:56 -> c
+    12:12:com.android.tools.r8.graph.ParameterAnnotationsList parseAnnotationSetRefList():375 -> c
+    1:1:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):477:477 -> d
+    2:4:java.lang.Object cacheAt(int,java.util.function.Supplier,java.util.function.Supplier):403:405 -> d
+    2:4:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):477 -> d
+    5:5:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):477:477 -> d
+    6:9:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():482:485 -> d
+    10:16:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):323:329 -> d
+    10:16:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> d
+    17:17:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> d
+    17:17:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):329 -> d
+    17:17:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> d
+    18:24:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):330:336 -> d
+    18:24:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> d
+    25:31:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):344:350 -> d
+    25:31:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():487 -> d
+    32:32:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> d
+    32:32:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):350 -> d
+    32:32:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():487 -> d
+    33:39:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):351:357 -> d
+    33:39:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():487 -> d
+    40:46:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):382:388 -> d
+    40:46:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():488 -> d
+    47:47:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> d
+    47:47:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):388 -> d
+    47:47:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():488 -> d
+    48:56:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):389:397 -> d
+    48:56:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():488 -> d
+    57:58:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():489:490 -> d
+    1:1:com.android.tools.r8.graph.DexDebugInfo debugInfoAt(int):497:497 -> e
+    2:2:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():501:501 -> e
+    3:47:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> e
+    3:47:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():501 -> e
+    48:48:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():502:502 -> e
+    49:93:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> e
+    49:93:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():502 -> e
+    94:156:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():503:565 -> e
+    157:159:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():559:561 -> e
+    160:160:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():555:555 -> e
+    161:161:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():551:551 -> e
+    162:162:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():547:547 -> e
+    163:207:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> e
+    163:207:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():547 -> e
+    208:208:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():547:547 -> e
+    209:209:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():543:543 -> e
+    210:254:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> e
+    210:254:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():543 -> e
+    255:255:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():543:543 -> e
+    256:256:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():531:531 -> e
+    257:301:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> e
+    257:301:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():531 -> e
+    302:309:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():532:539 -> e
+    310:310:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():535:535 -> e
+    311:311:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():520:520 -> e
+    312:356:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> e
+    312:356:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():520 -> e
+    357:362:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():521:526 -> e
+    363:363:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():523:523 -> e
+    364:364:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():517:517 -> e
+    365:413:int com.android.tools.r8.dex.BinaryReader.getSleb128():0:48 -> e
+    365:413:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():517 -> e
+    414:414:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():517:517 -> e
+    415:415:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():514:514 -> e
+    416:460:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> e
+    416:460:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():514 -> e
+    461:513:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():514:566 -> e
+    514:573:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():511:570 -> e
+    1:1:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():290:290 -> f
+    2:46:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> f
+    2:46:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():290 -> f
+    47:47:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():291:291 -> f
+    48:92:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> f
+    48:92:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():291 -> f
+    93:95:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():292:294 -> f
+    96:140:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> f
+    96:140:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():294 -> f
+    141:144:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():295:298 -> f
+    145:145:com.android.tools.r8.graph.DexEncodedArray encodedArrayAt(int):316:316 -> f
+    1:1:com.android.tools.r8.graph.DexEncodedArray parseEncodedArray():312:312 -> g
+    2:8:com.android.tools.r8.dex.DexSection lookupSection(int):799:805 -> g
+    1:3:com.android.tools.r8.graph.DexTypeList typeListAt(int):178:180 -> h
+    4:4:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():302:302 -> h
+    5:49:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> h
+    5:49:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():302 -> h
+    50:52:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():303:305 -> h
+    1:1:com.android.tools.r8.graph.DexValue parseEncodedValue():184:184 -> i
+    2:2:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> i
+    2:2:com.android.tools.r8.graph.DexValue parseEncodedValue():184 -> i
+    3:3:com.android.tools.r8.graph.DexValue parseEncodedValue():276:276 -> i
+    4:4:com.android.tools.r8.graph.DexValue parseEncodedValue():263:263 -> i
+    5:6:com.android.tools.r8.graph.DexValue parseEncodedValue():258:259 -> i
+    7:8:com.android.tools.r8.graph.DexValue parseEncodedValue():254:255 -> i
+    9:10:com.android.tools.r8.graph.DexValue parseEncodedValue():250:251 -> i
+    11:12:com.android.tools.r8.graph.DexValue parseEncodedValue():246:247 -> i
+    13:15:com.android.tools.r8.graph.DexValue parseEncodedValue():240:242 -> i
+    16:18:com.android.tools.r8.graph.DexValue parseEncodedValue():234:236 -> i
+    19:20:com.android.tools.r8.graph.DexValue parseEncodedValue():229:230 -> i
+    21:71:com.android.tools.r8.graph.DexValue parseEncodedValue():223:273 -> i
+    72:73:com.android.tools.r8.graph.DexValue parseEncodedValue():267:268 -> i
+    74:74:com.android.tools.r8.graph.DexValue parseEncodedValue():219:219 -> i
+    75:75:com.android.tools.r8.graph.DexValue parseEncodedValue():215:215 -> i
+    76:77:com.android.tools.r8.graph.DexValue parseEncodedValue():205:206 -> i
+    78:79:com.android.tools.r8.graph.DexValue parseEncodedValue():200:201 -> i
+    80:96:com.android.tools.r8.graph.DexValue parseEncodedValue():195:211 -> i
+    97:99:com.android.tools.r8.graph.DexValue parseEncodedValue():189:191 -> i
+    1:17:com.android.tools.r8.dex.DexSection[] parseMap():810:826 -> j
+    18:23:com.android.tools.r8.dex.DexSection[] parseMap():825:830 -> j
+    24:24:void com.android.tools.r8.dex.DexSection.setEnd(int):0:0 -> j
+    24:24:com.android.tools.r8.dex.DexSection[] parseMap():830 -> j
+    25:25:com.android.tools.r8.dex.DexSection[] parseMap():832:832 -> j
+    26:26:int com.android.tools.r8.dex.BinaryReader.end():107:107 -> j
+    26:26:com.android.tools.r8.dex.DexSection[] parseMap():832 -> j
+    27:27:void com.android.tools.r8.dex.DexSection.setEnd(int):0:0 -> j
+    27:27:com.android.tools.r8.dex.DexSection[] parseMap():832 -> j
+    1:8:void parseStringIDs():787:794 -> k
+    1:5:com.android.tools.r8.graph.DexTypeList parseTypeList():169:173 -> l
+    1:3:void populateStrings():918:920 -> m
+    1:3:void populateIndexTables():907 -> m
+    4:6:com.android.tools.r8.graph.DexString stringAt(int):1144:1146 -> m
+    4:6:void populateStrings():920 -> m
+    4:6:void populateIndexTables():907 -> m
+    7:51:int com.android.tools.r8.dex.BinaryReader.getUleb128():0:44 -> m
+    7:51:com.android.tools.r8.graph.DexString stringAt(int):1146 -> m
+    7:51:void populateStrings():920 -> m
+    7:51:void populateIndexTables():907 -> m
+    52:55:com.android.tools.r8.graph.DexString stringAt(int):1147:1150 -> m
+    52:55:void populateStrings():920 -> m
+    52:55:void populateIndexTables():907 -> m
+    56:56:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> m
+    56:56:com.android.tools.r8.graph.DexString stringAt(int):1150 -> m
+    56:56:void populateStrings():920 -> m
+    56:56:void populateIndexTables():907 -> m
+    57:59:com.android.tools.r8.graph.DexString stringAt(int):1151:1153 -> m
+    57:59:void populateStrings():920 -> m
+    57:59:void populateIndexTables():907 -> m
+    60:60:void populateStrings():920:920 -> m
+    60:60:void populateIndexTables():907 -> m
+    61:69:void populateChecksums():950:958 -> m
+    61:69:void populateIndexTables():908 -> m
+    70:71:void populateTypes():941:942 -> m
+    70:71:void populateIndexTables():909 -> m
+    72:91:boolean verifyOrderOfTypeIds(com.android.tools.r8.dex.DexSection):967:986 -> m
+    72:91:void populateTypes():942 -> m
+    72:91:void populateIndexTables():909 -> m
+    92:92:boolean verifyOrderOfTypeIds(com.android.tools.r8.dex.DexSection):981:981 -> m
+    92:92:void populateTypes():942 -> m
+    92:92:void populateIndexTables():909 -> m
+    93:95:void populateTypes():943:945 -> m
+    93:95:void populateIndexTables():909 -> m
+    96:102:com.android.tools.r8.graph.DexType typeAt(int):1157:1163 -> m
+    96:102:void populateTypes():945 -> m
+    96:102:void populateIndexTables():909 -> m
+    103:103:void populateTypes():945:945 -> m
+    103:103:void populateIndexTables():909 -> m
+    104:105:void populateFields():995:996 -> m
+    104:105:void populateIndexTables():910 -> m
+    106:141:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1011:1046 -> m
+    106:141:void populateFields():996 -> m
+    106:141:void populateIndexTables():910 -> m
+    142:152:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1043:1053 -> m
+    142:152:void populateFields():996 -> m
+    142:152:void populateIndexTables():910 -> m
+    153:157:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1050:1054 -> m
+    153:157:void populateFields():996 -> m
+    153:157:void populateIndexTables():910 -> m
+    158:158:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1039:1039 -> m
+    158:158:void populateFields():996 -> m
+    158:158:void populateIndexTables():910 -> m
+    159:161:void populateFields():997:999 -> m
+    159:161:void populateIndexTables():910 -> m
+    162:174:com.android.tools.r8.graph.DexField fieldAt(int):1167:1179 -> m
+    162:174:void populateFields():999 -> m
+    162:174:void populateIndexTables():910 -> m
+    175:175:void populateFields():999:999 -> m
+    175:175:void populateIndexTables():910 -> m
+    176:179:void populateProtos():1065:1068 -> m
+    176:179:void populateIndexTables():911 -> m
+    180:192:com.android.tools.r8.graph.DexProto protoAt(int):1240:1252 -> m
+    180:192:void populateProtos():1068 -> m
+    180:192:void populateIndexTables():911 -> m
+    193:193:void populateProtos():1068:1068 -> m
+    193:193:void populateIndexTables():911 -> m
+    194:195:void populateMethods():1073:1074 -> m
+    194:195:void populateIndexTables():912 -> m
+    196:231:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1090:1125 -> m
+    196:231:void populateMethods():1074 -> m
+    196:231:void populateIndexTables():912 -> m
+    232:242:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1122:1132 -> m
+    232:242:void populateMethods():1074 -> m
+    232:242:void populateIndexTables():912 -> m
+    243:247:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1129:1133 -> m
+    243:247:void populateMethods():1074 -> m
+    243:247:void populateIndexTables():912 -> m
+    248:248:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1118:1118 -> m
+    248:248:void populateMethods():1074 -> m
+    248:248:void populateIndexTables():912 -> m
+    249:251:void populateMethods():1075:1077 -> m
+    249:251:void populateIndexTables():912 -> m
+    252:264:com.android.tools.r8.graph.DexMethod methodAt(int):1256:1268 -> m
+    252:264:void populateMethods():1077 -> m
+    252:264:void populateIndexTables():912 -> m
+    265:265:com.android.tools.r8.graph.DexMethod methodAt(int):1265:1265 -> m
+    265:265:void populateMethods():1077 -> m
+    265:265:void populateIndexTables():912 -> m
+    266:266:void populateMethods():1077:1077 -> m
+    266:266:void populateIndexTables():912 -> m
+    267:270:void populateMethodHandles():925:928 -> m
+    267:270:void populateIndexTables():913 -> m
+    271:298:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1183:1210 -> m
+    271:298:void populateMethodHandles():928 -> m
+    271:298:void populateIndexTables():913 -> m
+    299:299:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1206:1206 -> m
+    299:299:void populateMethodHandles():928 -> m
+    299:299:void populateIndexTables():913 -> m
+    300:316:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1198:1214 -> m
+    300:316:void populateMethodHandles():928 -> m
+    300:316:void populateIndexTables():913 -> m
+    317:317:void populateMethodHandles():928:928 -> m
+    317:317:void populateIndexTables():913 -> m
+    318:321:void populateCallSites():933:936 -> m
+    318:321:void populateIndexTables():914 -> m
+    322:339:com.android.tools.r8.graph.DexCallSite callSiteAt(int):1219:1236 -> m
+    322:339:void populateCallSites():936 -> m
+    322:339:void populateIndexTables():914 -> m
+    340:340:com.android.tools.r8.graph.DexCallSite callSiteAt(int):1231:1231 -> m
+    340:340:void populateCallSites():936 -> m
+    340:340:void populateIndexTables():914 -> m
+    341:341:void populateCallSites():936:936 -> m
+    341:341:void populateIndexTables():914 -> m
+com.android.tools.r8.dex.DexParser$1 -> com.android.tools.r8.dex.n$a:
+com.android.tools.r8.dex.DexParser$AnnotationsDirectory -> com.android.tools.r8.dex.n$b:
+    com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] NO_METHOD_ANNOTATIONS -> g
+    com.android.tools.r8.dex.DexParser$AnnotationsDirectory THE_EMPTY_ANNOTATIONS_DIRECTORY -> h
+    com.android.tools.r8.graph.DexAnnotationSet clazz -> a
+    com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] fields -> b
+    com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] NO_PARAMETER_ANNOTATIONS -> e
+    com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] NO_FIELD_ANNOTATIONS -> f
+    com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] methods -> c
+    com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parameters -> d
+    1:11:void <clinit>():1273:1283 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[]):1295:1299 -> <init>
+    1:1:com.android.tools.r8.dex.DexParser$AnnotationsDirectory empty():1303:1303 -> a
+com.android.tools.r8.dex.DexParser$AttributesAndAnnotations -> com.android.tools.r8.dex.n$c:
+    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMethodAttribute -> b
+    java.util.List lazyAnnotations -> d
+    com.android.tools.r8.graph.DexAnnotationSet originalAnnotations -> a
+    java.util.List innerClasses -> c
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():1307:1307 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1333:1333 -> <init>
+    2:47:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1310:1355 -> <init>
+    48:93:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1354:1399 -> <init>
+    94:109:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1394:1409 -> <init>
+    1:7:com.android.tools.r8.graph.DexAnnotationSet getAnnotations():1315:1321 -> a
+    8:10:void ensureAnnotations(int):1415:1417 -> a
+    11:12:void copyAnnotation(com.android.tools.r8.graph.DexAnnotation):1422:1423 -> a
+    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute getEnclosingMethodAttribute():1329:1329 -> b
+    1:1:java.util.List getInnerClasses():1325:1325 -> c
+com.android.tools.r8.dex.DexParser$MemberAnnotationIterator -> com.android.tools.r8.dex.n$d:
+    java.util.function.Supplier emptyValue -> c
+    com.android.tools.r8.graph.DexMemberAnnotation[] annotations -> b
+    int index -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier,com.android.tools.r8.dex.DexParser$1):573:573 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier):580:580 -> <init>
+    3:10:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier):575:582 -> <init>
+    1:7:com.android.tools.r8.graph.DexItem getNextFor(com.android.tools.r8.graph.DexMember):592:598 -> a
+    8:8:com.android.tools.r8.graph.DexItem getNextFor(com.android.tools.r8.graph.DexMember):596:596 -> a
+com.android.tools.r8.dex.DexReader -> com.android.tools.r8.dex.o:
+    com.android.tools.r8.utils.DexVersion version -> d
+    1:2:void <init>(com.android.tools.r8.ProgramResource):26:27 -> <init>
+    3:4:void <init>(com.android.tools.r8.origin.Origin,byte[]):36:37 -> <init>
+    1:9:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):43:51 -> a
+    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    10:10:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):51 -> a
+    11:31:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):51:71 -> a
+    32:32:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):69:69 -> a
+    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    33:33:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):69 -> a
+    34:34:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):69:69 -> a
+    35:35:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61:61 -> a
+    36:36:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    36:36:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61 -> a
+    37:37:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61:61 -> a
+    38:38:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):46:46 -> a
+    39:39:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    39:39:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):46 -> a
+    40:40:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):46:46 -> a
+    1:1:com.android.tools.r8.utils.DexVersion getDexVersion():89:89 -> g
+    1:7:void setByteOrder():77:83 -> h
+    8:8:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> h
+    8:8:void setByteOrder():83 -> h
+    9:9:void setByteOrder():83:83 -> h
+com.android.tools.r8.dex.DexSection -> com.android.tools.r8.dex.p:
+    int length -> b
+    int offset -> c
+    boolean $assertionsDisabled -> d
+    int type -> a
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:5:void <init>(int,int,int,int):15:19 -> <init>
+    1:1:java.lang.String toString():83:83 -> toString
+    2:2:java.lang.String typeName():33:33 -> toString
+    2:2:java.lang.String toString():83 -> toString
+    3:3:java.lang.String toString():83:83 -> toString
+com.android.tools.r8.dex.FileWriter -> com.android.tools.r8.dex.r:
+    com.android.tools.r8.graph.ObjectToOffsetMapping mapping -> a
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.utils.InternalOptions options -> d
+    com.android.tools.r8.dex.MethodToCodeObjectMapping codeMapping -> b
+    com.android.tools.r8.dex.DexOutputBuffer dest -> f
+    com.android.tools.r8.dex.CodeToKeep desugaredLibraryCodeToKeep -> h
+    com.android.tools.r8.naming.NamingLens namingLens -> e
+    com.android.tools.r8.dex.FileWriter$MixedSectionOffsets mixedSectionOffsets -> g
+    com.android.tools.r8.graph.DexApplication application -> c
+    1:1:void <clinit>():74:74 -> <clinit>
+    1:9:void <init>(com.android.tools.r8.ByteBufferProvider,com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.dex.CodeToKeep):105:113 -> <init>
+    1:1:com.android.tools.r8.dex.FileWriter$MixedSectionOffsets access$300(com.android.tools.r8.dex.FileWriter):74:74 -> a
+    2:3:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):118:119 -> a
+    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
+    4:4:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):119 -> a
+    5:5:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):121:121 -> a
+    6:86:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    6:86:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):121 -> a
+    87:87:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):122:122 -> a
+    88:88:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
+    88:88:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):122 -> a
+    89:89:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):123:123 -> a
+    90:90:boolean com.android.tools.r8.graph.PresortedComparable.isSorted(java.lang.Object[],java.util.function.Function):19:19 -> a
+    90:90:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):123 -> a
+    91:93:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):123:125 -> a
+    94:94:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
+    94:94:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):125 -> a
+    95:95:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):126:126 -> a
+    96:96:com.android.tools.r8.graph.DexString lambda$writeEncodedAnnotation$0(com.android.tools.r8.graph.DexAnnotationElement):123:123 -> a
+    97:117:com.android.tools.r8.dex.FileWriter collect():132:152 -> a
+    118:155:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):251:288 -> a
+    156:156:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    156:156:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):288 -> a
+    157:157:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):288:288 -> a
+    158:159:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):264:265 -> a
+    160:160:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    160:160:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):265 -> a
+    161:161:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):265:265 -> a
+    162:167:void lambda$sortDexCodesByClassName$1(java.util.List,java.util.Map,com.android.tools.r8.graph.DexEncodedMethod):319:324 -> a
+    168:174:void addSignaturesFromMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexCode,java.util.Map,com.android.tools.r8.naming.ClassNameMapper):340:346 -> a
+    168:174:void lambda$sortDexCodesByClassName$1(java.util.List,java.util.Map,com.android.tools.r8.graph.DexEncodedMethod):323 -> a
+    175:177:void writeFixedSectionItems(java.util.Collection,int,java.util.function.Consumer):351:353 -> a
+    178:182:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer,int):372:376 -> a
+    183:184:void writeTypeItem(com.android.tools.r8.graph.DexType):425:426 -> a
+    185:187:void writeProtoItem(com.android.tools.r8.graph.DexProto):430:432 -> a
+    188:195:void writeFieldItem(com.android.tools.r8.graph.DexField):436:443 -> a
+    196:203:void writeMethodItem(com.android.tools.r8.graph.DexMethod):447:454 -> a
+    204:205:void writeDebugItem(com.android.tools.r8.graph.DexDebugInfo):472:473 -> a
+    206:220:void writeCodeItem(com.android.tools.r8.graph.DexCode):477:491 -> a
+    221:221:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
+    221:221:void writeCodeItem(com.android.tools.r8.graph.DexCode):491 -> a
+    222:230:void writeCodeItem(com.android.tools.r8.graph.DexCode):492:500 -> a
+    231:311:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    231:311:void writeCodeItem(com.android.tools.r8.graph.DexCode):500 -> a
+    312:317:void writeCodeItem(com.android.tools.r8.graph.DexCode):501:506 -> a
+    318:402:void com.android.tools.r8.dex.DexOutputBuffer.putSleb128(int):0:84 -> a
+    318:402:void writeCodeItem(com.android.tools.r8.graph.DexCode):506 -> a
+    403:404:void writeCodeItem(com.android.tools.r8.graph.DexCode):507:508 -> a
+    405:485:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    405:485:void writeCodeItem(com.android.tools.r8.graph.DexCode):508 -> a
+    486:486:void writeCodeItem(com.android.tools.r8.graph.DexCode):509:509 -> a
+    487:567:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    487:567:void writeCodeItem(com.android.tools.r8.graph.DexCode):509 -> a
+    568:568:void writeCodeItem(com.android.tools.r8.graph.DexCode):512:512 -> a
+    569:649:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    569:649:void writeCodeItem(com.android.tools.r8.graph.DexCode):512 -> a
+    650:659:void writeCodeItem(com.android.tools.r8.graph.DexCode):515:524 -> a
+    660:665:void writeTypeList(com.android.tools.r8.graph.DexTypeList):529:534 -> a
+    666:667:void writeStringData(com.android.tools.r8.graph.DexString):539:540 -> a
+    668:748:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    668:748:void writeStringData(com.android.tools.r8.graph.DexString):540 -> a
+    749:749:void writeStringData(com.android.tools.r8.graph.DexString):541:541 -> a
+    750:750:com.android.tools.r8.graph.DexType lambda$writeAnnotationSet$2(com.android.tools.r8.graph.DexAnnotation):554:554 -> a
+    751:751:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):554:554 -> a
+    752:752:boolean com.android.tools.r8.graph.PresortedComparable.isSorted(java.lang.Object[],java.util.function.Function):19:19 -> a
+    752:752:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):554 -> a
+    753:757:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):554:558 -> a
+    758:758:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
+    758:758:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):558 -> a
+    759:761:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):560:562 -> a
+    762:771:void writeAnnotationSetRefList(com.android.tools.r8.graph.ParameterAnnotationsList):567:576 -> a
+    772:774:void writeMemberAnnotations(java.util.List,java.util.function.ToIntFunction):582:584 -> a
+    775:787:void writeAnnotationDirectory(com.android.tools.r8.graph.DexAnnotationDirectory):589:601 -> a
+    788:788:int lambda$writeAnnotationDirectory$3(com.android.tools.r8.graph.DexEncodedField):598:598 -> a
+    789:794:void writeEncodedFields(java.util.List):606:611 -> a
+    795:875:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    795:875:void writeEncodedFields(java.util.List):611 -> a
+    876:876:void writeEncodedFields(java.util.List):613:613 -> a
+    877:957:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    877:957:void writeEncodedFields(java.util.List):613 -> a
+    958:958:void writeEncodedFields(java.util.List):614:614 -> a
+    959:964:void writeEncodedMethods(java.util.List,boolean):619:624 -> a
+    965:1045:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    965:1045:void writeEncodedMethods(java.util.List,boolean):624 -> a
+    1046:1046:void writeEncodedMethods(java.util.List,boolean):626:626 -> a
+    1047:1127:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    1047:1127:void writeEncodedMethods(java.util.List,boolean):626 -> a
+    1128:1132:void writeEncodedMethods(java.util.List,boolean):627:631 -> a
+    1133:1213:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    1133:1213:void writeEncodedMethods(java.util.List,boolean):631 -> a
+    1214:1214:void writeEncodedMethods(java.util.List,boolean):633:633 -> a
+    1215:1295:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    1215:1295:void writeEncodedMethods(java.util.List,boolean):633 -> a
+    1296:1296:void writeEncodedMethods(java.util.List,boolean):636:636 -> a
+    1297:1303:void addStaticFieldValues(com.android.tools.r8.graph.DexProgramClass):660:666 -> a
+    1304:1306:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):703:705 -> a
+    1307:1307:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
+    1307:1307:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):705 -> a
+    1308:1308:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):707:707 -> a
+    1309:1389:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> a
+    1309:1389:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):707 -> a
+    1390:1391:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):708:709 -> a
+    1392:1398:int writeMapItem(int,int,int):717:723 -> a
+    1399:1399:void checkThatInvokeCustomIsAllowed():1365:1365 -> a
+    1399:1399:void writeCallSite(com.android.tools.r8.graph.DexCallSite):697 -> a
+    1400:1401:void writeCallSite(com.android.tools.r8.graph.DexCallSite):698:699 -> a
+    1402:1402:void checkThatInvokeCustomIsAllowed():1366:1366 -> a
+    1402:1402:void writeCallSite(com.android.tools.r8.graph.DexCallSite):697 -> a
+    1403:1403:void checkThatInvokeCustomIsAllowed():1365:1365 -> a
+    1403:1403:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):671 -> a
+    1404:1409:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):673:678 -> a
+    1410:1418:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):675:683 -> a
+    1419:1419:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> a
+    1419:1419:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):685 -> a
+    1420:1422:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):686:688 -> a
+    1423:1423:boolean com.android.tools.r8.graph.DexMethodHandle.isFieldHandle():293:293 -> a
+    1423:1423:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):688 -> a
+    1424:1429:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):688:693 -> a
+    1430:1430:void checkThatInvokeCustomIsAllowed():1366:1366 -> a
+    1430:1430:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):671 -> a
+    1:7:void checkInterfaceMethods():232:238 -> b
+    1:7:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():159 -> b
+    8:8:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():162:162 -> b
+    9:22:boolean verifyNames():293:306 -> b
+    9:22:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():162 -> b
+    23:33:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():164:174 -> b
+    34:34:int sizeOfCodeItems(java.lang.Iterable):382:382 -> b
+    34:34:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174 -> b
+    35:57:int sizeOfCodeItem(com.android.tools.r8.graph.DexCode):392:414 -> b
+    35:57:int sizeOfCodeItems(java.lang.Iterable):384 -> b
+    35:57:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174 -> b
+    58:58:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> b
+    58:58:int sizeOfCodeItem(com.android.tools.r8.graph.DexCode):415 -> b
+    58:58:int sizeOfCodeItems(java.lang.Iterable):384 -> b
+    58:58:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174 -> b
+    59:60:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174:175 -> b
+    61:61:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
+    61:61:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():175 -> b
+    62:72:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():179:189 -> b
+    73:73:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
+    73:73:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():189 -> b
+    74:74:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():190:190 -> b
+    75:75:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
+    75:75:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():190 -> b
+    76:76:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():192:192 -> b
+    77:77:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
+    77:77:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():192 -> b
+    78:78:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():194:194 -> b
+    79:79:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
+    79:79:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():194 -> b
+    80:80:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():196:196 -> b
+    81:81:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
+    81:81:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():196 -> b
+    82:90:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():198:206 -> b
+    91:96:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):728:733 -> b
+    91:96:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    97:100:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):732:735 -> b
+    97:100:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    101:104:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):734:737 -> b
+    101:104:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    105:108:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):736:739 -> b
+    105:108:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    109:112:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):738:741 -> b
+    109:112:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    113:116:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):740:743 -> b
+    113:116:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    117:120:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):742:745 -> b
+    117:120:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    121:124:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):744:747 -> b
+    121:124:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    125:128:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):746:749 -> b
+    125:128:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    129:132:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):748:751 -> b
+    129:132:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    133:136:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):750:753 -> b
+    133:136:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    137:140:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):752:755 -> b
+    137:140:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    141:144:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):754:757 -> b
+    141:144:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    145:148:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):756:759 -> b
+    145:148:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    149:152:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):758:761 -> b
+    149:152:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    153:156:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):760:763 -> b
+    153:156:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    157:161:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):762:766 -> b
+    157:161:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    162:167:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):764:769 -> b
+    162:167:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    168:174:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):767:773 -> b
+    168:174:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
+    175:184:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():208:217 -> b
+    185:187:void writeFixedSectionItems(com.android.tools.r8.graph.DexProgramClass[],int,java.util.function.Consumer):359:361 -> b
+    185:187:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():217 -> b
+    188:190:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():218:220 -> b
+    191:191:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():219:219 -> b
+    192:198:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):777:783 -> b
+    192:198:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
+    199:200:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):782:783 -> b
+    199:200:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
+    201:235:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):779:813 -> b
+    201:235:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
+    236:238:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):818:820 -> b
+    236:238:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():224 -> b
+    239:241:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):819:821 -> b
+    239:241:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():224 -> b
+    242:244:void writeChecksum(com.android.tools.r8.dex.FileWriter$Layout):828:830 -> b
+    242:244:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():225 -> b
+    245:248:void writeChecksum(com.android.tools.r8.dex.FileWriter$Layout):829:832 -> b
+    245:248:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():225 -> b
+    249:249:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():228:228 -> b
+    250:250:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):823:823 -> b
+    250:250:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():224 -> b
+    251:251:void writeStringItem(com.android.tools.r8.graph.DexString):421:421 -> b
+    252:254:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):545:547 -> b
+    255:255:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> b
+    255:255:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):547 -> b
+    256:257:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):549:550 -> b
+    258:258:int lambda$writeAnnotationDirectory$4(com.android.tools.r8.graph.DexEncodedMethod):600:600 -> b
+    259:265:void writeClassData(com.android.tools.r8.graph.DexProgramClass):642:648 -> b
+    266:346:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> b
+    266:346:void writeClassData(com.android.tools.r8.graph.DexProgramClass):648 -> b
+    347:347:void writeClassData(com.android.tools.r8.graph.DexProgramClass):649:649 -> b
+    348:428:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> b
+    348:428:void writeClassData(com.android.tools.r8.graph.DexProgramClass):649 -> b
+    429:429:void writeClassData(com.android.tools.r8.graph.DexProgramClass):650:650 -> b
+    430:510:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> b
+    430:510:void writeClassData(com.android.tools.r8.graph.DexProgramClass):650 -> b
+    511:511:void writeClassData(com.android.tools.r8.graph.DexProgramClass):651:651 -> b
+    512:592:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):0:80 -> b
+    512:592:void writeClassData(com.android.tools.r8.graph.DexProgramClass):651 -> b
+    593:597:void writeClassData(com.android.tools.r8.graph.DexProgramClass):652:656 -> b
+    1:15:java.util.List sortDexCodesByClassName():314:328 -> c
+    16:19:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):458:461 -> c
+    20:24:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):460:464 -> c
+    25:29:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):463:467 -> c
+    30:32:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):466:468 -> c
+    33:33:int lambda$writeAnnotationDirectory$5(com.android.tools.r8.graph.DexEncodedMethod):602:602 -> c
+com.android.tools.r8.dex.FileWriter$1 -> com.android.tools.r8.dex.q:
+com.android.tools.r8.dex.FileWriter$ByteBufferResult -> com.android.tools.r8.dex.r$a:
+    com.android.tools.r8.dex.CompatByteBuffer buffer -> a
+    int length -> b
+    1:1:void <init>(com.android.tools.r8.dex.CompatByteBuffer,int,com.android.tools.r8.dex.FileWriter$1):77:77 -> <init>
+    2:4:void <init>(com.android.tools.r8.dex.CompatByteBuffer,int):83:85 -> <init>
+com.android.tools.r8.dex.FileWriter$Layout -> com.android.tools.r8.dex.s:
+    int annotationsOffset -> n
+    int annotationSetsOffset -> o
+    int typeListsOffset -> l
+    int stringDataOffsets -> m
+    int codesOffset -> j
+    int debugInfosOffset -> k
+    int methodHandleIdsOffset -> h
+    int dataSectionOffset -> i
+    int classDefsOffset -> f
+    boolean $assertionsDisabled -> v
+    int callSiteIdsOffset -> g
+    int fieldIdsOffset -> d
+    int methodIdsOffset -> e
+    int typeIdsOffset -> b
+    int protoIdsOffset -> c
+    int stringIdsOffset -> a
+    int mapOffset -> t
+    int endOfFile -> u
+    int classDataOffset -> r
+    int encodedArrarysOffset -> s
+    int annotationSetRefListsOffset -> p
+    int annotationDirectoriesOffset -> q
+    1:1:void <clinit>():840:840 -> <clinit>
+    1:1:void <init>(int,int,int,int,int,int,int,int,int):872:872 -> <init>
+    2:35:void <init>(int,int,int,int,int,int,int,int,int):856:889 -> <init>
+    void alreadySetOffset(int) -> a
+    1:10:com.android.tools.r8.dex.FileWriter$Layout from(com.android.tools.r8.graph.ObjectToOffsetMapping):894:903 -> a
+    11:11:boolean isValidOffset(int,boolean):913:913 -> a
+    12:13:int getAnnotationDirectoriesOffset():991:992 -> a
+    1:2:int getAnnotationSetRefListsOffset():981:982 -> b
+    3:4:void setAnnotationDirectoriesOffset(int):996:997 -> b
+    1:2:int getAnnotationSetsOffset():967:968 -> c
+    3:4:void setAnnotationSetRefListsOffset(int):986:987 -> c
+    1:2:int getAnnotationsOffset():957:958 -> d
+    3:4:void setAnnotationSetsOffset(int):976:977 -> d
+    1:2:void setAnnotationsOffset(int):962:963 -> e
+    3:4:int getClassDataOffset():1001:1002 -> e
+    1:2:int getCodesOffset():917:918 -> f
+    3:4:void setClassDataOffset(int):1006:1007 -> f
+    1:2:void setCodesOffset(int):922:923 -> g
+    3:3:int getEndOfFile():1029:1029 -> g
+    3:3:int getDataSectionSize():907 -> g
+    4:5:int getDataSectionSize():907:908 -> g
+    1:2:int getDebugInfosOffset():927:928 -> h
+    3:4:void setDebugInfosOffset(int):932:933 -> h
+    1:2:int getEncodedArrarysOffset():1011:1012 -> i
+    3:4:void setEncodedArrarysOffset(int):1016:1017 -> i
+    1:1:int getEndOfFile():1029:1029 -> j
+    2:2:void setEndOfFile(int):1033:1033 -> j
+    1:1:int getMapOffset():1021:1021 -> k
+    2:2:void setMapOffset(int):1025:1025 -> k
+    1:2:int getStringDataOffsets():947:948 -> l
+    3:4:void setStringDataOffsets(int):952:953 -> l
+    1:2:int getTypeListsOffset():937:938 -> m
+    3:4:void setTypeListsOffset(int):942:943 -> m
+com.android.tools.r8.dex.FileWriter$MixedSectionOffsets -> com.android.tools.r8.dex.t:
+    boolean $assertionsDisabled -> n
+    int minApiLevel -> m
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap debugInfos -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap typeLists -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotations -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap stringData -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap codes -> b
+    com.android.tools.r8.dex.MethodToCodeObjectMapping codeMapping -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationSets -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationSetRefLists -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationDirectories -> i
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap classesWithData -> j
+    java.util.Map clazzToAnnotationDirectory -> l
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap encodedArrays -> k
+    1:1:void <clinit>():1044:1044 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.dex.FileWriter$1):1044:1044 -> <init>
+    2:2:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping):1080:1080 -> <init>
+    3:34:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping):1051:1082 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap access$100(com.android.tools.r8.dex.FileWriter$MixedSectionOffsets):1044:1044 -> a
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap createObject2IntMap():1069:1070 -> a
+    4:5:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,java.lang.Object):1086:1087 -> a
+    6:6:boolean add(com.android.tools.r8.graph.DexProgramClass):1103:1103 -> a
+    7:7:boolean add(com.android.tools.r8.graph.DexEncodedArray):1108:1108 -> a
+    8:11:boolean add(com.android.tools.r8.graph.DexAnnotationSet):1115:1118 -> a
+    12:12:void visit(com.android.tools.r8.graph.DexEncodedMethod):1123:1123 -> a
+    13:13:boolean add(com.android.tools.r8.graph.DexCode):1128:1128 -> a
+    14:15:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.lang.Object):1094:1095 -> a
+    14:15:boolean add(com.android.tools.r8.graph.DexCode):1128 -> a
+    16:16:boolean add(com.android.tools.r8.graph.DexDebugInfo):1133:1133 -> a
+    17:20:boolean add(com.android.tools.r8.graph.DexTypeList):1138:1141 -> a
+    21:24:boolean add(com.android.tools.r8.graph.ParameterAnnotationsList):1146:1149 -> a
+    25:25:boolean add(com.android.tools.r8.graph.DexAnnotation):1154:1154 -> a
+    26:28:boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory):1160:1162 -> a
+    29:29:boolean add(com.android.tools.r8.graph.DexString):1166:1166 -> a
+    30:31:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.lang.Object):1094:1095 -> a
+    30:31:boolean add(com.android.tools.r8.graph.DexString):1166 -> a
+    32:33:int lookup(java.lang.Object,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap):1213:1214 -> a
+    34:35:int lookup(java.lang.Object,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1222:1223 -> a
+    36:37:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap):1285:1286 -> a
+    38:38:void setOffsetFor(com.android.tools.r8.graph.DexDebugInfo,int):1295:1295 -> a
+    39:39:void setOffsetFor(com.android.tools.r8.graph.DexCode,int):1299:1299 -> a
+    40:41:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1290:1291 -> a
+    40:41:void setOffsetFor(com.android.tools.r8.graph.DexCode,int):1299 -> a
+    42:43:void setOffsetFor(com.android.tools.r8.graph.DexTypeList,int):1303:1304 -> a
+    44:44:void setOffsetFor(com.android.tools.r8.graph.DexString,int):1308:1308 -> a
+    45:46:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1290:1291 -> a
+    45:46:void setOffsetFor(com.android.tools.r8.graph.DexString,int):1308 -> a
+    47:47:void setOffsetFor(com.android.tools.r8.graph.DexAnnotation,int):1312:1312 -> a
+    48:49:void setOffsetFor(com.android.tools.r8.graph.DexAnnotationSet,int):1318:1319 -> a
+    50:50:void setOffsetForAnnotationsDirectory(com.android.tools.r8.graph.DexAnnotationDirectory,int):1323:1323 -> a
+    51:51:void setOffsetFor(com.android.tools.r8.graph.DexProgramClass,int):1327:1327 -> a
+    52:52:void setOffsetFor(com.android.tools.r8.graph.DexEncodedArray,int):1331:1331 -> a
+    53:54:void setOffsetFor(com.android.tools.r8.graph.ParameterAnnotationsList,int):1335:1336 -> a
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1075:1075 -> b
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.<init>():176:176 -> b
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1075 -> b
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1076:1076 -> b
+    4:4:int getOffsetFor(com.android.tools.r8.graph.DexString):1228:1228 -> b
+    5:8:int getOffsetFor(com.android.tools.r8.graph.DexTypeList):1232:1235 -> b
+    9:9:int getOffsetFor(com.android.tools.r8.graph.DexProgramClass):1239:1239 -> b
+    10:10:int getOffsetFor(com.android.tools.r8.graph.DexEncodedArray):1243:1243 -> b
+    11:11:int getOffsetFor(com.android.tools.r8.graph.DexDebugInfo):1247:1247 -> b
+    12:12:int getOffsetFor(com.android.tools.r8.graph.DexAnnotation):1261:1261 -> b
+    13:16:int getOffsetFor(com.android.tools.r8.graph.DexAnnotationSet):1267:1270 -> b
+    17:20:int getOffsetFor(com.android.tools.r8.graph.ParameterAnnotationsList):1274:1277 -> b
+    21:21:int getOffsetFor(com.android.tools.r8.graph.DexCode):1281:1281 -> b
+    1:1:java.util.Collection getAnnotationDirectories():1202:1202 -> c
+    2:6:int getOffsetForAnnotationsDirectory(com.android.tools.r8.graph.DexProgramClass):1252:1256 -> c
+    1:1:java.util.Collection getAnnotationSetRefLists():1194:1194 -> d
+    1:1:java.util.Collection getAnnotationSets():1190:1190 -> e
+    1:1:java.util.Collection getAnnotations():1186:1186 -> f
+    1:1:java.util.Collection getClassesWithData():1198:1198 -> g
+    1:1:java.util.Collection getCodes():1170:1170 -> h
+    1:1:java.util.Collection getDebugInfos():1174:1174 -> i
+    1:1:java.util.Collection getEncodedArrays():1206:1206 -> j
+    1:1:java.util.Collection getStringData():1182:1182 -> k
+    1:1:java.util.Collection getTypeLists():1178:1178 -> l
+com.android.tools.r8.dex.FileWriter$ProgramClassDependencyCollector -> com.android.tools.r8.dex.u:
+    java.util.Set includedClasses -> c
+    com.android.tools.r8.dex.FileWriter this$0 -> d
+    1:2:void <init>(com.android.tools.r8.dex.FileWriter,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexProgramClass[]):1344:1345 -> <init>
+    3:7:void <init>(com.android.tools.r8.dex.FileWriter,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexProgramClass[]):1342:1346 -> <init>
+    void visit(com.android.tools.r8.graph.DexType) -> b
+    1:4:void visit(com.android.tools.r8.graph.DexClass):1357:1360 -> b
+com.android.tools.r8.dex.IndexedItemCollection -> com.android.tools.r8.dex.v:
+com.android.tools.r8.dex.InheritanceClassInDexDistributor -> com.android.tools.r8.dex.z:
+    com.android.tools.r8.dex.VirtualFile mainDex -> b
+    com.android.tools.r8.dex.InheritanceClassInDexDistributor$DirectSubClassesInfo directSubClasses -> i
+    java.util.Comparator DEX_PROGRAM_CLASS_COMPARATOR -> j
+    boolean $assertionsDisabled -> k
+    java.util.Set classes -> e
+    java.util.List dexes -> c
+    int dexIndexOffset -> g
+    com.android.tools.r8.naming.NamingLens namingLens -> h
+    java.util.concurrent.ExecutorService executorService -> a
+    java.util.BitSet fullDex -> d
+    com.android.tools.r8.graph.DexApplication app -> f
+    1:3:void <clinit>():43:45 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.dex.VirtualFile,java.util.List,java.util.Set,java.util.Map,int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):297:297 -> <init>
+    2:26:void <init>(com.android.tools.r8.dex.VirtualFile,java.util.List,java.util.Set,java.util.Map,int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):282:306 -> <init>
+    1:1:com.android.tools.r8.naming.NamingLens access$000(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> a
+    2:2:java.util.List access$100(java.util.Collection):43:43 -> a
+    3:3:java.util.Comparator access$200():43:43 -> a
+    4:4:int lambda$static$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):46:46 -> a
+    5:6:int getTotalClassNumber(java.util.List):366:367 -> a
+    7:9:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):373:375 -> a
+    10:10:boolean com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup.canFitInOneDex():82:82 -> a
+    10:10:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):376 -> a
+    11:35:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):379:403 -> a
+    36:36:boolean lambda$assignGroup$1(java.util.List,com.android.tools.r8.dex.VirtualFile):379:379 -> a
+    37:37:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
+    37:37:boolean lambda$assignGroup$1(java.util.List,com.android.tools.r8.dex.VirtualFile):379 -> a
+    38:38:boolean lambda$assignClassesWithLinkingError$3(java.util.Set,com.android.tools.r8.dex.VirtualFile):432:432 -> a
+    39:39:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
+    39:39:boolean lambda$assignClassesWithLinkingError$3(java.util.Set,com.android.tools.r8.dex.VirtualFile):432 -> a
+    40:40:java.util.List collectNoDirectInheritanceGroups(java.util.Set):478:478 -> a
+    40:40:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
+    41:45:java.util.List getTopologicalOrder(java.util.Set):691:695 -> a
+    41:45:java.util.List collectNoDirectInheritanceGroups(java.util.Set):479 -> a
+    41:45:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
+    46:70:java.util.List collectNoDirectInheritanceGroups(java.util.Set):480:504 -> a
+    46:70:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
+    71:90:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):418:437 -> a
+    91:91:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
+    91:91:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):438 -> a
+    92:99:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):439:446 -> a
+    100:100:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> a
+    100:100:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):447 -> a
+    101:104:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):450:453 -> a
+    105:105:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):442:442 -> a
+    106:106:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    106:106:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
+    107:107:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443:443 -> a
+    108:108:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    108:108:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
+    109:109:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    109:109:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    109:109:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
+    110:122:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443:455 -> a
+    123:123:void lambda$updateGroupsNumberOfIds$5(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):540:540 -> a
+    124:144:void collectGroup(java.util.Collection,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,com.android.tools.r8.graph.DexProgramClass):562:582 -> a
+    145:149:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):591:595 -> a
+    150:150:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
+    150:150:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):597 -> a
+    151:152:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):598:599 -> a
+    153:153:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> a
+    153:153:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):600 -> a
+    154:160:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):602:608 -> a
+    161:161:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):607:607 -> a
+    162:169:com.android.tools.r8.graph.DexProgramClass findOneRootInSetFrom(com.android.tools.r8.graph.DexProgramClass,java.util.Set):702:709 -> a
+    170:170:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
+    1:1:com.android.tools.r8.dex.VirtualFile access$300(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> b
+    2:2:boolean lambda$assignGroup$2(java.util.List,com.android.tools.r8.dex.VirtualFile):393:393 -> b
+    3:3:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> b
+    3:3:boolean lambda$assignGroup$2(java.util.List,com.android.tools.r8.dex.VirtualFile):393 -> b
+    4:4:boolean lambda$assignClassesWithLinkingError$4(java.util.Set,com.android.tools.r8.dex.VirtualFile):451:451 -> b
+    5:5:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> b
+    5:5:boolean lambda$assignClassesWithLinkingError$4(java.util.Set,com.android.tools.r8.dex.VirtualFile):451 -> b
+    6:17:java.util.List collectInheritanceGroups():522:533 -> b
+    6:17:void distribute():310 -> b
+    18:28:void distribute():312:322 -> b
+    29:29:boolean com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup.canFitInOneDex():82:82 -> b
+    29:29:void distribute():325 -> b
+    30:64:void distribute():325:359 -> b
+    65:79:void updateGroupsNumberOfIds(java.util.List):538:552 -> b
+    80:80:void updateGroupsNumberOfIds(java.util.List):547:547 -> b
+    81:90:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):619:628 -> b
+    91:95:boolean hasDirectInheritanceInCollection(com.android.tools.r8.graph.DexProgramClass,java.util.Set):660:664 -> b
+    91:95:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):629 -> b
+    96:96:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):632:632 -> b
+    97:97:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> b
+    97:97:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):633 -> b
+    98:106:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):634:642 -> b
+    107:107:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> b
+    107:107:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):643 -> b
+    108:108:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):637:637 -> b
+    109:109:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> b
+    109:109:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
+    110:110:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638:638 -> b
+    111:111:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
+    111:111:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
+    112:112:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> b
+    112:112:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> b
+    112:112:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
+    113:123:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638:648 -> b
+    124:148:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):630:654 -> b
+    149:149:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):653:653 -> b
+    150:151:java.util.List getSortedCopy(java.util.Collection):682:683 -> b
+    1:1:com.android.tools.r8.graph.DexApplication access$400(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> c
+com.android.tools.r8.dex.InheritanceClassInDexDistributor$CategorizedInheritanceGroupWithMainDexDependency -> com.android.tools.r8.dex.w:
+    com.android.tools.r8.dex.InheritanceClassInDexDistributor this$0 -> d
+    java.util.Set dependentsOfMainDexIndependents -> c
+    boolean $assertionsDisabled -> e
+    java.util.Set mainDexIndependents -> a
+    java.util.Set independentsFromMainDexIndependents -> b
+    1:1:void <clinit>():124:124 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):133:133 -> <init>
+    2:30:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):127:155 -> <init>
+    31:31:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):152:152 -> <init>
+    1:12:boolean isDependingOnMainDexClass(java.util.Set,com.android.tools.r8.graph.DexProgramClass):166:177 -> a
+    13:28:boolean isDependingOnMainDexClass(java.util.Set,com.android.tools.r8.graph.DexProgramClass):176:191 -> a
+    29:56:boolean isDependingOnMainDexIndependents(com.android.tools.r8.graph.DexProgramClass):203:230 -> a
+com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup -> com.android.tools.r8.dex.x:
+    com.android.tools.r8.dex.InheritanceClassInDexDistributor this$0 -> e
+    boolean $assertionsDisabled -> f
+    java.util.Set members -> a
+    int numberOfFieldIds -> b
+    int numberOfMethodIds -> c
+    boolean dependsOnMainDexClasses -> d
+    1:1:void <clinit>():54:54 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor):61:61 -> <init>
+    2:7:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor):57:62 -> <init>
+    8:8:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,java.util.Set):65:65 -> <init>
+    9:19:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,java.util.Set):57:67 -> <init>
+    1:7:void updateNumbersOfIds():72:78 -> a
+    1:1:int compareTo(java.lang.Object):54:54 -> compareTo
+    2:5:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):89:89 -> compareTo
+    2:5:int compareTo(java.lang.Object):54 -> compareTo
+    12:25:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):96:109 -> compareTo
+    12:25:int compareTo(java.lang.Object):54 -> compareTo
+    26:29:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):107:110 -> compareTo
+    26:29:int compareTo(java.lang.Object):54 -> compareTo
+com.android.tools.r8.dex.InheritanceClassInDexDistributor$DirectSubClassesInfo -> com.android.tools.r8.dex.y:
+    java.util.Map directSubClasses -> a
+    java.util.Set classes -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():241:241 -> <clinit>
+    1:11:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Set):246:256 -> <init>
+    1:2:java.util.Collection getDirectSubClasses(com.android.tools.r8.graph.DexProgramClass):260:261 -> a
+    3:8:void addDirectSubClass(com.android.tools.r8.graph.DexApplication,java.util.Set,java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):269:274 -> a
+    1:1:java.util.Collection lambda$addDirectSubClass$0(com.android.tools.r8.graph.DexProgramClass):273:273 -> b
+com.android.tools.r8.dex.JumboStringRewriter -> com.android.tools.r8.dex.A:
+    com.android.tools.r8.graph.DexItemFactory factory -> c
+    com.android.tools.r8.graph.DexString firstJumboString -> b
+    java.util.Map instructionTargets -> d
+    com.android.tools.r8.graph.DexEncodedMethod method -> a
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap tryRangeStartAndEndTargets -> h
+    java.util.Map handlerTargets -> i
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap debugEventTargets -> e
+    java.util.Map payloadToSwitch -> f
+    java.util.Map tryTargets -> g
+    1:1:void <clinit>():55:55 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):104:104 -> <init>
+    2:15:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):94:107 -> <init>
+    com.android.tools.r8.code.Instruction lambda$replaceTarget$0(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction) -> a
+    1:12:int rewriteIfToIfAndGoto(int,java.util.ListIterator,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):423:434 -> a
+    13:25:void replaceTarget(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):439:451 -> a
+    26:41:void recordTargets():567:582 -> a
+    26:41:com.android.tools.r8.graph.DexCode rewrite():113 -> a
+    42:72:void recordInstructionTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):456:486 -> a
+    42:72:void recordTargets():586 -> a
+    42:72:com.android.tools.r8.graph.DexCode rewrite():113 -> a
+    73:87:void recordInstructionTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):485:499 -> a
+    73:87:void recordTargets():586 -> a
+    73:87:com.android.tools.r8.graph.DexCode rewrite():113 -> a
+    88:103:void recordDebugEventTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):505:520 -> a
+    88:103:void recordTargets():587 -> a
+    88:103:com.android.tools.r8.graph.DexCode rewrite():113 -> a
+    104:104:void recordTargets():588:588 -> a
+    104:104:com.android.tools.r8.graph.DexCode rewrite():113 -> a
+    105:137:void recordTryAndHandlerTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.code.Instruction):529:561 -> a
+    105:137:void recordTargets():589 -> a
+    105:137:com.android.tools.r8.graph.DexCode rewrite():113 -> a
+    138:150:java.util.List expandCode():275:287 -> a
+    138:150:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    151:406:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):0:255 -> a
+    151:406:java.util.List expandCode():287 -> a
+    151:406:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    407:436:java.util.List expandCode():288:317 -> a
+    407:436:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    437:437:java.util.List expandCode():314:314 -> a
+    437:437:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    438:438:java.util.List expandCode():311:311 -> a
+    438:438:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    439:439:java.util.List expandCode():308:308 -> a
+    439:439:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    440:440:java.util.List expandCode():305:305 -> a
+    440:440:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    441:484:java.util.List expandCode():302:345 -> a
+    441:484:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    485:485:java.util.List expandCode():342:342 -> a
+    485:485:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    486:486:java.util.List expandCode():339:339 -> a
+    486:486:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    487:487:java.util.List expandCode():336:336 -> a
+    487:487:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    488:488:java.util.List expandCode():333:333 -> a
+    488:488:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    489:518:java.util.List expandCode():330:359 -> a
+    489:518:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    519:571:java.util.List expandCode():357:409 -> a
+    519:571:com.android.tools.r8.graph.DexCode rewrite():115 -> a
+    572:609:void rewriteInstructionOffsets(java.util.List):140:177 -> a
+    572:609:com.android.tools.r8.graph.DexCode rewrite():118 -> a
+    610:616:com.android.tools.r8.graph.DexCode$Try[] rewriteTryOffsets():184:190 -> a
+    610:616:com.android.tools.r8.graph.DexCode rewrite():119 -> a
+    617:635:com.android.tools.r8.graph.DexCode$TryHandler[] rewriteHandlerOffsets():196:214 -> a
+    617:635:com.android.tools.r8.graph.DexCode rewrite():120 -> a
+    636:654:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():220:238 -> a
+    636:654:com.android.tools.r8.graph.DexCode rewrite():121 -> a
+    655:666:void addDefaultEvent(int,int,java.util.List):260:271 -> a
+    655:666:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():239 -> a
+    655:666:com.android.tools.r8.graph.DexCode rewrite():121 -> a
+    667:677:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():240:250 -> a
+    667:677:com.android.tools.r8.graph.DexCode rewrite():121 -> a
+    678:690:com.android.tools.r8.graph.DexCode rewrite():123:135 -> a
+    com.android.tools.r8.code.Instruction lambda$replaceTarget$1(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction) -> b
+com.android.tools.r8.dex.JumboStringRewriter$TryTargets -> com.android.tools.r8.dex.A$a:
+    com.android.tools.r8.code.Instruction start -> a
+    com.android.tools.r8.code.Instruction end -> b
+    boolean endsAfterLastInstruction -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():57:57 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,boolean):62:67 -> <init>
+    1:5:void replaceTarget(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):71:75 -> a
+    6:6:int getStartOffset():80:80 -> a
+    1:4:int getStartToEndDelta():84:87 -> b
+com.android.tools.r8.dex.Marker -> com.android.tools.r8.dex.B:
+    com.android.tools.r8.dex.Marker$Tool tool -> b
+    boolean $assertionsDisabled -> f
+    java.lang.String D8_PREFIX -> c
+    java.lang.String L8_PREFIX -> e
+    com.android.tools.r8.com.google.gson.JsonObject jsonObject -> a
+    java.lang.String R8_PREFIX -> d
+    1:24:void <clinit>():18:41 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.dex.Marker$Tool):47:47 -> <init>
+    2:4:void <init>(com.android.tools.r8.dex.Marker$Tool,com.android.tools.r8.com.google.gson.JsonObject):50:52 -> <init>
+    1:2:com.android.tools.r8.dex.Marker setMinApi(long):86:87 -> a
+    3:3:java.lang.String getCompilationMode():102:102 -> a
+    4:5:com.android.tools.r8.dex.Marker setCompilationMode(com.android.tools.r8.CompilationMode):106:107 -> a
+    6:7:com.android.tools.r8.dex.Marker setHasChecksums(boolean):116:117 -> a
+    8:9:com.android.tools.r8.dex.Marker setPgMapId(java.lang.String):126:127 -> a
+    10:10:void lambda$toString$0(com.android.tools.r8.com.google.gson.JsonObject,java.util.Map$Entry):138:138 -> a
+    11:22:com.android.tools.r8.dex.Marker parse(com.android.tools.r8.graph.DexString):159:170 -> a
+    23:23:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):178:178 -> a
+    24:24:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> a
+    24:24:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):179 -> a
+    25:25:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):180:180 -> a
+    1:2:com.android.tools.r8.dex.Marker setSha1(java.lang.String):96:97 -> b
+    3:3:boolean getHasChecksums():112:112 -> b
+    1:2:com.android.tools.r8.dex.Marker setVersion(java.lang.String):76:77 -> c
+    3:3:java.lang.Long getMinApi():82:82 -> c
+    1:1:java.lang.String getPgMapId():122:122 -> d
+    1:1:com.android.tools.r8.dex.Marker$Tool getTool():56:56 -> e
+    1:3:boolean equals(java.lang.Object):144:146 -> equals
+    1:1:java.lang.String getVersion():72:72 -> f
+    1:1:boolean isD8():60:60 -> g
+    1:1:int hashCode():153:153 -> hashCode
+    1:6:java.lang.String toString():134:139 -> toString
+com.android.tools.r8.dex.Marker$Tool -> com.android.tools.r8.dex.B$a:
+    com.android.tools.r8.dex.Marker$Tool R8 -> b
+    com.android.tools.r8.dex.Marker$Tool D8 -> a
+    com.android.tools.r8.dex.Marker$Tool L8 -> c
+    1:3:void <clinit>():28:30 -> <clinit>
+    1:1:void <init>(java.lang.String,int):27:27 -> <init>
+    1:1:com.android.tools.r8.dex.Marker$Tool[] valuesR8andD8():33:33 -> a
+com.android.tools.r8.dex.MethodToCodeObjectMapping -> com.android.tools.r8.dex.E:
+    1:1:void <init>():12:12 -> <init>
+    void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
+    com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod) -> a
+    boolean verifyCodeObjects(java.util.Collection) -> a
+com.android.tools.r8.dex.MethodToCodeObjectMapping$MapBacking -> com.android.tools.r8.dex.C:
+    java.util.Map codes -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():53:53 -> <clinit>
+    1:2:void <init>(java.util.Map):57:58 -> <init>
+    1:1:com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod):63:63 -> a
+    2:2:void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean):69:69 -> a
+    3:3:boolean verifyCodeObjects(java.util.Collection):74:74 -> a
+com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking -> com.android.tools.r8.dex.D:
+    com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking INSTANCE -> a
+    boolean $assertionsDisabled -> b
+    1:3:void <clinit>():28:30 -> <clinit>
+    1:1:void <init>():28:28 -> <init>
+    boolean verifyCodeObjects(java.util.Collection) -> a
+    1:1:com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking access$000():28:28 -> a
+    2:4:com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod):34:36 -> a
+    5:5:void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean):43:43 -> a
+com.android.tools.r8.dex.MixedSectionCollection -> com.android.tools.r8.dex.F:
+    1:1:void <init>():27:27 -> <init>
+    boolean add(com.android.tools.r8.graph.DexAnnotation) -> a
+    boolean add(com.android.tools.r8.graph.DexAnnotationSet) -> a
+    boolean add(com.android.tools.r8.graph.DexCode) -> a
+    boolean add(com.android.tools.r8.graph.DexDebugInfo) -> a
+    boolean add(com.android.tools.r8.graph.DexEncodedArray) -> a
+    boolean add(com.android.tools.r8.graph.DexProgramClass) -> a
+    boolean add(com.android.tools.r8.graph.DexTypeList) -> a
+    boolean add(com.android.tools.r8.graph.ParameterAnnotationsList) -> a
+    boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory) -> a
+    1:1:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
+    1:1:void visit(com.android.tools.r8.graph.DexEncodedMethod):63 -> a
+    2:2:void visit(com.android.tools.r8.graph.DexEncodedMethod):62:62 -> a
+com.android.tools.r8.dex.ResourceAdapter -> com.android.tools.r8.dex.M:
+    com.android.tools.r8.naming.NamingLens namingLense -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.GraphLense graphLense -> b
+    com.android.tools.r8.utils.InternalOptions options -> d
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):43:48 -> <init>
+    1:1:com.android.tools.r8.graph.DexItemFactory access$000(com.android.tools.r8.dex.ResourceAdapter):30:30 -> a
+    2:7:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):53:58 -> a
+    8:14:java.lang.String adaptFileName(com.android.tools.r8.DataEntryResource):102:108 -> a
+    8:14:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):59 -> a
+    15:23:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):60:68 -> a
+    24:33:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):122:122 -> a
+    24:33:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
+    41:45:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):130:134 -> a
+    41:45:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
+    46:48:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):131:131 -> a
+    46:48:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
+    49:53:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):76:80 -> a
+    54:56:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):88:90 -> a
+    57:61:java.lang.String adaptDirectoryName(com.android.tools.r8.DataDirectoryResource):112:116 -> a
+    57:61:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):93 -> a
+    62:62:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):93:93 -> a
+    1:1:com.android.tools.r8.graph.GraphLense access$100(com.android.tools.r8.dex.ResourceAdapter):30:30 -> b
+    1:1:com.android.tools.r8.naming.NamingLens access$200(com.android.tools.r8.dex.ResourceAdapter):30:30 -> c
+com.android.tools.r8.dex.ResourceAdapter$DefaultFileNameAdapter -> com.android.tools.r8.dex.G:
+    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):408:408 -> <init>
+    1:1:boolean com.android.tools.r8.dex.ResourceAdapter$StringAdapter.eof(int):335:335 -> b
+    1:1:boolean isRenamingCandidate(int,int):413 -> b
+com.android.tools.r8.dex.ResourceAdapter$DirectoryNameAdapter -> com.android.tools.r8.dex.H:
+    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):440:440 -> <init>
+    boolean isRenamingCandidate(int,int) -> b
+com.android.tools.r8.dex.ResourceAdapter$FileContentsAdapter -> com.android.tools.r8.dex.I:
+    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):342:342 -> <init>
+    boolean allowRenamingOfPrefixes() -> a
+    1:1:boolean shouldRecordPrefix(char):357:357 -> a
+    2:2:boolean handlePrefix(int,int):362:362 -> a
+    char getClassNameSeparator() -> b
+    1:1:boolean isRenamingCandidate(int,int):368:368 -> b
+    2:2:boolean com.android.tools.r8.dex.ResourceAdapter$StringAdapter.eof(int):335:335 -> b
+    2:2:boolean isRenamingCandidate(int,int):369 -> b
+    3:3:boolean isRenamingCandidate(int,int):369:369 -> b
+com.android.tools.r8.dex.ResourceAdapter$FileNameAdapter -> com.android.tools.r8.dex.J:
+    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):379:379 -> <init>
+    boolean allowRenamingOfPrefixes() -> a
+    1:1:boolean com.android.tools.r8.dex.ResourceAdapter$StringAdapter.eof(int):335:335 -> a
+    1:1:boolean handlePrefix(int,int):399 -> a
+    2:5:boolean handlePrefix(int,int):399:402 -> a
+    6:6:boolean handlePrefix(int,int):400:400 -> a
+    7:7:boolean shouldRecordPrefix(char):394:394 -> a
+    char getClassNameSeparator() -> b
+com.android.tools.r8.dex.ResourceAdapter$ServiceFileNameAdapter -> com.android.tools.r8.dex.K:
+    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):419:419 -> <init>
+    boolean allowRenamingOfPrefixes() -> a
+    char getClassNameSeparator() -> b
+    1:1:boolean com.android.tools.r8.dex.ResourceAdapter$StringAdapter.eof(int):335:335 -> b
+    1:1:boolean isRenamingCandidate(int,int):434 -> b
+com.android.tools.r8.dex.ResourceAdapter$StringAdapter -> com.android.tools.r8.dex.L:
+    java.lang.StringBuilder result -> b
+    java.lang.String contents -> a
+    int outputFrom -> d
+    com.android.tools.r8.dex.ResourceAdapter this$0 -> g
+    boolean $assertionsDisabled -> h
+    int position -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntStack prefixEndPositionsExclusive -> f
+    boolean changed -> c
+    1:1:void <clinit>():141:141 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):164:164 -> <init>
+    2:24:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):144:166 -> <init>
+    boolean allowRenamingOfPrefixes() -> a
+    boolean handlePrefix(int,int) -> a
+    boolean shouldRecordPrefix(char) -> a
+    1:1:boolean eof(int):335:335 -> a
+    char getClassNameSeparator() -> b
+    boolean isRenamingCandidate(int,int) -> b
+    1:2:java.lang.String getResult():188:189 -> c
+    3:3:void outputRangeFromInput(int,int):322:322 -> c
+    1:10:boolean renameJavaPackageInRange(int,int):292:301 -> d
+    11:11:void outputJavaType(java.lang.String):327:327 -> d
+    11:11:boolean renameJavaPackageInRange(int,int):299 -> d
+    12:13:boolean renameJavaPackageInRange(int,int):303:304 -> d
+    14:14:boolean eof():331:331 -> d
+    14:14:void handleMisc():194 -> d
+    14:14:boolean run():171 -> d
+    15:16:void handleMisc():194:195 -> d
+    15:16:boolean run():171 -> d
+    17:17:boolean eof():331:331 -> d
+    17:17:void handleJavaType():202 -> d
+    17:17:boolean run():172 -> d
+    18:21:void handleJavaType():206:209 -> d
+    18:21:boolean run():172 -> d
+    22:22:boolean eof():331:331 -> d
+    22:22:void handleJavaType():210 -> d
+    22:22:boolean run():172 -> d
+    23:28:void handleJavaType():211:216 -> d
+    23:28:boolean run():172 -> d
+    29:29:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
+    29:29:void handleJavaType():216 -> d
+    29:29:boolean run():172 -> d
+    30:40:void handleJavaType():218:228 -> d
+    30:40:boolean run():172 -> d
+    41:41:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
+    41:41:void handleJavaType():228 -> d
+    41:41:boolean run():172 -> d
+    42:50:void handleJavaType():231:239 -> d
+    42:50:boolean run():172 -> d
+    51:51:boolean eof():331:331 -> d
+    51:51:void handleJavaType():239 -> d
+    51:51:boolean run():172 -> d
+    52:53:void handleJavaType():239:240 -> d
+    52:53:boolean run():172 -> d
+    54:54:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
+    54:54:void handleJavaType():240 -> d
+    54:54:boolean run():172 -> d
+    55:59:void handleJavaType():243:247 -> d
+    55:59:boolean run():172 -> d
+    60:61:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:493 -> d
+    60:61:void handleJavaType():247 -> d
+    60:61:boolean run():172 -> d
+    62:63:void handleJavaType():248:249 -> d
+    62:63:boolean run():172 -> d
+    64:64:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:492 -> d
+    64:64:void handleJavaType():247 -> d
+    64:64:boolean run():172 -> d
+    65:67:void handleJavaType():253:255 -> d
+    65:67:boolean run():172 -> d
+    68:70:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:492 -> d
+    68:70:void handleJavaType():255 -> d
+    68:70:boolean run():172 -> d
+    71:71:boolean eof():331:331 -> d
+    71:71:boolean run():173 -> d
+    72:82:boolean run():174:184 -> d
+    1:7:boolean renameJavaTypeInRange(int,int):262:268 -> e
+    8:21:boolean renameJavaTypeInRange(int,int):267:280 -> e
+    22:22:void outputJavaType(java.lang.String):327:327 -> e
+    22:22:boolean renameJavaTypeInRange(int,int):278 -> e
+    23:24:boolean renameJavaTypeInRange(int,int):282:283 -> e
+com.android.tools.r8.dex.VDexParser -> com.android.tools.r8.dex.N:
+    java.util.List dexFiles -> b
+    com.android.tools.r8.dex.VDexReader vDexReader -> a
+    1:1:void <init>(com.android.tools.r8.dex.VDexReader):26:26 -> <init>
+    2:12:void <init>(com.android.tools.r8.dex.VDexReader):19:29 -> <init>
+    1:1:java.util.List getDexFiles():33:33 -> a
+    1:12:void parseDexFiles():37:48 -> b
+    13:52:byte[] com.android.tools.r8.dex.BinaryReader.getByteArray(int):0:39 -> b
+    13:52:void parseDexFiles():48 -> b
+    53:58:void parseDexFiles():48:53 -> b
+    59:59:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
+    59:59:void parseDexFiles():53 -> b
+    60:60:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> b
+    60:60:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> b
+    60:60:void parseDexFiles():53 -> b
+    61:61:void parseDexFiles():53:53 -> b
+com.android.tools.r8.dex.VDexReader -> com.android.tools.r8.dex.O:
+    boolean $assertionsDisabled -> e
+    int version -> d
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):27:30 -> <init>
+    1:3:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):41:43 -> a
+    4:4:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    4:4:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):43 -> a
+    5:13:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):43:51 -> a
+    14:14:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49:49 -> a
+    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    15:15:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49 -> a
+    16:28:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49:61 -> a
+    29:29:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    29:29:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61 -> a
+    30:30:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61:61 -> a
+    31:31:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54:54 -> a
+    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    32:32:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54 -> a
+    33:33:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54:54 -> a
+    int firstDexOffset(int) -> c
+    boolean supportedVersion(int) -> d
+    1:13:void setByteOrder():75:87 -> g
+    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> g
+    14:14:void setByteOrder():87 -> g
+    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> g
+    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> g
+    15:15:void setByteOrder():87 -> g
+    16:16:void setByteOrder():87:87 -> g
+com.android.tools.r8.dex.VirtualFile -> com.android.tools.r8.dex.P:
+    com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection indexedItems -> b
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction transaction -> c
+    com.android.tools.r8.graph.DexProgramClass primaryClass -> e
+    com.android.tools.r8.FeatureSplit featureSplit -> d
+    int id -> a
+    1:1:void <clinit>():51:51 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.dex.VirtualFile$1):51:51 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.naming.NamingLens):79:79 -> <init>
+    3:3:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.FeatureSplit):83:83 -> <init>
+    4:4:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):87:87 -> <init>
+    5:10:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.FeatureSplit):91:96 -> <init>
+    1:1:java.util.Map access$1000(java.util.Collection,com.android.tools.r8.naming.ClassNameMapper):51:51 -> a
+    2:2:com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction access$1100(com.android.tools.r8.dex.VirtualFile):51:51 -> a
+    3:21:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):121:139 -> a
+    22:22:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):134:134 -> a
+    23:23:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):131:131 -> a
+    24:24:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):124:124 -> a
+    25:25:void injectString(com.android.tools.r8.graph.DexString):146:146 -> a
+    26:26:void commitTransaction():230:230 -> a
+    26:26:void injectString(com.android.tools.r8.graph.DexString):147 -> a
+    27:29:void lambda$computeOriginalNameMapping$0(java.util.Map,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.graph.DexProgramClass):155:155 -> a
+    30:35:java.lang.String extractPrefixToken(int,java.lang.String,boolean):167:172 -> a
+    30:35:java.lang.String access$1300(int,java.lang.String,boolean):51 -> a
+    36:46:com.android.tools.r8.graph.ObjectToOffsetMapping computeMapping(com.android.tools.r8.graph.DexApplication):178:188 -> a
+    47:47:void addClass(com.android.tools.r8.graph.DexProgramClass):192:192 -> a
+    48:692:void com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction.addClassAndDependencies(com.android.tools.r8.graph.DexProgramClass):0:644 -> a
+    48:692:void addClass(com.android.tools.r8.graph.DexProgramClass):192 -> a
+    693:694:boolean isFull(int):196:197 -> a
+    695:695:boolean isFull():201:201 -> a
+    695:695:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):213 -> a
+    696:698:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):216:218 -> a
+    699:701:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    699:701:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):216 -> a
+    702:702:boolean isFilledEnough(com.android.tools.r8.dex.VirtualFile$FillStrategy):222:222 -> a
+    702:702:boolean access$1500(com.android.tools.r8.dex.VirtualFile,com.android.tools.r8.dex.VirtualFile$FillStrategy):51 -> a
+    703:703:void abortTransaction():226:226 -> a
+    1:1:int access$1200(com.android.tools.r8.dex.VirtualFile):51:51 -> b
+    2:3:java.util.Map computeOriginalNameMapping(java.util.Collection,com.android.tools.r8.naming.ClassNameMapper):152:153 -> b
+    4:4:java.util.Collection classes():238:238 -> b
+    1:1:void commitTransaction():230:230 -> c
+    1:4:java.util.Set getClassDescriptors():104:107 -> d
+    1:1:com.android.tools.r8.FeatureSplit getFeatureSplit():113:113 -> e
+    1:1:int getId():100:100 -> f
+    1:1:int getNumberOfFields():209:209 -> g
+    1:1:int getNumberOfMethods():205:205 -> h
+    1:1:java.lang.String getPrimaryClassDescriptor():117:117 -> i
+    1:1:boolean isEmpty():234:234 -> j
+com.android.tools.r8.dex.VirtualFile$1 -> com.android.tools.r8.dex.P$a:
+com.android.tools.r8.dex.VirtualFile$Distributor -> com.android.tools.r8.dex.P$b:
+    com.android.tools.r8.graph.DexApplication application -> a
+    java.util.List virtualFiles -> c
+    com.android.tools.r8.dex.ApplicationWriter writer -> b
+    1:1:void <init>(com.android.tools.r8.dex.ApplicationWriter):246:246 -> <init>
+    2:6:void <init>(com.android.tools.r8.dex.ApplicationWriter):244:248 -> <init>
+    java.util.Collection run() -> a
+com.android.tools.r8.dex.VirtualFile$DistributorBase -> com.android.tools.r8.dex.P$c:
+    com.android.tools.r8.dex.VirtualFile mainDexFile -> f
+    java.util.Set classes -> d
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.utils.InternalOptions options -> g
+    java.util.Map originalNames -> e
+    1:1:void <clinit>():298:298 -> <clinit>
+    1:11:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions):305:315 -> <init>
+    1:5:void addMarkers(com.android.tools.r8.dex.VirtualFile):319:323 -> a
+    6:32:java.util.TreeSet sortClassesByPackage(java.util.Set,java.util.Map):363:389 -> a
+    33:55:int lambda$sortClassesByPackage$0(java.util.Map,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):365:387 -> a
+    56:79:void addFeatureSplitFiles(java.util.Map,com.android.tools.r8.dex.VirtualFile$FillStrategy):418:441 -> a
+    1:8:java.util.Map removeFeatureSplitClassesGetMapping():394:401 -> b
+    9:13:java.util.Map removeFeatureSplitClassesGetMapping():400:404 -> b
+com.android.tools.r8.dex.VirtualFile$FilePerInputClassDistributor -> com.android.tools.r8.dex.P$d:
+    boolean combineSyntheticClassesWithPrimaryClass -> d
+    1:2:void <init>(com.android.tools.r8.dex.ApplicationWriter,boolean):265:266 -> <init>
+    1:14:java.util.Collection run():271:284 -> a
+    15:33:java.util.Collection run():276:294 -> a
+com.android.tools.r8.dex.VirtualFile$FillFilesDistributor -> com.android.tools.r8.dex.P$e:
+    com.android.tools.r8.dex.VirtualFile$FillStrategy fillStrategy -> i
+    java.util.concurrent.ExecutorService executorService -> j
+    boolean $assertionsDisabled -> k
+    1:1:void <clinit>():446:446 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):452:454 -> <init>
+    1:3:java.util.Collection run():459:461 -> a
+    4:17:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):328:341 -> a
+    4:17:java.util.Collection run():461 -> a
+    18:30:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):338:350 -> a
+    18:30:java.util.Collection run():461 -> a
+    31:36:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):348:353 -> a
+    31:36:java.util.Collection run():461 -> a
+    37:41:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):351:355 -> a
+    37:41:java.util.Collection run():461 -> a
+    42:45:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):354:357 -> a
+    42:45:java.util.Collection run():461 -> a
+    46:82:java.util.Collection run():462:498 -> a
+    1:1:int lambda$run$0(com.android.tools.r8.dex.VirtualFile):497:497 -> b
+com.android.tools.r8.dex.VirtualFile$FillStrategy -> com.android.tools.r8.dex.P$f:
+    com.android.tools.r8.dex.VirtualFile$FillStrategy FILL_MAX -> a
+    com.android.tools.r8.dex.VirtualFile$FillStrategy LEAVE_SPACE_FOR_GROWTH -> b
+    1:4:void <clinit>():56:59 -> <clinit>
+    1:1:void <init>(java.lang.String,int):54:54 -> <init>
+com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction -> com.android.tools.r8.dex.P$g:
+    java.util.Set protos -> g
+    java.util.Set strings -> h
+    java.util.Set callSites -> i
+    java.util.Set methodHandles -> j
+    com.android.tools.r8.naming.NamingLens namingLens -> b
+    java.util.Set classes -> c
+    com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection base -> a
+    java.util.Set fields -> d
+    boolean $assertionsDisabled -> k
+    java.util.Set methods -> e
+    java.util.Set types -> f
+    1:1:void <clinit>():615:615 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.dex.VirtualFile$1):615:615 -> <init>
+    2:2:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens):630:630 -> <init>
+    3:15:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens):620:632 -> <init>
+    1:1:java.util.Set access$1400(com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction):615:615 -> a
+    2:5:boolean maybeInsert(com.android.tools.r8.graph.DexItem,java.util.Set,java.util.Set):636:639 -> a
+    6:10:void commitItemsIn(java.util.Set,java.util.function.Function):712:716 -> a
+    11:12:void lambda$commitItemsIn$0(java.util.function.Function,com.android.tools.r8.graph.DexItem):713:714 -> a
+    13:18:void abort():731:736 -> a
+    1:1:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):679:679 -> addCallSite
+    1:1:boolean addClass(com.android.tools.r8.graph.DexProgramClass):649:649 -> addClass
+    1:1:boolean addField(com.android.tools.r8.graph.DexField):654:654 -> addField
+    1:1:boolean addMethod(com.android.tools.r8.graph.DexMethod):659:659 -> addMethod
+    1:1:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):684:684 -> addMethodHandle
+    1:1:boolean addProto(com.android.tools.r8.graph.DexProto):669:669 -> addProto
+    1:1:boolean addString(com.android.tools.r8.graph.DexString):664:664 -> addString
+    1:1:boolean addType(com.android.tools.r8.graph.DexType):674:674 -> addType
+    1:8:void commit():720:727 -> b
+    1:1:int getNumberOfClasses():745:745 -> c
+    1:1:int getNumberOfFields():708:708 -> d
+    1:1:int getNumberOfMethods():704:704 -> e
+    1:2:boolean isEmpty():740:741 -> f
+    1:1:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):689:689 -> getRenamedDescriptor
+    1:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):694:695 -> getRenamedName
+    3:3:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):700:700 -> getRenamedName
+com.android.tools.r8.dex.VirtualFile$MonoDexDistributor -> com.android.tools.r8.dex.P$h:
+    1:1:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions):504:504 -> <init>
+    1:9:java.util.Collection run():510:518 -> a
+    10:10:void com.android.tools.r8.dex.VirtualFile$DistributorBase.addFeatureSplitFiles(java.util.Map):412:412 -> a
+    10:10:java.util.Collection run():520 -> a
+    11:11:java.util.Collection run():523:523 -> a
+com.android.tools.r8.dex.VirtualFile$PackageSplitPopulator -> com.android.tools.r8.dex.P$i:
+    java.util.List classes -> a
+    java.util.Map originalNames -> b
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
+    com.android.tools.r8.dex.VirtualFile$FillStrategy fillStrategy -> d
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.dex.VirtualFile$VirtualFileCycler cycler -> e
+    1:1:void <clinit>():851:851 -> <clinit>
+    1:6:void <init>(java.util.List,java.util.Set,java.util.Map,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.dex.VirtualFile$FillStrategy,int,com.android.tools.r8.naming.NamingLens):878:883 -> <init>
+    1:5:java.util.Map call():908:912 -> a
+    6:6:java.lang.String getOriginalName(com.android.tools.r8.graph.DexProgramClass):899:899 -> a
+    6:6:java.util.Map call():913 -> a
+    7:11:boolean coveredByPrefix(java.lang.String,java.lang.String):890:894 -> a
+    7:11:java.util.Map call():914 -> a
+    12:50:java.util.Map call():916:954 -> a
+    51:51:boolean com.android.tools.r8.dex.VirtualFile.isFilledEnough(com.android.tools.r8.dex.VirtualFile$FillStrategy):222:222 -> a
+    51:51:boolean com.android.tools.r8.dex.VirtualFile.access$1500(com.android.tools.r8.dex.VirtualFile,com.android.tools.r8.dex.VirtualFile$FillStrategy):51 -> a
+    51:51:java.util.Map call():954 -> a
+    52:52:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
+    52:52:java.util.Map call():954 -> a
+    53:82:java.util.Map call():955:984 -> a
+    83:128:java.util.Map call():948:993 -> a
+    129:136:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1000:1007 -> a
+    129:136:java.util.Map call():993 -> a
+    137:137:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
+    137:137:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1008 -> a
+    137:137:java.util.Map call():993 -> a
+    138:141:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1010:1013 -> a
+    138:141:java.util.Map call():993 -> a
+    142:142:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
+    142:142:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1014 -> a
+    142:142:java.util.Map call():993 -> a
+    143:147:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1015:1019 -> a
+    143:147:java.util.Map call():993 -> a
+    148:151:com.android.tools.r8.dex.VirtualFile getVirtualFile(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler):1025:1028 -> a
+    1:1:java.lang.Object call():851:851 -> call
+com.android.tools.r8.dex.VirtualFile$VirtualFileCycler -> com.android.tools.r8.dex.P$j:
+    java.util.Iterator allFilesCyclic -> d
+    java.util.List files -> a
+    com.android.tools.r8.FeatureSplit featuresplit -> f
+    java.util.Iterator activeFiles -> e
+    com.android.tools.r8.naming.NamingLens namingLens -> b
+    boolean $assertionsDisabled -> g
+    int nextFileId -> c
+    1:1:void <clinit>():760:760 -> <clinit>
+    1:10:void <init>(java.util.List,com.android.tools.r8.naming.NamingLens,int):770:779 -> <init>
+    1:1:boolean hasNext():788:788 -> a
+    1:1:com.android.tools.r8.dex.VirtualFile nextOrCreate():799 -> a
+    1:1:com.android.tools.r8.dex.VirtualFile nextOrCreate(java.util.function.Predicate):817 -> a
+    2:6:com.android.tools.r8.dex.VirtualFile nextOrCreate():800:804 -> a
+    2:6:com.android.tools.r8.dex.VirtualFile nextOrCreate(java.util.function.Predicate):817 -> a
+    7:10:com.android.tools.r8.dex.VirtualFile nextOrCreate(java.util.function.Predicate):818:821 -> a
+    11:14:com.android.tools.r8.dex.VirtualFile addFile():833:836 -> a
+    1:1:boolean hasNext():788:788 -> b
+    1:1:com.android.tools.r8.dex.VirtualFile next():792:792 -> c
+    1:2:void reset():783:784 -> d
+    1:1:void restart():829:829 -> e
+com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection -> com.android.tools.r8.dex.P$k:
+    java.util.Set strings -> g
+    java.util.Set callSites -> h
+    java.util.Set methodHandles -> i
+    java.util.Set protos -> c
+    boolean $assertionsDisabled -> j
+    java.util.Set types -> d
+    java.util.Set methods -> e
+    com.android.tools.r8.naming.NamingLens namingLens -> a
+    java.util.Set fields -> f
+    java.util.Set classes -> b
+    1:1:void <clinit>():527:527 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.NamingLens):541:541 -> <init>
+    2:13:void <init>(com.android.tools.r8.naming.NamingLens):531:542 -> <init>
+    1:1:java.util.Set access$100(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> a
+    2:2:int getNumberOfFields():591:591 -> a
+    1:1:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):578:578 -> addCallSite
+    1:1:boolean addClass(com.android.tools.r8.graph.DexProgramClass):548:548 -> addClass
+    1:1:boolean addField(com.android.tools.r8.graph.DexField):553:553 -> addField
+    1:1:boolean addMethod(com.android.tools.r8.graph.DexMethod):558:558 -> addMethod
+    1:1:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):583:583 -> addMethodHandle
+    1:1:boolean addProto(com.android.tools.r8.graph.DexProto):568:568 -> addProto
+    1:1:boolean addString(com.android.tools.r8.graph.DexString):563:563 -> addString
+    1:1:boolean addType(com.android.tools.r8.graph.DexType):573:573 -> addType
+    1:1:java.util.Set access$200(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> b
+    2:2:int getNumberOfMethods():587:587 -> b
+    1:1:java.util.Set access$300(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> c
+    1:1:java.util.Set access$400(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> d
+    1:1:java.util.Set access$500(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> e
+    1:1:java.util.Set access$600(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> f
+    1:1:java.util.Set access$700(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> g
+    1:1:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):600:600 -> getRenamedDescriptor
+    1:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):605:606 -> getRenamedName
+    3:3:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):611:611 -> getRenamedName
+    1:1:java.util.Set access$800(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> h
+com.android.tools.r8.dexfilemerger.DexFileMerger -> com.android.tools.r8.dexfilemerger.DexFileMerger:
+    1:40:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):107:146 -> a
+    1:40:void run(java.lang.String[]):312 -> a
+    41:51:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):78:88 -> a
+    41:51:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
+    41:51:void run(java.lang.String[]):312 -> a
+    52:52:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):86:86 -> a
+    52:52:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
+    52:52:void run(java.lang.String[]):312 -> a
+    53:53:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):84:84 -> a
+    53:53:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
+    53:53:void run(java.lang.String[]):312 -> a
+    54:54:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):82:82 -> a
+    54:54:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
+    54:54:void run(java.lang.String[]):312 -> a
+    55:55:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):80:80 -> a
+    55:55:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
+    55:55:void run(java.lang.String[]):312 -> a
+    56:96:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148:188 -> a
+    56:96:void run(java.lang.String[]):312 -> a
+    97:97:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):134:134 -> a
+    97:97:void run(java.lang.String[]):312 -> a
+    98:107:void run(java.lang.String[]):314:323 -> a
+    108:116:boolean com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.isMultidexAllowed():66:74 -> a
+    108:116:void run(java.lang.String[]):323 -> a
+    117:125:void run(java.lang.String[]):324:332 -> a
+    126:163:void run(java.lang.String[]):325:362 -> a
+    164:167:void run(java.lang.String[]):352:355 -> a
+    168:176:int parseFileIndexFromShardFilename(java.lang.String):295:303 -> a
+    168:176:void run(java.lang.String[]):355 -> a
+    177:177:void run(java.lang.String[]):355:355 -> a
+    178:179:int parseFileIndexFromShardFilename(java.lang.String):305:306 -> a
+    178:179:void run(java.lang.String[]):355 -> a
+    180:181:int parseFileIndexFromShardFilename(java.lang.String):299:300 -> a
+    180:181:void run(java.lang.String[]):355 -> a
+    182:182:void run(java.lang.String[]):353:353 -> a
+    183:214:void run(java.lang.String[]):349:380 -> a
+    215:215:void run(java.lang.String[]):315:315 -> a
+    1:4:void main(java.lang.String[]):389:392 -> main
+com.android.tools.r8.dexfilemerger.DexFileMerger$1 -> com.android.tools.r8.dexfilemerger.DexFileMerger$a:
+com.android.tools.r8.dexfilemerger.DexFileMerger$ArchiveConsumer -> com.android.tools.r8.dexfilemerger.DexFileMerger$b:
+    java.lang.Integer singleFixedFileIndex -> c
+    java.util.zip.ZipOutputStream stream -> e
+    com.android.tools.r8.origin.Origin origin -> d
+    int highestIndexWritten -> f
+    boolean hasWrittenSomething -> h
+    java.nio.file.Path path -> a
+    java.lang.String prefix -> b
+    java.util.Map writers -> g
+    1:1:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer,com.android.tools.r8.dexfilemerger.DexFileMerger$1):198:198 -> <init>
+    2:2:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer):210:210 -> <init>
+    3:14:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer):203:214 -> <init>
+    1:1:boolean hasWrittenSomething():218:218 -> a
+    1:1:boolean access$200(com.android.tools.r8.dexfilemerger.DexFileMerger$ArchiveConsumer):198 -> a
+    2:12:java.util.zip.ZipOutputStream getStream(com.android.tools.r8.DiagnosticsHandler):248:258 -> a
+    13:13:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):265:265 -> a
+    13:13:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
+    14:17:java.lang.String getDexFileName(int):222:225 -> a
+    14:17:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):266 -> a
+    14:17:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
+    18:18:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):267:267 -> a
+    18:18:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
+    19:26:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):264:271 -> a
+    19:26:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
+    1:12:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):231:242 -> accept
+    1:13:void finished(com.android.tools.r8.DiagnosticsHandler):277:289 -> finished
+com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy -> com.android.tools.r8.dexfilemerger.DexFileMerger$c:
+    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy MINIMAL -> c
+    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy BEST_EFFORT -> d
+    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy[] $VALUES -> e
+    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy OFF -> a
+    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy GIVEN_SHARD -> b
+    1:13:void <clinit>():51:63 -> <clinit>
+    14:14:void <clinit>():49:49 -> <clinit>
+    1:1:void <init>(java.lang.String,int):49:49 -> <init>
+com.android.tools.r8.dexfilemerger.DexFileMerger$Options -> com.android.tools.r8.dexfilemerger.DexFileMerger$d:
+    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy multidexMode -> c
+    java.util.List inputArchives -> a
+    java.lang.String dexPrefix -> f
+    boolean minimalMainDex -> e
+    java.lang.String outputArchive -> b
+    java.lang.String mainDexListFile -> d
+    1:8:void <init>():94:101 -> <init>
+    9:9:void <init>(com.android.tools.r8.dexfilemerger.DexFileMerger$1):94:94 -> <init>
+com.android.tools.r8.dexsplitter.DexSplitter -> com.android.tools.r8.dexsplitter.DexSplitter:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():36:36 -> <clinit>
+    1:1:void <init>():37:37 -> <init>
+    1:6:com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar parseFeatureJarArgument(java.lang.String):201:206 -> a
+    1:6:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):222 -> a
+    7:11:com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar parseFeatureJarArgument(java.lang.String):204:208 -> a
+    7:11:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):222 -> a
+    12:12:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):222:222 -> a
+    13:14:void run(java.lang.String[]):280:281 -> a
+    13:14:void lambda$main$1(java.lang.String[]):362 -> a
+    15:16:void lambda$main$1(java.lang.String[]):365:366 -> a
+    17:17:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):347:347 -> a
+    1:51:com.android.tools.r8.dexsplitter.DexSplitter$Options parseArguments(java.lang.String[]):212:262 -> b
+    1:1:void main(java.lang.String[]):359:359 -> main
+    1:27:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):287:313 -> run
+    28:30:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):269:271 -> run
+    28:30:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):316 -> run
+    31:36:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):270:275 -> run
+    31:36:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):316 -> run
+    37:37:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):274:274 -> run
+    37:37:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):316 -> run
+    38:38:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):319:319 -> run
+    39:42:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):318:321 -> run
+    43:59:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):328:344 -> run
+    43:59:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):322 -> run
+    60:70:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):337:347 -> run
+    60:70:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):322 -> run
+    71:91:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):329:349 -> run
+    71:91:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):322 -> run
+    92:94:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):348:350 -> run
+    92:94:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):322 -> run
+    95:95:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):300:300 -> run
+com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar -> com.android.tools.r8.dexsplitter.DexSplitter$a:
+    java.lang.String jar -> a
+    java.lang.String outputName -> b
+    1:3:void <init>(java.lang.String,java.lang.String):48:50 -> <init>
+    4:4:void <init>(java.lang.String):54:54 -> <init>
+    1:1:java.lang.String getJar():58:58 -> a
+    2:5:java.lang.String featureNameFromJar(java.lang.String):66:69 -> a
+    1:1:java.lang.String getOutputName():62:62 -> b
+com.android.tools.r8.dexsplitter.DexSplitter$Options -> com.android.tools.r8.dexsplitter.DexSplitter$Options:
+    java.util.List inputArchives -> b
+    java.lang.String featureSplitMapping -> g
+    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> a
+    java.lang.String output -> f
+    java.lang.String mainDexList -> i
+    java.lang.String proguardMap -> h
+    boolean splitNonClassResources -> j
+    java.util.List baseJars -> d
+    java.util.List featureJars -> c
+    java.lang.String baseOutputName -> e
+    1:1:void <init>():101:101 -> <init>
+    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):104:104 -> <init>
+    3:18:void <init>(com.android.tools.r8.DiagnosticsHandler):90:105 -> <init>
+    1:1:com.android.tools.r8.DiagnosticsHandler access$000(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> a
+    2:2:void addFeatureJar(com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar):161:161 -> a
+    2:2:void access$300(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar):88 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList getBaseJars():185:185 -> a
+    1:1:void addBaseJar(java.lang.String):157:157 -> addBaseJar
+    1:1:void addFeatureJar(java.lang.String):165:165 -> addFeatureJar
+    2:2:void addFeatureJar(java.lang.String,java.lang.String):169:169 -> addFeatureJar
+    1:1:void addInputArchive(java.lang.String):153:153 -> addInputArchive
+    1:1:java.util.List access$100(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> b
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList getFeatureJars():181:181 -> b
+    1:1:boolean access$200(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> c
+    1:1:void error(java.lang.String):190:190 -> error
+    1:1:java.lang.String getBaseOutputName():145:145 -> getBaseOutputName
+    1:1:com.android.tools.r8.DiagnosticsHandler getDiagnosticsHandler():109:109 -> getDiagnosticsHandler
+    1:1:java.lang.String getFeatureSplitMapping():129:129 -> getFeatureSplitMapping
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getInputArchives():177:177 -> getInputArchives
+    1:1:java.lang.String getMainDexList():113:113 -> getMainDexList
+    1:1:java.lang.String getOutput():121:121 -> getOutput
+    1:1:java.lang.String getProguardMap():137:137 -> getProguardMap
+    1:1:void setBaseOutputName(java.lang.String):149:149 -> setBaseOutputName
+    1:1:void setFeatureSplitMapping(java.lang.String):133:133 -> setFeatureSplitMapping
+    1:1:void setMainDexList(java.lang.String):117:117 -> setMainDexList
+    1:1:void setOutput(java.lang.String):125:125 -> setOutput
+    1:1:void setProguardMap(java.lang.String):141:141 -> setProguardMap
+    1:1:void setSplitNonClassResources(boolean):173:173 -> setSplitNonClassResources
+com.android.tools.r8.dexsplitter.DexSplitter$Options$1 -> com.android.tools.r8.dexsplitter.DexSplitter$Options$a:
+    1:1:void <init>():101:101 -> <init>
+com.android.tools.r8.dexsplitter.DexSplitter$ZipFileOrigin -> com.android.tools.r8.dexsplitter.DexSplitter$b:
+    1:1:void <init>(java.nio.file.Path):78:78 -> <init>
+    1:1:java.lang.String part():83:83 -> part
+com.android.tools.r8.errors.CompilationError -> com.android.tools.r8.errors.a:
+    com.android.tools.r8.origin.Origin origin -> a
+    com.android.tools.r8.position.Position position -> b
+    1:1:void <init>(java.lang.String):22:22 -> <init>
+    2:2:void <init>(java.lang.String,java.lang.Throwable):26:26 -> <init>
+    3:3:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> <init>
+    4:4:void <init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> <init>
+    5:7:void <init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):38:40 -> <init>
+    1:6:com.android.tools.r8.errors.CompilationError withAdditionalOriginAndPositionInfo(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):44:49 -> a
+    7:7:com.android.tools.r8.Diagnostic toStringDiagnostic():56:56 -> a
+com.android.tools.r8.errors.DexFileOverflowDiagnostic -> com.android.tools.r8.errors.DexFileOverflowDiagnostic:
+    long numOfMethods -> b
+    long numOfFields -> c
+    boolean hasMainDexSpecification -> a
+    1:4:void <init>(boolean,long,long):26:29 -> <init>
+    1:26:java.lang.String getDiagnosticMessage():71:96 -> getDiagnosticMessage
+    1:1:long getNumberOfFields():34:34 -> getNumberOfFields
+    1:1:long getNumberOfMethods():39:39 -> getNumberOfMethods
+    1:1:com.android.tools.r8.origin.Origin getOrigin():60:60 -> getOrigin
+    1:1:boolean hasMainDexSpecification():54:54 -> hasMainDexSpecification
+com.android.tools.r8.errors.DuplicateTypesDiagnostic -> com.android.tools.r8.errors.DuplicateTypesDiagnostic:
+    com.android.tools.r8.references.ClassReference type -> a
+    java.util.Collection origins -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.references.ClassReference,java.util.Collection):21:25 -> <init>
+    1:2:java.lang.String getDiagnosticMessage():66:67 -> getDiagnosticMessage
+    1:1:com.android.tools.r8.origin.Origin getOrigin():56:56 -> getOrigin
+    1:1:java.util.Collection getOrigins():43:43 -> getOrigins
+    1:1:com.android.tools.r8.position.Position getPosition():61:61 -> getPosition
+    1:1:com.android.tools.r8.references.ClassReference getType():30:30 -> getType
+com.android.tools.r8.errors.IncompleteNestNestDesugarDiagnosic -> com.android.tools.r8.errors.IncompleteNestNestDesugarDiagnosic:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String):15:15 -> <init>
+com.android.tools.r8.errors.InterfaceDesugarMissingTypeDiagnostic -> com.android.tools.r8.errors.InterfaceDesugarMissingTypeDiagnostic:
+    com.android.tools.r8.references.ClassReference implementingContextType -> e
+    com.android.tools.r8.origin.Origin origin -> a
+    com.android.tools.r8.references.ClassReference missingType -> c
+    com.android.tools.r8.position.Position position -> b
+    com.android.tools.r8.references.ClassReference contextType -> d
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:11:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,com.android.tools.r8.references.ClassReference,com.android.tools.r8.references.ClassReference,com.android.tools.r8.references.ClassReference):31:41 -> <init>
+    1:1:com.android.tools.r8.references.ClassReference getContextType():63:63 -> getContextType
+    1:19:java.lang.String getDiagnosticMessage():68:86 -> getDiagnosticMessage
+    1:1:com.android.tools.r8.references.ClassReference getMissingType():58:58 -> getMissingType
+    1:1:com.android.tools.r8.origin.Origin getOrigin():47:47 -> getOrigin
+    1:1:com.android.tools.r8.position.Position getPosition():53:53 -> getPosition
+com.android.tools.r8.errors.InternalCompilerError -> com.android.tools.r8.errors.b:
+    1:1:void <init>():14:14 -> <init>
+    2:2:void <init>(java.lang.String):18:18 -> <init>
+    3:3:void <init>(java.lang.String,java.lang.Throwable):22:22 -> <init>
+    4:4:void <init>(java.lang.Throwable):26:26 -> <init>
+com.android.tools.r8.errors.InvalidDebugInfoException -> com.android.tools.r8.errors.c:
+    1:1:void <init>(java.lang.String):8:8 -> <init>
+com.android.tools.r8.errors.InvalidDescriptorException -> com.android.tools.r8.errors.d:
+    1:1:void <init>(java.lang.String):8:8 -> <init>
+com.android.tools.r8.errors.MissingNestHostNestDesugarDiagnostic -> com.android.tools.r8.errors.MissingNestHostNestDesugarDiagnostic:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String):15:15 -> <init>
+com.android.tools.r8.errors.NestDesugarDiagnostic -> com.android.tools.r8.errors.NestDesugarDiagnostic:
+    com.android.tools.r8.origin.Origin origin -> a
+    com.android.tools.r8.position.Position position -> b
+    java.lang.String message -> c
+    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String):18:21 -> <init>
+    1:1:java.lang.String getDiagnosticMessage():36:36 -> getDiagnosticMessage
+    1:1:com.android.tools.r8.origin.Origin getOrigin():26:26 -> getOrigin
+    1:1:com.android.tools.r8.position.Position getPosition():31:31 -> getPosition
+com.android.tools.r8.errors.Unimplemented -> com.android.tools.r8.errors.e:
+    1:1:void <init>():11:11 -> <init>
+    2:2:void <init>(java.lang.String):15:15 -> <init>
+com.android.tools.r8.errors.Unreachable -> com.android.tools.r8.errors.f:
+    1:1:void <init>():11:11 -> <init>
+    2:2:void <init>(java.lang.String):15:15 -> <init>
+    3:3:void <init>(java.lang.Throwable):19:19 -> <init>
+com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode -> com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode:
+    com.android.tools.r8.experimental.graphinfo.GraphNode annotatedNode -> c
+    1:2:void <init>(com.android.tools.r8.experimental.graphinfo.GraphNode):14:15 -> <init>
+    1:3:boolean equals(java.lang.Object):24:26 -> equals
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getAnnotatedNode():19:19 -> getAnnotatedNode
+    1:1:int hashCode():31:31 -> hashCode
+    1:1:java.lang.String toString():36:36 -> toString
+com.android.tools.r8.experimental.graphinfo.ClassGraphNode -> com.android.tools.r8.experimental.graphinfo.ClassGraphNode:
+    com.android.tools.r8.references.ClassReference reference -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:3:void <init>(boolean,com.android.tools.r8.references.ClassReference):15:17 -> <init>
+    1:1:boolean equals(java.lang.Object):26:26 -> equals
+    1:1:com.android.tools.r8.references.ClassReference getReference():21:21 -> getReference
+    1:1:int hashCode():32:32 -> hashCode
+    1:1:java.lang.String toString():37:37 -> toString
+com.android.tools.r8.experimental.graphinfo.FieldGraphNode -> com.android.tools.r8.experimental.graphinfo.FieldGraphNode:
+    com.android.tools.r8.references.FieldReference reference -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:3:void <init>(boolean,com.android.tools.r8.references.FieldReference):15:17 -> <init>
+    1:1:boolean equals(java.lang.Object):26:26 -> equals
+    1:1:com.android.tools.r8.references.FieldReference getReference():21:21 -> getReference
+    1:1:int hashCode():32:32 -> hashCode
+    1:1:java.lang.String toString():37:37 -> toString
+com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo -> com.android.tools.r8.experimental.graphinfo.a:
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo UNKNOWN -> b
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind kind -> a
+    boolean $assertionsDisabled -> c
+    1:3:void <clinit>():6:8 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):41:42 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():46:46 -> a
+    1:40:java.lang.String getInfoPrefix():50:89 -> b
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo unknown():11:11 -> c
+    1:1:boolean equals(java.lang.Object):103:103 -> equals
+    1:1:int hashCode():108:108 -> hashCode
+    1:1:java.lang.String toString():98:98 -> toString
+com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind -> com.android.tools.r8.experimental.graphinfo.a$a:
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind[] $VALUES -> u
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind Unknown -> t
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReachableFromLiveType -> m
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReflectiveUseFrom -> l
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind IsLibraryMethod -> o
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReferencedInAnnotation -> n
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind MethodHandleUseFrom -> q
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind OverridingMethod -> p
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind CompanionMethod -> s
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind CompanionClass -> r
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InstantiatedIn -> e
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind KeepRulePrecondition -> d
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind TargetedBySuper -> g
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InvokedViaSuper -> f
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InvokedFromLambdaCreatedIn -> i
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InvokedFrom -> h
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReferencedFrom -> k
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind AnnotatedOn -> j
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind KeepRule -> a
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ConditionalKeepRule -> c
+    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind CompatibilityRule -> b
+    1:20:void <clinit>():17:36 -> <clinit>
+    21:21:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(java.lang.String,int):15:15 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind[] values():15:15 -> a
+com.android.tools.r8.experimental.graphinfo.GraphNode -> com.android.tools.r8.experimental.graphinfo.GraphNode:
+    boolean isLibraryNode -> a
+    com.android.tools.r8.experimental.graphinfo.GraphNode CYCLE -> b
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:2:void <init>(boolean):31:32 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode cycle():36:36 -> cycle
+    1:1:boolean isCycle():40:40 -> isCycle
+    1:1:boolean isLibraryNode():44:44 -> isLibraryNode
+com.android.tools.r8.experimental.graphinfo.GraphNode$1 -> com.android.tools.r8.experimental.graphinfo.GraphNode$a:
+    1:1:void <init>(boolean):12:12 -> <init>
+com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode -> com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode:
+    com.android.tools.r8.origin.Origin origin -> c
+    com.android.tools.r8.position.Position position -> d
+    java.util.Set preconditions -> f
+    boolean $assertionsDisabled -> g
+    java.lang.String content -> e
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardKeepRule):28:28 -> <init>
+    2:8:void <init>(com.android.tools.r8.shaking.ProguardKeepRuleBase,java.util.Set):32:38 -> <init>
+    1:8:boolean equals(java.lang.Object):46:53 -> equals
+    1:1:java.lang.String getContent():70:70 -> getContent
+    1:1:com.android.tools.r8.origin.Origin getOrigin():62:62 -> getOrigin
+    1:1:com.android.tools.r8.position.Position getPosition():66:66 -> getPosition
+    1:1:java.util.Set getPreconditions():74:74 -> getPreconditions
+    1:1:int hashCode():58:58 -> hashCode
+    1:3:java.lang.String toString():85:87 -> toString
+    4:12:java.lang.String shortPositionInfo(com.android.tools.r8.position.Position):91:99 -> toString
+    4:12:java.lang.String toString():87 -> toString
+    13:13:java.lang.String toString():87:87 -> toString
+com.android.tools.r8.experimental.graphinfo.MethodGraphNode -> com.android.tools.r8.experimental.graphinfo.MethodGraphNode:
+    com.android.tools.r8.references.MethodReference reference -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:3:void <init>(boolean,com.android.tools.r8.references.MethodReference):15:17 -> <init>
+    1:1:boolean equals(java.lang.Object):26:26 -> equals
+    1:1:com.android.tools.r8.references.MethodReference getReference():21:21 -> getReference
+    1:1:int hashCode():32:32 -> hashCode
+    1:1:java.lang.String toString():37:37 -> toString
+com.android.tools.r8.features.FeatureSplitConfiguration -> com.android.tools.r8.s.a:
+    java.util.List featureSplits -> a
+    java.util.Map javaTypeToFeatureSplitMapping -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(java.util.List,com.android.tools.r8.utils.Reporter):33:33 -> <init>
+    2:13:void <init>(java.util.List,com.android.tools.r8.utils.Reporter):31:42 -> <init>
+    14:19:void <init>(java.util.List,com.android.tools.r8.utils.Reporter):41:46 -> <init>
+    1:8:java.util.Map getFeatureSplitClasses(java.util.Set,com.android.tools.r8.naming.ClassNameMapper):54:61 -> a
+    9:9:java.util.Set lambda$getFeatureSplitClasses$0(com.android.tools.r8.FeatureSplit):61:61 -> a
+    10:25:java.util.Collection getDataResourceProvidersAndConsumers():87:102 -> a
+    26:28:boolean isInFeature(com.android.tools.r8.graph.DexProgramClass):111:111 -> a
+    29:29:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):116:116 -> a
+    30:36:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):120:126 -> a
+    30:36:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):116 -> a
+    37:40:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):125:128 -> a
+    37:40:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):116 -> a
+    41:41:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):127:127 -> a
+    41:41:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):116 -> a
+    1:1:java.util.List getFeatureSplits():132:132 -> b
+com.android.tools.r8.features.FeatureSplitConfiguration$DataResourceProvidersAndConsumer -> com.android.tools.r8.s.a$a:
+    com.android.tools.r8.DataResourceConsumer consumer -> b
+    java.util.Set providers -> a
+    1:3:void <init>(java.util.Set,com.android.tools.r8.DataResourceConsumer):72:74 -> <init>
+    1:1:com.android.tools.r8.DataResourceConsumer getConsumer():82:82 -> a
+    1:1:java.util.Set getProviders():78:78 -> b
+com.android.tools.r8.graph.AccessControl -> com.android.tools.r8.graph.a:
+    1:1:boolean isClassAccessible(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):15:15 -> a
+    1:1:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):42 -> a
+    2:2:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    2:2:boolean isClassAccessible(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):18 -> a
+    2:2:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):42 -> a
+    3:3:boolean isClassAccessible(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):18:18 -> a
+    3:3:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):42 -> a
+    4:7:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):45:48 -> a
+    8:11:boolean isNestMate(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):64:67 -> a
+    8:11:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):49 -> a
+    12:13:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    12:13:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):51 -> a
+    14:17:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):51:54 -> a
+    18:19:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    18:19:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):57 -> a
+    20:20:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):57:57 -> a
+    21:21:boolean isMethodAccessible(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):26:26 -> a
+    22:22:boolean isFieldAccessible(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithSubtyping):34:34 -> a
+com.android.tools.r8.graph.AccessFlags -> com.android.tools.r8.graph.b:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag[] EMPTY_FLAG -> a
+    java.util.List NAMES -> d
+    boolean $assertionsDisabled -> e
+    int originalFlags -> b
+    int modifiedFlags -> c
+    1:14:void <clinit>():16:29 -> <clinit>
+    1:1:void <init>(int,int):57:57 -> <init>
+    2:43:void <init>(int,int):18:59 -> <init>
+    1:1:void unsetPublic():167:167 -> A
+    1:1:void unsetSynthetic():229:229 -> B
+    1:7:int visibilityOrdinal():136:142 -> C
+    1:5:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):114:118 -> a
+    6:6:boolean isVisibilityDependingOnPackage():150:150 -> a
+    6:6:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):119 -> a
+    7:7:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):120:120 -> a
+    8:8:boolean isAtLeastAsVisibleAs(com.android.tools.r8.graph.AccessFlags):127:127 -> a
+    9:9:void demoteFromFinal():241:241 -> a
+    10:10:void demote(int):284:284 -> a
+    11:24:java.lang.String toStringInternal(boolean):297:310 -> a
+    1:1:boolean isSameVisibility(com.android.tools.r8.graph.AccessFlags):131:131 -> b
+    2:2:void demoteFromSynthetic():233:233 -> b
+    3:3:boolean isSet(int):262:262 -> b
+    1:1:java.util.List getNames():51:51 -> c
+    2:2:void promote(int):280:280 -> c
+    1:1:int getOriginalAccessFlags():95:95 -> d
+    2:3:void set(int):266:267 -> d
+    1:1:java.util.List getPredicates():40:40 -> e
+    2:3:void unset(int):271:272 -> e
+    1:3:boolean equals(java.lang.Object):100:102 -> equals
+    1:1:boolean isFinal():209:209 -> f
+    1:1:boolean isPackagePrivate():154:154 -> g
+    1:1:boolean isPrivate():171:171 -> h
+    1:1:int hashCode():109:109 -> hashCode
+    1:1:boolean wasSet(int):258:258 -> i
+    1:1:boolean isPromoted(int):276 -> i
+    1:1:boolean isPromotedToPublic():245 -> i
+    2:2:boolean isSet(int):262:262 -> i
+    2:2:boolean isPromoted(int):276 -> i
+    2:2:boolean isPromotedToPublic():245 -> i
+    1:1:boolean isProtected():184:184 -> j
+    1:1:boolean isPublic():158:158 -> k
+    1:1:boolean isStatic():197:197 -> l
+    1:1:boolean isSynthetic():221:221 -> m
+    1:1:int materialize():67:67 -> n
+    1:1:void promoteToFinal():237:237 -> o
+    1:2:void promoteToPublic():249:250 -> p
+    1:1:void promoteToStatic():254:254 -> q
+    1:1:void setFinal():213:213 -> r
+    1:2:void setPrivate():175:176 -> s
+    1:2:void setProtected():188:189 -> t
+    1:1:java.lang.String toString():293:293 -> toString
+    1:2:void setPublic():162:163 -> u
+    1:1:void setStatic():201:201 -> v
+    1:1:void setSynthetic():225:225 -> w
+    1:1:java.lang.String toSmaliString():288:288 -> x
+    1:1:void unsetPrivate():180:180 -> y
+    1:1:void unsetProtected():193:193 -> z
+com.android.tools.r8.graph.AppInfo -> com.android.tools.r8.graph.c:
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication):42:42 -> <init>
+    2:14:void <init>(com.android.tools.r8.graph.DexApplication):32:44 -> <init>
+    15:15:void <init>(com.android.tools.r8.graph.AppInfo):47:47 -> <init>
+    16:36:void <init>(com.android.tools.r8.graph.AppInfo):32:52 -> <init>
+    1:1:com.android.tools.r8.graph.DexItemFactory access$000(com.android.tools.r8.graph.AppInfo):28:28 -> a
+    2:8:java.util.Map computeDefinitions(com.android.tools.r8.graph.DexType):105:111 -> a
+    9:9:void lambda$computeDefinitions$0(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedMethod):108:108 -> a
+    10:10:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.DexEncodedField.toReference():115:115 -> a
+    10:10:void lambda$computeDefinitions$1(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedField):109 -> a
+    11:11:void lambda$computeDefinitions$1(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedField):109:109 -> a
+    12:17:com.android.tools.r8.graph.ResolutionResult resolveMethodOnArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):314:319 -> a
+    18:18:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):372:372 -> a
+    19:25:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.lookupSignaturePolymorphicMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):584:590 -> a
+    19:25:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):372 -> a
+    26:28:boolean com.android.tools.r8.graph.DexClass.isSignaturePolymorphicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):606:608 -> a
+    26:28:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.lookupSignaturePolymorphicMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):597 -> a
+    26:28:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):372 -> a
+    29:29:boolean com.android.tools.r8.graph.MethodAccessFlags.isVarargs():148:148 -> a
+    29:29:boolean com.android.tools.r8.graph.DexClass.isSignaturePolymorphicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):608 -> a
+    29:29:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.lookupSignaturePolymorphicMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):597 -> a
+    29:29:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):372 -> a
+    30:32:boolean com.android.tools.r8.graph.DexClass.isSignaturePolymorphicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):608:610 -> a
+    30:32:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.lookupSignaturePolymorphicMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):597 -> a
+    30:32:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):372 -> a
+    33:52:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):374:393 -> a
+    53:60:void resolveMethodStep3Helper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppInfo$MaximallySpecificMethodsBuilder):414:421 -> a
+    61:61:boolean isMaximallySpecificCandidate(com.android.tools.r8.graph.DexEncodedMethod):445:445 -> a
+    61:61:void resolveMethodStep3Helper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppInfo$MaximallySpecificMethodsBuilder):422 -> a
+    62:72:void resolveMethodStep3Helper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppInfo$MaximallySpecificMethodsBuilder):424:434 -> a
+    1:5:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):92:96 -> addSynthesizedClass
+    1:2:com.android.tools.r8.graph.DexApplication app():81:82 -> app
+    1:8:java.util.Map getDefinitions(com.android.tools.r8.graph.DexType):190:197 -> b
+    1:1:boolean checkIfObsolete():76:76 -> checkIfObsolete
+    1:2:java.util.Collection classes():115:116 -> classes
+    1:2:java.lang.Iterable classesWithDeterministicOrder():120:121 -> classesWithDeterministicOrder
+    1:1:void copyMetadataFromPrevious(com.android.tools.r8.graph.AppInfo):60:60 -> copyMetadataFromPrevious
+    1:9:com.android.tools.r8.graph.DexDefinition definitionFor(com.android.tools.r8.graph.DexReference):126:134 -> definitionFor
+    10:16:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):139:145 -> definitionFor
+    17:22:com.android.tools.r8.graph.DexEncodedMethod definitionFor(com.android.tools.r8.graph.DexMethod):173:178 -> definitionFor
+    23:24:com.android.tools.r8.graph.DexEncodedField definitionFor(com.android.tools.r8.graph.DexField):185:186 -> definitionFor
+    1:7:com.android.tools.r8.graph.DexClass definitionForDesugarDependency(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):149:155 -> definitionForDesugarDependency
+    8:8:com.android.tools.r8.graph.DexClass definitionForDesugarDependency(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):154:154 -> definitionForDesugarDependency
+    1:1:com.android.tools.r8.graph.DexProgramClass definitionForProgramType(com.android.tools.r8.graph.DexType):162:162 -> definitionForProgramType
+    1:2:com.android.tools.r8.graph.DexItemFactory dexItemFactory():87:88 -> dexItemFactory
+    1:2:java.util.Collection getSynthesizedClassesForSanityCheck():100:101 -> getSynthesizedClassesForSanityCheck
+    1:1:boolean hasClassHierarchy():546:546 -> hasClassHierarchy
+    1:1:boolean hasLiveness():566:566 -> hasLiveness
+    1:1:boolean hasSubtyping():556:556 -> hasSubtyping
+    1:1:void invalidateTypeCacheFor(com.android.tools.r8.graph.DexType):202:202 -> invalidateTypeCacheFor
+    1:2:boolean isInMainDexList(com.android.tools.r8.graph.DexType):576:577 -> isInMainDexList
+    1:1:boolean isObsolete():64:64 -> isObsolete
+    1:1:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTargetOnItself(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):245:245 -> lookupDirectTargetOnItself
+    2:6:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTargetOnItself(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):250:254 -> lookupDirectTargetOnItself
+    1:1:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTargetOnItself(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):221:221 -> lookupStaticTargetOnItself
+    2:6:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTargetOnItself(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):226:230 -> lookupStaticTargetOnItself
+    1:1:void markObsolete():68:68 -> markObsolete
+    1:1:com.android.tools.r8.utils.InternalOptions options():56:56 -> options
+    1:3:com.android.tools.r8.origin.Origin originFor(com.android.tools.r8.graph.DexType):166:168 -> originFor
+    1:2:com.android.tools.r8.graph.DexEncodedField resolveField(com.android.tools.r8.graph.DexField):504:505 -> resolveField
+    1:3:com.android.tools.r8.graph.DexEncodedField resolveFieldOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):515:517 -> resolveFieldOn
+    4:20:com.android.tools.r8.graph.DexEncodedField resolveFieldOn(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexField):521:537 -> resolveFieldOn
+    1:9:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):271:279 -> resolveMethod
+    10:12:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):283:285 -> resolveMethod
+    13:16:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,boolean):300:303 -> resolveMethod
+    1:13:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):335:347 -> resolveMethodOnClass
+    14:22:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):351:359 -> resolveMethodOnClass
+    1:15:com.android.tools.r8.graph.ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):460:474 -> resolveMethodOnInterface
+    16:34:com.android.tools.r8.graph.ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):478:496 -> resolveMethodOnInterface
+    1:3:com.android.tools.r8.graph.ResolutionResult resolveMethodStep3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):406:408 -> resolveMethodStep3
+    1:2:com.android.tools.r8.graph.DexProgramClass toProgramClass(com.android.tools.r8.graph.DexType):208:209 -> toProgramClass
+    1:1:void unsetObsolete():72:72 -> unsetObsolete
+    1:1:com.android.tools.r8.graph.AppInfoWithClassHierarchy withClassHierarchy():551:551 -> withClassHierarchy
+    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness withLiveness():571:571 -> withLiveness
+    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping withSubtyping():561:561 -> withSubtyping
+com.android.tools.r8.graph.AppInfo$MaximallySpecificMethodsBuilder -> com.android.tools.r8.graph.c$a:
+    com.android.tools.r8.graph.DexClass initialResolutionHolder -> a
+    java.util.LinkedHashMap maximallySpecificMethods -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():580:580 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexClass):592:592 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.DexClass):590:593 -> <init>
+    1:9:void addCandidate(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppInfo):598:606 -> a
+    10:24:void markShadowed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppInfo):614:628 -> a
+    25:65:com.android.tools.r8.graph.ResolutionResult resolve():633:673 -> a
+com.android.tools.r8.graph.AppInfoWithClassHierarchy -> com.android.tools.r8.graph.d:
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication):27:27 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.AppInfo):31:31 -> <init>
+    1:2:com.android.tools.r8.utils.TraversalContinuation lambda$forEachSuperType$0(java.util.function.BiConsumer,com.android.tools.r8.graph.DexType,java.lang.Boolean):127:128 -> a
+    3:3:com.android.tools.r8.utils.TraversalContinuation lambda$isStrictSubtypeOf$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,java.lang.Boolean):162:162 -> a
+    4:5:void lambda$implementedInterfaces$2(java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Boolean):191:192 -> a
+    1:1:void forEachSuperType(com.android.tools.r8.graph.DexClass,java.util.function.BiConsumer):124:124 -> forEachSuperType
+    1:1:boolean hasClassHierarchy():36:36 -> hasClassHierarchy
+    1:17:java.util.Set implementedInterfaces(com.android.tools.r8.graph.DexType):174:190 -> implementedInterfaces
+    1:1:boolean isExternalizable(com.android.tools.r8.graph.DexType):199:199 -> isExternalizable
+    1:3:boolean isRelatedBySubtyping(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):167:169 -> isRelatedBySubtyping
+    1:1:boolean isSerializable(com.android.tools.r8.graph.DexType):203:203 -> isSerializable
+    1:25:boolean isStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):139:163 -> isStrictSubtypeOf
+    1:3:boolean isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):133:135 -> isSubtype
+    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):301:302 -> lookupDirectTarget
+    3:4:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):306:307 -> lookupDirectTarget
+    1:4:com.android.tools.r8.graph.DexEncodedField lookupInstanceTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):229:232 -> lookupInstanceTarget
+    1:4:com.android.tools.r8.graph.DexEncodedField lookupStaticTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):242:245 -> lookupStaticTarget
+    5:6:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):259:260 -> lookupStaticTarget
+    7:8:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):265:266 -> lookupStaticTarget
+    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):281:282 -> lookupSuperTarget
+    3:4:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):287:288 -> lookupSuperTarget
+    1:9:com.android.tools.r8.graph.ResolutionResult resolveMaximallySpecificMethods(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):211:219 -> resolveMaximallySpecificMethods
+    1:53:com.android.tools.r8.utils.TraversalContinuation traverseSuperTypes(com.android.tools.r8.graph.DexClass,java.util.function.BiFunction):63:115 -> traverseSuperTypes
+    1:1:com.android.tools.r8.graph.AppInfoWithClassHierarchy withClassHierarchy():42:42 -> withClassHierarchy
+com.android.tools.r8.graph.AppInfoWithSubtyping -> com.android.tools.r8.graph.e:
+    1:9:void <clinit>():30:38 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication):157:157 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,java.util.Collection):162:162 -> <init>
+    3:29:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,java.util.Collection):139:165 -> <init>
+    30:30:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping):169:169 -> <init>
+    31:66:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping):139:174 -> <init>
+    1:1:java.util.Set access$000():30:30 -> a
+    2:25:void populateAllSuperTypes(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,java.util.function.Function):275:298 -> a
+    26:34:void populateSubtypeMap(java.util.Collection,java.util.function.Function,com.android.tools.r8.graph.DexItemFactory):307:315 -> a
+    35:69:boolean validateLevelsAreCorrect(java.util.function.Function,com.android.tools.r8.graph.DexItemFactory):320:354 -> a
+    35:69:void populateSubtypeMap(java.util.Collection,java.util.function.Function,com.android.tools.r8.graph.DexItemFactory):315 -> a
+    70:72:void registerNewType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):407:409 -> a
+    73:106:boolean computeMayHaveFinalizeMethodDirectlyOrIndirectlyIfAbsent(com.android.tools.r8.graph.DexType,boolean):499:532 -> a
+    1:20:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):179:198 -> addSynthesizedClass
+    21:46:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):197:222 -> addSynthesizedClass
+    1:9:java.lang.Iterable allImmediateExtendsSubtypes_(com.android.tools.r8.graph.DexType):443:451 -> allImmediateExtendsSubtypes_
+    1:5:java.lang.Iterable allImmediateImplementsSubtypes_(com.android.tools.r8.graph.DexType):457:461 -> allImmediateImplementsSubtypes_
+    1:1:java.util.Set allImmediateSubtypes(com.android.tools.r8.graph.DexType):430:430 -> allImmediateSubtypes
+    1:4:void populateSuperType(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,java.util.function.Function):257:260 -> b
+    1:2:com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo getTypeInfo(com.android.tools.r8.graph.DexType):266:267 -> c
+    1:1:boolean lambda$allImmediateExtendsSubtypes_$1(com.android.tools.r8.graph.DexType):446:446 -> d
+    1:1:boolean lambda$allImmediateExtendsSubtypes_$2(com.android.tools.r8.graph.DexType):449:449 -> e
+    1:1:boolean lambda$allImmediateImplementsSubtypes_$3(com.android.tools.r8.graph.DexType):459:459 -> f
+    1:13:void forEachInstantiatedSubType(com.android.tools.r8.graph.DexType,java.util.function.Consumer,java.util.function.Consumer):45:57 -> forEachInstantiatedSubType
+    1:1:java.util.Set lambda$populateSuperType$0(com.android.tools.r8.graph.DexType):257:257 -> g
+    1:2:java.util.Set getMissingClasses():243:244 -> getMissingClasses
+    1:4:com.android.tools.r8.graph.DexType getSingleSubtype_(com.android.tools.r8.graph.DexType):471:474 -> getSingleSubtype_
+    5:5:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getFirst(java.lang.Iterable,java.lang.Object):809:809 -> getSingleSubtype_
+    5:5:com.android.tools.r8.graph.DexType getSingleSubtype_(com.android.tools.r8.graph.DexType):474 -> getSingleSubtype_
+    6:6:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.getNext(java.util.Iterator,java.lang.Object):888:888 -> getSingleSubtype_
+    6:6:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getFirst(java.lang.Iterable,java.lang.Object):809 -> getSingleSubtype_
+    6:6:com.android.tools.r8.graph.DexType getSingleSubtype_(com.android.tools.r8.graph.DexType):474 -> getSingleSubtype_
+    7:7:com.android.tools.r8.graph.DexType getSingleSubtype_(com.android.tools.r8.graph.DexType):474:474 -> getSingleSubtype_
+    1:1:boolean hasSubtypes(com.android.tools.r8.graph.DexType):438:438 -> hasSubtypes
+    1:1:boolean hasSubtyping():419:419 -> hasSubtyping
+    1:1:boolean inDifferentHierarchy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):481:481 -> inDifferentHierarchy
+    1:1:boolean isMissingOrHasMissingSuperType(com.android.tools.r8.graph.DexType):465:465 -> isMissingOrHasMissingSuperType
+    2:6:boolean com.android.tools.r8.graph.DexClass.hasMissingSuperType(com.android.tools.r8.graph.AppInfoWithSubtyping):737:741 -> isMissingOrHasMissingSuperType
+    2:6:boolean isMissingOrHasMissingSuperType(com.android.tools.r8.graph.DexType):466 -> isMissingOrHasMissingSuperType
+    1:4:boolean isStringConcat(com.android.tools.r8.graph.DexMethodHandle):400:403 -> isStringConcat
+    1:1:boolean isUnknown(com.android.tools.r8.graph.DexType):434:434 -> isUnknown
+    2:2:boolean com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo.isUnknown():126:126 -> isUnknown
+    2:2:boolean isUnknown(com.android.tools.r8.graph.DexType):434 -> isUnknown
+    1:1:java.lang.Iterable libraryClasses():238:238 -> libraryClasses
+    2:2:com.android.tools.r8.graph.DirectMappedDexApplication getDirectApplication():234:234 -> libraryClasses
+    2:2:java.lang.Iterable libraryClasses():239 -> libraryClasses
+    3:3:java.lang.Iterable libraryClasses():239:239 -> libraryClasses
+    1:10:boolean mayHaveFinalizeMethodDirectlyOrIndirectly(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):485:494 -> mayHaveFinalizeMethodDirectlyOrIndirectly
+    1:7:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):380:386 -> methodDefinedInInterface
+    8:8:boolean com.android.tools.r8.graph.DexMethod.hasSameProtoAndName(com.android.tools.r8.graph.DexMethod):101:101 -> methodDefinedInInterface
+    8:8:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):386 -> methodDefinedInInterface
+    9:15:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):386:392 -> methodDefinedInInterface
+    1:6:boolean methodDefinedInInterfaces(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):367:372 -> methodDefinedInInterfaces
+    1:1:void registerNewTypeForTesting(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):414:414 -> registerNewTypeForTesting
+    1:4:java.util.Set subtypes(com.android.tools.r8.graph.DexType):248:251 -> subtypes
+    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping withSubtyping():425:425 -> withSubtyping
+com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo -> com.android.tools.r8.graph.e$a:
+    java.util.Set directSubtypes -> c
+    com.android.tools.r8.graph.DexType type -> a
+    int hierarchyLevel -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():60:60 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexType):74:74 -> <init>
+    2:13:void <init>(com.android.tools.r8.graph.DexType):64:75 -> <init>
+    1:2:void ensureDirectSubTypeSet():84:85 -> a
+    3:13:void setLevel(int):90:100 -> a
+    14:17:void addDirectSubtype(com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo):105:108 -> a
+    18:20:void addInterfaceSubtype(com.android.tools.r8.graph.DexType):132:134 -> a
+    1:3:boolean isInterface():120:122 -> b
+    1:1:void tagAsInterface():116:116 -> c
+    1:1:void tagAsSubtypeRoot():112:112 -> d
+    1:1:java.lang.String toString():80:80 -> toString
+com.android.tools.r8.graph.AppServices -> com.android.tools.r8.graph.f:
+    java.util.Map services -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.graph.AppServices$1):32:32 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):41:43 -> <init>
+    1:2:java.util.Set allServiceTypes():51:52 -> a
+    3:11:java.util.List serviceImplementationsFor(com.android.tools.r8.graph.DexType):56:64 -> a
+    12:14:java.util.List serviceImplementationsFor(com.android.tools.r8.graph.DexType):60:62 -> a
+    15:24:com.android.tools.r8.graph.AppServices rewrittenWithLens(com.android.tools.r8.graph.GraphLense):70:79 -> a
+    25:40:com.android.tools.r8.graph.AppServices prunedCopy(java.util.Collection):83:98 -> a
+    41:46:com.android.tools.r8.graph.AppServices prunedCopy(java.util.Collection):97:102 -> a
+    47:47:void visit(java.util.function.BiConsumer):116:116 -> a
+    48:48:com.android.tools.r8.graph.AppServices$Builder builder(com.android.tools.r8.graph.AppView):120:120 -> a
+    1:1:boolean isEmpty():47:47 -> b
+    1:4:boolean verifyRewrittenWithLens():106:109 -> c
+com.android.tools.r8.graph.AppServices$1 -> com.android.tools.r8.graph.f$a:
+com.android.tools.r8.graph.AppServices$Builder -> com.android.tools.r8.graph.f$b:
+    java.util.Map services -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.AppServices$1):123:123 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.AppView):128:128 -> <init>
+    3:6:void <init>(com.android.tools.r8.graph.AppView):126:129 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.graph.AppServices$Builder):123:123 -> a
+    2:2:com.android.tools.r8.graph.AppServices build():133:133 -> a
+    3:5:void readServices(com.android.tools.r8.DataResourceProvider):141:143 -> a
+    3:5:com.android.tools.r8.graph.AppServices build():134 -> a
+    6:6:com.android.tools.r8.graph.AppServices build():136:136 -> a
+    1:1:java.util.Map access$400(com.android.tools.r8.graph.AppServices$Builder):123:123 -> b
+com.android.tools.r8.graph.AppServices$Builder$DataResourceProviderVisitor -> com.android.tools.r8.graph.f$b$a:
+    com.android.tools.r8.graph.AppServices$Builder this$0 -> a
+    1:1:void <init>(com.android.tools.r8.graph.AppServices$Builder):147:147 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.AppServices$Builder,com.android.tools.r8.graph.AppServices$1):147:147 -> <init>
+    1:1:java.util.List lambda$visit$0(com.android.tools.r8.graph.DexType):166:166 -> a
+    2:27:void readServiceImplementationsForService(java.lang.String,com.android.tools.r8.origin.Origin,java.util.List):179:204 -> a
+    28:28:boolean lambda$readServiceImplementationsForService$1(java.lang.String):182:182 -> a
+    29:37:boolean lambda$readServiceImplementationsForService$2(com.android.tools.r8.origin.Origin,java.util.List,com.android.tools.r8.graph.DexType):188:196 -> a
+    38:47:boolean lambda$readServiceImplementationsForService$2(com.android.tools.r8.origin.Origin,java.util.List,com.android.tools.r8.graph.DexType):193:202 -> a
+    1:2:java.lang.String prefixUntilCommentChar(java.lang.String):209:210 -> b
+    1:12:void visit(com.android.tools.r8.DataEntryResource):157:168 -> visit
+    13:18:void visit(com.android.tools.r8.DataEntryResource):167:172 -> visit
+com.android.tools.r8.graph.AppView -> com.android.tools.r8.graph.g:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
+    boolean allCodeProcessed -> n
+    java.util.Map sourceDebugExtensions -> t
+    com.android.tools.r8.graph.AppView$WholeProgramOptimizations wholeProgramOptimizations -> d
+    com.android.tools.r8.ir.analysis.proto.ProtoShrinker protoShrinker -> m
+    boolean $assertionsDisabled -> u
+    com.android.tools.r8.utils.InternalOptions options -> f
+    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> g
+    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator callSiteOptimizationInfoPropagator -> k
+    com.android.tools.r8.graph.classmerging.VerticallyMergedClasses verticallyMergedClasses -> s
+    com.android.tools.r8.ir.desugar.PrefixRewritingMapper rewritePrefix -> j
+    com.android.tools.r8.graph.AppServices appServices -> b
+    com.android.tools.r8.graph.GraphLense graphLense -> e
+    java.util.function.Predicate classesEscapingIntoLibrary -> o
+    java.util.Set unneededVisibilityBridgeMethods -> q
+    com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods initializedClassesInInstanceMethods -> p
+    com.android.tools.r8.graph.classmerging.HorizontallyMergedLambdaClasses horizontallyMergedLambdaClasses -> r
+    com.android.tools.r8.graph.AppInfo appInfo -> a
+    com.android.tools.r8.ir.optimize.library.LibraryMethodOptimizer libraryMethodOptimizer -> l
+    com.android.tools.r8.ir.analysis.value.AbstractValueFactory abstractValueFactory -> h
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoFactory instanceFieldInitializationInfoFactory -> i
+    1:1:void <clinit>():34:34 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):85:85 -> <init>
+    2:59:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):48:105 -> <init>
+    1:1:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):110:110 -> a
+    2:2:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty():25:25 -> a
+    2:2:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):77 -> a
+    2:2:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):110 -> a
+    3:3:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):78:78 -> a
+    3:3:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):110 -> a
+    4:4:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):72:72 -> a
+    4:4:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):110 -> a
+    5:5:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):115:115 -> a
+    6:6:com.android.tools.r8.ir.analysis.value.AbstractValueFactory abstractValueFactory():128:128 -> a
+    7:11:com.android.tools.r8.graph.AppView setAppInfo(com.android.tools.r8.graph.AppInfo):140:144 -> a
+    12:12:void setAppServices(com.android.tools.r8.graph.AppServices):168:168 -> a
+    13:13:void setClassesEscapingIntoLibrary(java.util.function.Predicate):177:177 -> a
+    14:14:void setSourceDebugExtensionForType(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexValue$DexValueString):181:181 -> a
+    15:15:com.android.tools.r8.graph.DexValue$DexValueString getSourceDebugExtensionForType(com.android.tools.r8.graph.DexClass):185:185 -> a
+    16:16:com.android.tools.r8.graph.DexEncodedMethod definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    17:17:com.android.tools.r8.graph.DexProgramClass definitionForProgramType(com.android.tools.r8.graph.DexType):210:210 -> a
+    18:19:void withGeneratedExtensionRegistryShrinker(java.util.function.Consumer):250:251 -> a
+    20:21:java.lang.Object withGeneratedExtensionRegistryShrinker(java.util.function.Function,java.lang.Object):257:258 -> a
+    22:23:boolean setGraphLense(com.android.tools.r8.graph.GraphLense):298:299 -> a
+    24:24:void setInitializedClassesInInstanceMethods(com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods):307:307 -> a
+    25:26:void setRootSet(com.android.tools.r8.shaking.RootSetBuilder$RootSet):327:328 -> a
+    27:27:void setUnneededVisibilityBridgeMethods(java.util.Set):336:336 -> a
+    28:28:void setHorizontallyMergedLambdaClasses(com.android.tools.r8.graph.classmerging.HorizontallyMergedLambdaClasses):358:358 -> a
+    29:29:void setVerticallyMergedClasses(com.android.tools.r8.graph.classmerging.VerticallyMergedClasses):368:368 -> a
+    30:31:com.android.tools.r8.utils.OptionalBool isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):392:393 -> a
+    32:32:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> a
+    32:32:com.android.tools.r8.utils.OptionalBool isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):394 -> a
+    1:1:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):119:119 -> b
+    2:2:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty():25:25 -> b
+    2:2:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):77 -> b
+    2:2:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):119 -> b
+    3:3:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):78:78 -> b
+    3:3:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):119 -> b
+    4:4:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):72:72 -> b
+    4:4:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):119 -> b
+    5:5:com.android.tools.r8.graph.AppView createForL8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):124:124 -> b
+    6:7:boolean isClassEscapingIntoLibrary(com.android.tools.r8.graph.DexType):172:173 -> b
+    8:9:void withGeneratedMessageLiteBuilderShrinker(java.util.function.Consumer):271:272 -> b
+    10:11:java.lang.Object withGeneratedMessageLiteBuilderShrinker(java.util.function.Function,java.lang.Object):286:287 -> b
+    12:17:com.android.tools.r8.graph.classmerging.MergedClassesCollection allMergedClasses():340:345 -> b
+    1:1:com.android.tools.r8.graph.AppInfo appInfo():136:136 -> c
+    2:5:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):214:217 -> c
+    6:6:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    6:6:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):218 -> c
+    7:7:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> c
+    7:7:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):220 -> c
+    8:8:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):222:222 -> c
+    9:9:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> c
+    9:9:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):224 -> c
+    10:11:void withGeneratedMessageLiteShrinker(java.util.function.Consumer):264:265 -> c
+    12:13:java.lang.Object withGeneratedMessageLiteShrinker(java.util.function.Function,java.lang.Object):278:279 -> c
+    1:1:com.android.tools.r8.graph.AppServices appServices():164:164 -> d
+    2:3:java.lang.Object withInitializedClassesInInstanceMethods(java.util.function.Function,java.lang.Object):312:313 -> d
+    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):205:205 -> definitionFor
+    1:1:com.android.tools.r8.graph.DexItemFactory dexItemFactory():229:229 -> dexItemFactory
+    1:1:com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator callSiteOptimizationInfoPropagator():237:237 -> e
+    1:1:com.android.tools.r8.graph.GraphLense clearCodeRewritings():160:160 -> f
+    1:1:boolean enableWholeProgramOptimizations():233:233 -> g
+    1:1:com.android.tools.r8.graph.GraphLense graphLense():293:293 -> h
+    1:1:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoFactory instanceFieldInitializationInfoFactory():132:132 -> i
+    1:1:boolean isAllCodeProcessed():152:152 -> j
+    1:1:com.android.tools.r8.ir.optimize.library.LibraryMethodOptimizer libraryMethodOptimizer():241:241 -> k
+    1:1:com.android.tools.r8.utils.InternalOptions options():319:319 -> l
+    1:1:com.android.tools.r8.ir.analysis.proto.ProtoShrinker protoShrinker():245:245 -> m
+    1:1:com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet():323:323 -> n
+    1:1:void setAllCodeProcessed():156:156 -> o
+    1:1:java.util.Set unneededVisibilityBridgeMethods():332:332 -> p
+    1:1:com.android.tools.r8.graph.classmerging.VerticallyMergedClasses verticallyMergedClasses():364:364 -> q
+    1:1:com.android.tools.r8.graph.AppView withClassHierarchy():373:373 -> r
+    com.android.tools.r8.graph.AppView withLiveness() -> s
+    1:1:com.android.tools.r8.graph.AppView withSubtyping():380:380 -> t
+com.android.tools.r8.graph.AppView$WholeProgramOptimizations -> com.android.tools.r8.graph.g$a:
+    com.android.tools.r8.graph.AppView$WholeProgramOptimizations ON -> a
+    com.android.tools.r8.graph.AppView$WholeProgramOptimizations OFF -> b
+    1:2:void <clinit>():37:38 -> <clinit>
+    1:1:void <init>(java.lang.String,int):36:36 -> <init>
+com.android.tools.r8.graph.AppliedGraphLens -> com.android.tools.r8.graph.h:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.com.google.common.collect.BiMap originalTypeNames -> b
+    com.android.tools.r8.com.google.common.collect.BiMap originalFieldSignatures -> c
+    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> d
+    boolean $assertionsDisabled -> f
+    java.util.Map originalMethodSignaturesForBridges -> e
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,java.lang.Iterable):31:31 -> <init>
+    2:50:void <init>(com.android.tools.r8.graph.AppView,java.lang.Iterable):24:72 -> <init>
+    1:1:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):87:87 -> getOriginalFieldSignature
+    1:4:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):92:95 -> getOriginalMethodSignature
+    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):82:82 -> getOriginalType
+    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):100:100 -> getRenamedFieldSignature
+    1:1:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):105:105 -> getRenamedMethodSignature
+    1:1:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):120:120 -> lookupMethod
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):125:125 -> lookupPrototypeChanges
+    1:5:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):110:114 -> lookupType
+com.android.tools.r8.graph.ArgumentUse -> com.android.tools.r8.graph.i:
+    1:1:void <init>():7:7 -> <init>
+    boolean register(int) -> a
+com.android.tools.r8.graph.AssemblyWriter -> com.android.tools.r8.graph.j:
+    com.android.tools.r8.utils.Timing timing -> h
+    boolean writeAnnotations -> e
+    boolean writeIR -> f
+    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> g
+    boolean writeAllClassInfo -> c
+    boolean writeFields -> d
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,boolean,boolean):28:28 -> <init>
+    2:20:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,boolean,boolean):24:42 -> <init>
+    java.lang.String getFileEnding() -> a
+    1:8:void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream):85:92 -> a
+    9:21:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):103:115 -> a
+    22:23:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):124:125 -> a
+    22:23:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):116 -> a
+    24:24:void com.android.tools.r8.ir.conversion.IRConverter.<init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):378:378 -> a
+    24:24:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):125 -> a
+    24:24:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):116 -> a
+    25:26:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):128:129 -> a
+    25:26:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):116 -> a
+    27:31:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):126:130 -> a
+    27:31:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):116 -> a
+    32:32:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):118:118 -> a
+    33:42:void writeAnnotations(com.android.tools.r8.graph.DexAnnotationSet,java.io.PrintStream):134:143 -> a
+    void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> b
+    1:18:void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):54:71 -> c
+    1:1:void writeFieldsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):98:98 -> d
+    1:4:void writeFieldsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):76:79 -> e
+com.android.tools.r8.graph.BottomUpClassHierarchyTraversal -> com.android.tools.r8.graph.k:
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):12:12 -> <init>
+    1:1:void visit(java.lang.Iterable,java.util.function.Consumer):7:7 -> a
+    2:2:com.android.tools.r8.graph.BottomUpClassHierarchyTraversal forAllClasses(com.android.tools.r8.graph.AppView):21:21 -> a
+    3:15:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):43:55 -> a
+    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    16:16:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):55 -> a
+    17:18:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):57:58 -> a
+    1:1:com.android.tools.r8.graph.BottomUpClassHierarchyTraversal forProgramClasses(com.android.tools.r8.graph.AppView):30:30 -> b
+com.android.tools.r8.graph.CachedHashValueDexItem -> com.android.tools.r8.graph.l:
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:5:void <init>():9:13 -> <init>
+    1:1:boolean equals(java.lang.Object):42:42 -> equals
+    1:1:void flushCachedValues():37:37 -> flushCachedValues
+    1:10:int hashCode():21:30 -> hashCode
+com.android.tools.r8.graph.CfCode -> com.android.tools.r8.graph.m:
+    java.util.List localVariables -> f
+    java.util.List tryCatchRanges -> e
+    java.util.List instructions -> d
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.graph.DexType originalHolder -> a
+    int maxStack -> b
+    int maxLocals -> c
+    1:1:void <clinit>():43:43 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.graph.DexType,int,int,java.util.List,java.util.List,java.util.List):109:115 -> <init>
+    1:1:java.util.List getInstructions():139:139 -> a
+    2:2:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):204:204 -> a
+    3:12:boolean shouldAddParameterNames(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):183:192 -> a
+    3:12:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):206 -> a
+    13:13:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):207:207 -> a
+    14:14:void com.android.tools.r8.cf.code.CfLabel.write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):45:45 -> a
+    14:14:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):208 -> a
+    15:16:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):210:211 -> a
+    17:17:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    17:17:boolean com.android.tools.r8.utils.InternalOptions.shouldKeepStackMapTable():338 -> a
+    17:17:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):213 -> a
+    18:18:boolean com.android.tools.r8.utils.InternalOptions.shouldKeepStackMapTable():339:339 -> a
+    18:18:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):213 -> a
+    19:35:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):216:232 -> a
+    36:49:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):226:239 -> a
+    50:56:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):238:244 -> a
+    57:57:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):243:243 -> a
+    58:64:void writeLocalVariableEntry(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,int):256:256 -> a
+    65:67:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):315:317 -> a
+    68:68:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):316:316 -> a
+    69:71:com.android.tools.r8.ir.code.IRCode internalBuildWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):339:339 -> a
+    69:71:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):325 -> a
+    80:82:com.android.tools.r8.ir.code.IRCode internalBuildWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):348:350 -> a
+    80:82:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):325 -> a
+    83:83:com.android.tools.r8.ir.code.IRCode internalBuildWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):349:349 -> a
+    83:83:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):325 -> a
+    84:93:com.android.tools.r8.ir.code.IRCode internalBuild(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):369:378 -> a
+    94:105:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):494:505 -> a
+    106:106:boolean com.android.tools.r8.graph.MethodAccessFlags.isSynchronized():124:124 -> a
+    106:106:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):505 -> a
+    107:107:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():269:269 -> a
+    107:107:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):506 -> a
+    108:117:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):507:516 -> a
+    118:126:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):514:522 -> a
+    127:127:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMoveException():277:277 -> a
+    127:127:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):525 -> a
+    128:128:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):525:525 -> a
+    129:153:void addFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):531:555 -> a
+    154:155:void com.android.tools.r8.graph.CfCode$LocalVariableInfo.<init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel):59:60 -> a
+    154:155:void addFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):555 -> a
+    156:156:void addFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):552:552 -> a
+    1:1:java.util.List getLocalVariables():143:143 -> b
+    2:3:int countNonStackOperations(int):158:159 -> b
+    1:1:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):289:289 -> buildIR
+    1:3:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):301:303 -> buildInliningIR
+    1:1:int getMaxLocals():127:127 -> c
+    1:41:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):397:437 -> collectParameterInfo
+    42:42:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):436:436 -> collectParameterInfo
+    43:43:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):408:408 -> collectParameterInfo
+    1:1:boolean computeEquals(java.lang.Object):272:272 -> computeEquals
+    1:1:int computeHashCode():267:267 -> computeHashCode
+    1:1:int getMaxStack():123:123 -> d
+    2:2:void setMaxLocals(int):131:131 -> d
+    1:1:com.android.tools.r8.graph.DexType getOriginalHolder():119:119 -> e
+    1:1:int estimatedSizeForInlining():148:148 -> estimatedSizeForInlining
+    1:1:boolean estimatedSizeForInliningAtMost(int):153:153 -> estimatedSizeForInliningAtMost
+    1:1:java.util.List getTryCatchRanges():135:135 -> f
+    1:2:boolean isEmptyVoidMethod():277:278 -> isEmptyVoidMethod
+    1:29:void registerArgumentReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):445:473 -> registerArgumentReferences
+    1:6:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):383:388 -> registerCodeReferences
+    1:1:java.lang.String toString():480:480 -> toString
+    2:2:void com.android.tools.r8.cf.CfPrinter.<init>(com.android.tools.r8.graph.CfCode):120:120 -> toString
+    2:2:java.lang.String toString():480 -> toString
+    3:3:java.lang.String toString():480:480 -> toString
+    4:4:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):485:485 -> toString
+com.android.tools.r8.graph.CfCode$LocalVariableInfo -> com.android.tools.r8.graph.m$a:
+    com.android.tools.r8.graph.DebugLocalInfo local -> b
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.cf.code.CfLabel start -> c
+    com.android.tools.r8.cf.code.CfLabel end -> d
+    int index -> a
+    1:1:void <clinit>():45:45 -> <clinit>
+    1:4:void <init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel):52:55 -> <init>
+    1:1:com.android.tools.r8.graph.DebugLocalInfo access$000(com.android.tools.r8.graph.CfCode$LocalVariableInfo):45:45 -> a
+    2:4:void setEnd(com.android.tools.r8.cf.code.CfLabel):64:66 -> a
+    5:5:com.android.tools.r8.cf.code.CfLabel getEnd():82:82 -> a
+    1:1:com.android.tools.r8.cf.code.CfLabel access$100(com.android.tools.r8.graph.CfCode$LocalVariableInfo):45:45 -> b
+    2:2:int getIndex():70:70 -> b
+    1:1:com.android.tools.r8.cf.code.CfLabel access$200(com.android.tools.r8.graph.CfCode$LocalVariableInfo):45:45 -> c
+    2:2:com.android.tools.r8.graph.DebugLocalInfo getLocal():74:74 -> c
+    1:1:int access$300(com.android.tools.r8.graph.CfCode$LocalVariableInfo):45:45 -> d
+    2:2:com.android.tools.r8.cf.code.CfLabel getStart():78:78 -> d
+    1:1:java.lang.String toString():87:87 -> toString
+com.android.tools.r8.graph.ClassAccessFlags -> com.android.tools.r8.graph.n:
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(int,int):61:61 -> <init>
+    1:1:com.android.tools.r8.graph.ClassAccessFlags copy():81:81 -> D
+    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> E
+    1:1:int getAsCfAccessFlags():91 -> E
+    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> F
+    1:1:int getAsDexAccessFlags():98 -> F
+    2:2:boolean isInterface():155:155 -> F
+    2:2:int getAsDexAccessFlags():99 -> F
+    1:1:boolean isAbstract():167:167 -> G
+    1:1:boolean isAnnotation():179:179 -> H
+    1:1:boolean isEnum():191:191 -> I
+    1:1:boolean isInterface():155:155 -> J
+    1:1:boolean isSuper():199:199 -> K
+    1:1:void setAbstract():171:171 -> L
+    1:1:void unsetAbstract():175:175 -> M
+    1:1:void unsetAnnotation():187:187 -> N
+    1:1:void unsetInterface():163:163 -> O
+    1:1:boolean isInterface():155:155 -> a
+    1:1:boolean areValid(int,boolean):132 -> a
+    2:2:boolean isSuper():199:199 -> a
+    2:2:boolean areValid(int,boolean):134 -> a
+    3:7:boolean areValid(int,boolean):140:144 -> a
+    8:8:boolean isEnum():191:191 -> a
+    8:8:boolean areValid(int,boolean):144 -> a
+    9:9:boolean areValid(int,boolean):146:146 -> a
+    1:8:java.util.List getNames():34:41 -> c
+    1:8:java.util.List getPredicates():46:53 -> e
+    1:1:com.android.tools.r8.graph.ClassAccessFlags fromCfAccessFlags(int):76:76 -> f
+    2:2:void <init>(int):57:57 -> f
+    2:2:com.android.tools.r8.graph.ClassAccessFlags fromCfAccessFlags(int):76 -> f
+    1:1:com.android.tools.r8.graph.ClassAccessFlags fromDexAccessFlags(int):72:72 -> g
+    2:2:void <init>(int):57:57 -> g
+    2:2:com.android.tools.r8.graph.ClassAccessFlags fromDexAccessFlags(int):72 -> g
+    1:3:com.android.tools.r8.graph.ClassAccessFlags fromSharedAccessFlags(int):65:67 -> h
+com.android.tools.r8.graph.ClassHierarchyTraversal -> com.android.tools.r8.graph.p:
+    java.util.Deque worklist -> d
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set visited -> c
+    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope scope -> b
+    boolean excludeInterfaces -> e
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):52:52 -> <init>
+    2:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):47:54 -> <init>
+    void addDependentsToWorklist(com.android.tools.r8.graph.DexClass) -> a
+    1:22:void visit(java.lang.Iterable,java.util.function.Consumer):65:86 -> a
+    23:36:void visit(java.lang.Iterable,java.util.function.Consumer):69:82 -> a
+com.android.tools.r8.graph.ClassHierarchyTraversal$Scope -> com.android.tools.r8.graph.o:
+    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope ALL_CLASSES -> a
+    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope ONLY_LIBRARY_CLASSES -> b
+    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope ONLY_LIBRARY_AND_CLASSPATH_CLASSES -> c
+    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope ONLY_PROGRAM_CLASSES -> d
+    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope[] $VALUES -> e
+    1:4:void <clinit>():19:22 -> <clinit>
+    5:5:void <clinit>():18:18 -> <clinit>
+    1:1:void <init>(java.lang.String,int):18:18 -> <init>
+com.android.tools.r8.graph.ClassKind -> com.android.tools.r8.graph.q:
+    com.android.tools.r8.graph.ClassKind CLASSPATH -> d
+    com.android.tools.r8.graph.ClassKind LIBRARY -> e
+    java.util.function.Predicate check -> b
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.graph.ClassKind$Factory factory -> a
+    com.android.tools.r8.graph.ClassKind PROGRAM -> c
+    1:42:void <clinit>():15:56 -> <clinit>
+    1:3:void <init>(java.lang.String,int,com.android.tools.r8.graph.ClassKind$Factory,java.util.function.Predicate):121:123 -> <init>
+    1:1:com.android.tools.r8.graph.DexClass create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):145:145 -> a
+    2:2:boolean isOfKind(com.android.tools.r8.graph.DexClass):167:167 -> a
+    3:3:java.util.function.Consumer bridgeConsumer(java.util.function.Consumer):171:171 -> a
+    4:4:void lambda$bridgeConsumer$2(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):172:172 -> a
+    5:5:boolean isOfKind(com.android.tools.r8.graph.DexClass):167:167 -> a
+    5:5:void lambda$bridgeConsumer$2(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):172 -> a
+    6:8:void lambda$bridgeConsumer$2(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):172:174 -> a
+    1:1:com.android.tools.r8.graph.DexClass lambda$static$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):36:36 -> b
+    1:1:com.android.tools.r8.graph.DexClass lambda$static$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):75:75 -> c
+com.android.tools.r8.graph.ClassKind$Factory -> com.android.tools.r8.graph.q$a:
+    com.android.tools.r8.graph.DexClass create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier) -> a
+com.android.tools.r8.graph.Code -> com.android.tools.r8.graph.r:
+    1:1:void <init>():17:17 -> <init>
+    1:1:com.android.tools.r8.graph.CfCode asCfCode():71:71 -> asCfCode
+    1:1:com.android.tools.r8.graph.DexCode asDexCode():79:79 -> asDexCode
+    1:1:com.android.tools.r8.graph.LazyCfCode asLazyCfCode():75:75 -> asLazyCfCode
+    1:1:com.android.tools.r8.ir.optimize.Outliner$OutlineCode asOutlineCode():83:83 -> asOutlineCode
+    1:2:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):28:29 -> buildInliningIR
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):89:89 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):94:94 -> collectMixedSectionItems
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):40:40 -> collectParameterInfo
+    1:1:boolean estimatedSizeForInliningAtMost(int):67:67 -> estimatedSizeForInliningAtMost
+    1:1:void registerArgumentReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):35:35 -> registerArgumentReferences
+com.android.tools.r8.graph.DebugLocalInfo -> com.android.tools.r8.graph.s:
+    com.android.tools.r8.graph.DexString name -> a
+    com.android.tools.r8.graph.DexString signature -> c
+    com.android.tools.r8.graph.DexType type -> b
+    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel PRINT_LEVEL -> d
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):27:30 -> <init>
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap endingLocals(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):55:60 -> a
+    7:17:java.lang.String toString(com.android.tools.r8.graph.DebugLocalInfo$PrintLevel):107:117 -> a
+    18:18:java.lang.String toString(com.android.tools.r8.graph.DebugLocalInfo$PrintLevel):111:111 -> a
+    1:5:boolean localsInfoMapsEqual(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):41:45 -> b
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap startingLocals(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):69:74 -> c
+    1:5:boolean equals(java.lang.Object):85:89 -> equals
+    1:3:int hashCode():94:96 -> hashCode
+    1:1:java.lang.String toString():103:103 -> toString
+com.android.tools.r8.graph.DebugLocalInfo$PrintLevel -> com.android.tools.r8.graph.s$a:
+    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel[] $VALUES -> d
+    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel NAME -> b
+    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel NONE -> a
+    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel FULL -> c
+    1:3:void <clinit>():16:18 -> <clinit>
+    4:4:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(java.lang.String,int):15:15 -> <init>
+com.android.tools.r8.graph.DefaultUseRegistry -> com.android.tools.r8.graph.t:
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):10:10 -> <init>
+com.android.tools.r8.graph.DexAnnotation -> com.android.tools.r8.graph.u:
+    com.android.tools.r8.graph.DexEncodedAnnotation annotation -> b
+    com.android.tools.r8.graph.DexAnnotation[] EMPTY_ARRAY -> c
+    boolean $assertionsDisabled -> d
+    int visibility -> a
+    1:2:void <clinit>():26:27 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.graph.DexEncodedAnnotation):34:36 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getAnnotationType():40:40 -> a
+    2:13:boolean retainCompileTimeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.InternalOptions):77:88 -> a
+    14:14:com.android.tools.r8.graph.DexAnnotation createEnclosingClassAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):96:96 -> a
+    15:17:com.android.tools.r8.graph.DexType getEnclosingClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):102:104 -> a
+    18:18:com.android.tools.r8.graph.DexAnnotation createEnclosingMethodAnnotation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):109:109 -> a
+    19:23:com.android.tools.r8.graph.DexAnnotation createMemberClassesAnnotation(java.util.List,com.android.tools.r8.graph.DexItemFactory):175:179 -> a
+    24:28:com.android.tools.r8.graph.DexAnnotation createAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):223:223 -> a
+    29:29:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):231:231 -> a
+    30:57:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):302:329 -> a
+    30:57:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
+    58:58:com.android.tools.r8.graph.DexValue toDexValue(java.lang.String,com.android.tools.r8.graph.DexItemFactory):337:337 -> a
+    58:58:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):329 -> a
+    58:58:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
+    59:63:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):329:333 -> a
+    59:63:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
+    64:64:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):231:231 -> a
+    65:70:java.lang.String getSignature(com.android.tools.r8.graph.DexAnnotation):236:241 -> a
+    71:71:com.android.tools.r8.graph.DexAnnotation createThrowsAnnotation(com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexItemFactory):246:246 -> a
+    72:74:com.android.tools.r8.graph.DexAnnotation createSystemValueAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexValue):252:254 -> a
+    75:79:com.android.tools.r8.graph.DexValue getSystemValueAnnotationValue(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):259:263 -> a
+    80:98:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):343:361 -> a
+    99:99:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):359:359 -> a
+    100:100:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    100:100:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):359 -> a
+    101:101:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):359:359 -> a
+    102:102:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):353:353 -> a
+    103:103:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    103:103:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):353 -> a
+    104:104:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):353:353 -> a
+    105:105:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):350:350 -> a
+    106:106:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    106:106:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):350 -> a
+    107:107:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):350:350 -> a
+    108:108:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):346:346 -> a
+    109:109:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    109:109:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):346 -> a
+    110:129:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):346:365 -> a
+    130:133:java.lang.String getInvalidSynthesizedClassMapMessage(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):371:374 -> a
+    134:140:com.android.tools.r8.graph.DexAnnotation createAnnotationSynthesizedClassMap(java.util.TreeSet,com.android.tools.r8.graph.DexItemFactory):380:386 -> a
+    141:148:com.android.tools.r8.graph.DexAnnotation rewrite(java.util.function.Function):398:405 -> a
+    1:4:com.android.tools.r8.graph.DexMethod getEnclosingMethodFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):115:118 -> b
+    5:5:com.android.tools.r8.graph.DexValue$DexValueType[] lambda$createAnnotationSynthesizedClassMap$0(int):382:382 -> b
+    1:3:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):157:159 -> c
+    4:4:void com.android.tools.r8.utils.Pair.<init>():20:20 -> c
+    4:4:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):159 -> c
+    5:12:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):160:167 -> c
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):73:73 -> collectMixedSectionItems
+    1:8:java.util.List getMemberClassesFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):185:192 -> d
+    1:1:boolean isEnclosingClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):123:123 -> e
+    1:3:boolean equals(java.lang.Object):53:55 -> equals
+    1:1:boolean isEnclosingMethodAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):128:128 -> f
+    1:1:boolean isInnerClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):132:132 -> g
+    1:1:boolean isMemberClassesAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):137:137 -> h
+    1:1:int hashCode():45:45 -> hashCode
+    1:1:boolean isSignatureAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):273:273 -> i
+    1:1:java.lang.String toString():62:62 -> toString
+com.android.tools.r8.graph.DexAnnotationDirectory -> com.android.tools.r8.graph.v:
+    java.util.List methodAnnotations -> b
+    java.util.List fieldAnnotations -> d
+    com.android.tools.r8.graph.DexProgramClass clazz -> a
+    java.util.List parameterAnnotations -> c
+    boolean classHasOnlyInternalizableAnnotations -> e
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:27:void <init>(com.android.tools.r8.graph.DexProgramClass):22:48 -> <init>
+    1:1:com.android.tools.r8.graph.DexAnnotationSet getClazzAnnotations():54:54 -> a
+    2:2:boolean isSorted(java.util.List):112:112 -> a
+    3:5:boolean isSorted(java.util.List,java.util.function.Function):118:120 -> a
+    3:5:boolean isSorted(java.util.List):112 -> a
+    1:1:java.util.List getFieldAnnotations():66:66 -> b
+    1:1:java.util.List getMethodAnnotations():58:58 -> c
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):102:102 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):107:107 -> collectMixedSectionItems
+    1:1:java.util.List getParameterAnnotations():62:62 -> d
+    1:11:boolean equals(java.lang.Object):78:88 -> equals
+    1:4:int hashCode():93:96 -> hashCode
+com.android.tools.r8.graph.DexAnnotationElement -> com.android.tools.r8.graph.w:
+    com.android.tools.r8.graph.DexAnnotationElement[] EMPTY_ARRAY -> c
+    com.android.tools.r8.graph.DexString name -> a
+    com.android.tools.r8.graph.DexValue value -> b
+    boolean $assertionsDisabled -> d
+    1:2:void <clinit>():9:10 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexValue):15:17 -> <init>
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45:45 -> collectIndexedItems
+    2:247:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    2:247:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45 -> collectIndexedItems
+    248:248:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):46:46 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):52:52 -> collectMixedSectionItems
+    1:3:boolean equals(java.lang.Object):30:32 -> equals
+    1:1:int hashCode():22:22 -> hashCode
+    1:1:java.lang.String toString():39:39 -> toString
+com.android.tools.r8.graph.DexAnnotationSet -> com.android.tools.r8.graph.x:
+    com.android.tools.r8.graph.DexAnnotationSet THE_EMPTY_ANNOTATIONS_SET -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.DexAnnotationSet[] EMPTY_ARRAY -> c
+    com.android.tools.r8.graph.DexAnnotation[] annotations -> a
+    int sorted -> b
+    1:6:void <clinit>():19:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexAnnotation[]):30:30 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.DexAnnotation[]):28:31 -> <init>
+    1:1:com.android.tools.r8.graph.DexType findDuplicateEntryType(com.android.tools.r8.graph.DexAnnotation[]):35:35 -> a
+    2:2:com.android.tools.r8.graph.DexAnnotationSet empty():49:49 -> a
+    3:4:void forEach(java.util.function.Consumer):53:54 -> a
+    5:5:com.android.tools.r8.graph.DexType lambda$sort$0(com.android.tools.r8.graph.DexAnnotation):101:101 -> a
+    6:7:com.android.tools.r8.graph.DexAnnotation getFirstMatching(com.android.tools.r8.graph.DexType):109:110 -> a
+    8:8:com.android.tools.r8.graph.DexAnnotationSet keepIf(java.util.function.Predicate):159:159 -> a
+    9:9:com.android.tools.r8.graph.DexAnnotation lambda$keepIf$1(java.util.function.Predicate,com.android.tools.r8.graph.DexAnnotation):159:159 -> a
+    10:20:com.android.tools.r8.graph.DexAnnotationSet rewrite(java.util.function.Function):163:173 -> a
+    1:4:com.android.tools.r8.graph.DexType findDuplicateEntryType(java.util.List):39:42 -> b
+    5:5:boolean isEmpty():93:93 -> b
+    1:1:int size():63:63 -> c
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):83:83 -> collectIndexedItems
+    1:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):88:89 -> collectMixedSectionItems
+    1:3:boolean computeEquals(java.lang.Object):73:75 -> computeEquals
+    1:1:int computeHashCode():68:68 -> computeHashCode
+    1:2:void sort():97:98 -> d
+    3:3:int sortedHashCode():134:134 -> d
+    3:3:void sort():98 -> d
+    4:11:void sort():98:105 -> d
+    1:1:java.lang.String toString():178:178 -> toString
+com.android.tools.r8.graph.DexApplication -> com.android.tools.r8.graph.y:
+    com.android.tools.r8.naming.ClassNameMapper proguardMap -> c
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> f
+    com.android.tools.r8.utils.Timing timing -> d
+    com.android.tools.r8.graph.DexString highestSortingString -> g
+    com.android.tools.r8.utils.InternalOptions options -> e
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.com.google.common.collect.ImmutableSet mainDexList -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableList dataResourceProviders -> a
+    1:1:void <clinit>():25:25 -> <clinit>
+    1:8:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):48:55 -> <init>
+    com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType) -> a
+    1:1:int lambda$classesWithDeterministicOrder$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):102:102 -> a
+    2:3:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):220:221 -> a
+    4:4:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):226:226 -> a
+    4:4:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):220 -> a
+    5:5:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):226:226 -> a
+    6:6:com.android.tools.r8.graph.DirectMappedDexApplication asDirect():230:230 -> a
+    com.android.tools.r8.graph.DexApplication$Builder builder() -> b
+    1:3:java.util.List classes():91:93 -> c
+    1:6:java.lang.Iterable classesWithDeterministicOrder():97:102 -> d
+    1:1:com.android.tools.r8.naming.ClassNameMapper getProguardMap():115:115 -> e
+    java.util.List programClasses() -> f
+    com.android.tools.r8.graph.DirectMappedDexApplication toDirect() -> g
+com.android.tools.r8.graph.DexApplication$Builder -> com.android.tools.r8.graph.y$a:
+    java.util.List dataResourceProviders -> b
+    java.util.List programClasses -> a
+    java.util.Set mainDexList -> h
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> d
+    com.android.tools.r8.utils.Timing timing -> f
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.utils.InternalOptions options -> c
+    com.android.tools.r8.naming.ClassNameMapper proguardMap -> e
+    com.android.tools.r8.graph.DexString highestSortingString -> g
+    java.util.Collection synthesizedClasses -> i
+    1:1:void <clinit>():118:118 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):139:139 -> <init>
+    2:19:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):126:143 -> <init>
+    20:20:void <init>(com.android.tools.r8.graph.DexApplication):148:148 -> <init>
+    21:52:void <init>(com.android.tools.r8.graph.DexApplication):126:157 -> <init>
+    com.android.tools.r8.graph.DexApplication build() -> a
+    1:3:com.android.tools.r8.graph.DexApplication$Builder setProguardMap(com.android.tools.r8.naming.ClassNameMapper):161:163 -> a
+    4:7:com.android.tools.r8.graph.DexApplication$Builder replaceProgramClasses(java.util.List):167:170 -> a
+    8:9:com.android.tools.r8.graph.DexApplication$Builder addDataResourceProvider(com.android.tools.r8.DataResourceProvider):174:175 -> a
+    10:11:com.android.tools.r8.graph.DexApplication$Builder setHighestSortingString(com.android.tools.r8.graph.DexString):179:180 -> a
+    12:13:com.android.tools.r8.graph.DexApplication$Builder addProgramClass(com.android.tools.r8.graph.DexProgramClass):184:185 -> a
+    14:14:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):190:190 -> a
+    15:15:boolean com.android.tools.r8.graph.DexProgramClass.isProgramClass():0:0 -> a
+    15:15:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):190 -> a
+    16:21:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):191:196 -> a
+    22:22:com.android.tools.r8.graph.DexApplication$Builder addToMainDexList(java.util.Collection):212:212 -> a
+    1:1:java.util.Set getMainDexList():208:208 -> b
+    1:1:java.util.Collection getProgramClasses():200:200 -> c
+    1:1:java.util.Collection getSynthesizedClasses():204:204 -> d
+    com.android.tools.r8.graph.DexApplication$Builder self() -> e
+com.android.tools.r8.graph.DexApplication$ReorderBox -> com.android.tools.r8.graph.y$b:
+    java.util.List classes -> a
+    1:2:void <init>(java.util.List):70:71 -> <init>
+    1:1:java.util.List getClasses():84:84 -> a
+    1:3:boolean reorderClasses():76:78 -> b
+com.android.tools.r8.graph.DexByteCodeWriter -> com.android.tools.r8.graph.z:
+    com.android.tools.r8.graph.DexApplication application -> a
+    com.android.tools.r8.utils.InternalOptions options -> b
+    1:3:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):25:27 -> <init>
+    java.lang.String getFileEnding() -> a
+    java.io.PrintStream lambda$write$1(java.io.PrintStream,com.android.tools.r8.graph.DexClass) -> a
+    void lambda$write$2(java.io.PrintStream) -> a
+    void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream) -> a
+    void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream) -> a
+    1:1:com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider oneFilePerClass(java.nio.file.Path):38:38 -> a
+    2:4:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):39:39 -> a
+    6:8:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):41:41 -> a
+    9:11:void ensureParentExists(java.nio.file.Path):31:33 -> a
+    9:11:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):43 -> a
+    12:12:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):44:44 -> a
+    13:20:void write(com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider,java.util.function.Consumer):66:73 -> a
+    21:23:boolean anyMethodMatches(com.android.tools.r8.graph.DexClass):80:82 -> a
+    24:31:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):86:93 -> a
+    32:32:void lambda$writeClass$3(java.io.PrintStream,com.android.tools.r8.graph.DexEncodedField):88:88 -> a
+    33:33:void lambda$writeClass$4(java.io.PrintStream,com.android.tools.r8.graph.DexEncodedMethod):91:91 -> a
+    void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> b
+    void writeMethodsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> b
+    1:2:void write(java.nio.file.Path):49:50 -> b
+    3:5:void ensureParentExists(java.nio.file.Path):31:33 -> b
+    3:5:void write(java.nio.file.Path):52 -> b
+    6:9:void write(java.nio.file.Path):53:53 -> b
+    11:11:void write(java.nio.file.Path):55:55 -> b
+    12:12:void write(java.io.PrintStream):60:60 -> b
+    void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> c
+    void writeMethodsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> c
+    void writeFieldsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> d
+    void writeFieldsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> e
+com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider -> com.android.tools.r8.graph.z$a:
+    java.io.PrintStream get(com.android.tools.r8.graph.DexClass) -> a
+com.android.tools.r8.graph.DexCallSite -> com.android.tools.r8.graph.B:
+    com.android.tools.r8.graph.DexString methodName -> c
+    java.util.List bootstrapArgs -> f
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.graph.DexProto methodProto -> d
+    com.android.tools.r8.graph.DexEncodedArray encodedArray -> g
+    com.android.tools.r8.graph.DexMethod method -> h
+    int instructionOffset -> i
+    com.android.tools.r8.graph.DexMethodHandle bootstrapMethod -> e
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):43:43 -> <init>
+    2:22:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):32:52 -> <init>
+    1:12:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):68:79 -> a
+    13:15:com.android.tools.r8.graph.DexCallSite com.android.tools.r8.graph.JarApplicationReader.getCallSite(java.lang.String,java.lang.String,com.android.tools.r8.graph.DexMethodHandle,java.util.List):101:101 -> a
+    13:15:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):83 -> a
+    16:16:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):145:145 -> a
+    1:14:com.android.tools.r8.graph.DexEncodedArray getEncodedArray():289:302 -> c
+    1:10:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):120:129 -> collectIndexedItems
+    11:256:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    11:256:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):129 -> collectIndexedItems
+    257:260:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):130:133 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):140:140 -> collectMixedSectionItems
+    1:1:int compareTo(java.lang.Object):24:24 -> compareTo
+    2:8:int compareTo(com.android.tools.r8.graph.DexCallSite):160:166 -> compareTo
+    2:8:int compareTo(java.lang.Object):24 -> compareTo
+    1:1:int computeHashCode():91:91 -> computeHashCode
+    1:1:java.lang.String getHash():155:155 -> d
+    1:1:java.lang.String toSmaliString():151:151 -> toSmaliString
+    1:11:java.lang.String toString():104:114 -> toString
+com.android.tools.r8.graph.DexCallSite$1 -> com.android.tools.r8.graph.A:
+com.android.tools.r8.graph.DexCallSite$HashBuilder -> com.android.tools.r8.graph.B$a:
+    java.io.ByteArrayOutputStream bytes -> a
+    com.android.tools.r8.graph.DexCallSite this$0 -> c
+    java.io.ObjectOutputStream out -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():169:169 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexCallSite):169:169 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexCallSite$1):169:169 -> <init>
+    1:2:void write(com.android.tools.r8.graph.DexString):174:175 -> a
+    3:3:void write(com.android.tools.r8.graph.DexMethodHandle):183:183 -> a
+    4:4:boolean com.android.tools.r8.graph.DexMethodHandle.isFieldHandle():293:293 -> a
+    4:4:void write(com.android.tools.r8.graph.DexMethodHandle):184 -> a
+    5:5:void write(com.android.tools.r8.graph.DexMethodHandle):185:185 -> a
+    6:6:void write(com.android.tools.r8.graph.DexField):208:208 -> a
+    6:6:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
+    7:7:void write(com.android.tools.r8.graph.DexType):179:179 -> a
+    7:7:void write(com.android.tools.r8.graph.DexField):208 -> a
+    7:7:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
+    8:8:void write(com.android.tools.r8.graph.DexField):209:209 -> a
+    8:8:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
+    9:9:void write(com.android.tools.r8.graph.DexType):179:179 -> a
+    9:9:void write(com.android.tools.r8.graph.DexField):209 -> a
+    9:9:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
+    10:10:void write(com.android.tools.r8.graph.DexField):210:210 -> a
+    10:10:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
+    11:11:void write(com.android.tools.r8.graph.DexMethodHandle):187:187 -> a
+    12:12:void write(com.android.tools.r8.graph.DexMethod):202:202 -> a
+    12:12:void write(com.android.tools.r8.graph.DexMethodHandle):187 -> a
+    13:13:void write(com.android.tools.r8.graph.DexType):179:179 -> a
+    13:13:void write(com.android.tools.r8.graph.DexMethod):202 -> a
+    13:13:void write(com.android.tools.r8.graph.DexMethodHandle):187 -> a
+    14:15:void write(com.android.tools.r8.graph.DexMethod):203:204 -> a
+    14:15:void write(com.android.tools.r8.graph.DexMethodHandle):187 -> a
+    16:17:void write(com.android.tools.r8.graph.DexProto):192:193 -> a
+    18:18:void write(com.android.tools.r8.graph.DexType):179:179 -> a
+    18:18:void write(com.android.tools.r8.graph.DexProto):193 -> a
+    19:21:void write(com.android.tools.r8.graph.DexProto):194:196 -> a
+    22:22:void write(com.android.tools.r8.graph.DexType):179:179 -> a
+    22:22:void write(com.android.tools.r8.graph.DexProto):197 -> a
+    23:34:void write(java.util.List):214:225 -> a
+    35:35:void write(com.android.tools.r8.graph.DexType):179:179 -> a
+    35:35:void write(java.util.List):225 -> a
+    36:68:void write(java.util.List):229:261 -> a
+    69:85:java.lang.String build():267:283 -> a
+com.android.tools.r8.graph.DexClass -> com.android.tools.r8.graph.C:
+    java.util.List nestMembers -> r
+    com.android.tools.r8.graph.ClassAccessFlags accessFlags -> f
+    com.android.tools.r8.graph.DexEncodedField[] instanceFields -> l
+    java.util.List innerClasses -> p
+    com.android.tools.r8.graph.DexEncodedField[] staticFields -> k
+    java.util.Optional cachedClassInitializer -> c
+    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMethod -> o
+    boolean $assertionsDisabled -> s
+    com.android.tools.r8.utils.OptionalBool isResolvable -> j
+    com.android.tools.r8.graph.NestHostClassAttribute nestHost -> q
+    com.android.tools.r8.origin.Origin origin -> d
+    com.android.tools.r8.graph.DexString sourceFile -> i
+    com.android.tools.r8.graph.DexTypeList interfaces -> h
+    com.android.tools.r8.graph.DexType superType -> g
+    com.android.tools.r8.graph.DexEncodedMethod[] virtualMethods -> n
+    com.android.tools.r8.graph.DexEncodedMethod[] directMethods -> m
+    com.android.tools.r8.graph.DexType type -> e
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):89:89 -> <init>
+    2:79:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):40:117 -> <init>
+    80:80:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):107:107 -> <init>
+    1:1:java.util.List getInnerClasses():856:856 -> A
+    com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo() -> B
+    1:5:com.android.tools.r8.graph.DexType getNestHost():944:948 -> C
+    1:1:com.android.tools.r8.graph.NestHostClassAttribute getNestHostClassAttribute():954:954 -> D
+    1:1:java.util.List getNestMembersClassAttributes():958:958 -> E
+    1:1:com.android.tools.r8.graph.DexType getType():711:711 -> F
+    1:1:boolean hasClassInitializer():715:715 -> G
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getDefaultInitializer():733:733 -> H
+    1:1:boolean hasDefaultInitializer():719 -> H
+    1:1:boolean hasKotlinInfo():965:965 -> I
+    1:2:boolean hasStaticSynchronizedMethods():994:995 -> J
+    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isSynchronized():124:124 -> J
+    3:3:boolean hasStaticSynchronizedMethods():995 -> J
+    1:5:java.util.List instanceFields():452:456 -> K
+    1:4:boolean isAnonymousClass():916:919 -> L
+    boolean isClasspathClass() -> M
+    1:1:boolean isEnum():645:645 -> N
+    2:2:boolean com.android.tools.r8.graph.ClassAccessFlags.isEnum():191:191 -> N
+    2:2:boolean isEnum():645 -> N
+    1:1:boolean isInANest():923:923 -> O
+    1:1:boolean isInterface():641:641 -> P
+    2:2:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> P
+    2:2:boolean isInterface():641 -> P
+    boolean isLibraryClass() -> Q
+    1:3:boolean isLocalClass():903:905 -> R
+    1:3:boolean isMemberClass():909:911 -> S
+    1:1:boolean isNestHost():936:936 -> T
+    1:1:boolean isNestMember():940:940 -> U
+    boolean isNotProgramClass() -> V
+    1:1:java.lang.Iterable methods():137:137 -> W
+    1:5:java.util.List staticFields():394:398 -> X
+    1:4:boolean verifyNoDuplicateFields():519:522 -> Y
+    1:4:boolean verifyNoDuplicateMethods():299:302 -> Z
+    void addDependencies(com.android.tools.r8.dex.MixedSectionCollection) -> a
+    java.util.Iterator lambda$allImmediateSupertypes$3(java.util.Iterator) -> a
+    1:3:java.lang.Iterable fields(java.util.function.Predicate):127:129 -> a
+    4:4:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    4:4:java.lang.Iterable fields(java.util.function.Predicate):127 -> a
+    5:11:void appendDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):160:166 -> a
+    12:22:void appendDirectMethods(java.util.Collection):170:180 -> a
+    23:26:void setDirectMethod(int,com.android.tools.r8.graph.DexEncodedMethod):205:208 -> a
+    27:30:void setDirectMethods(com.android.tools.r8.graph.DexEncodedMethod[]):212:215 -> a
+    31:31:int lambda$allMethodsSorted$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):323:323 -> a
+    32:54:void virtualizeMethods(java.util.Set):344:366 -> a
+    55:59:void forEachField(java.util.function.Consumer):385:389 -> a
+    60:62:void setInstanceField(int,com.android.tools.r8.graph.DexEncodedField):490:492 -> a
+    63:65:void setInstanceFields(com.android.tools.r8.graph.DexEncodedField[]):496:498 -> a
+    66:67:boolean verifyCorrectnessOfFieldHolders(java.lang.Iterable):512:513 -> a
+    68:68:com.android.tools.r8.graph.DexEncodedField lookupInstanceField(com.android.tools.r8.graph.DexField):534:534 -> a
+    68:68:com.android.tools.r8.graph.DexEncodedField lookupField(com.android.tools.r8.graph.DexField):552 -> a
+    69:69:com.android.tools.r8.graph.DexEncodedField lookupStaticField(com.android.tools.r8.graph.DexField):529:529 -> a
+    69:69:com.android.tools.r8.graph.DexEncodedField lookupField(com.android.tools.r8.graph.DexField):553 -> a
+    70:70:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(com.android.tools.r8.graph.DexMethod):558:558 -> a
+    71:72:com.android.tools.r8.graph.DexEncodedMember lookupTarget(com.android.tools.r8.graph.DexEncodedMember[],com.android.tools.r8.graph.DexMember):616:617 -> a
+    73:75:com.android.tools.r8.graph.DexEncodedMethod getInitializer(com.android.tools.r8.graph.DexType[]):723:725 -> a
+    76:76:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):778:778 -> a
+    77:77:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):777:777 -> a
+    78:88:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate,java.util.Set):783:793 -> a
+    89:97:boolean hasClassInitializerThatCannotBePostponed():807:815 -> a
+    89:97:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate,java.util.Set):797 -> a
+    98:101:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate,java.util.Set):800:803 -> a
+    102:102:boolean lambda$defaultValuesForStaticFieldsMayTriggerAllocation$4(com.android.tools.r8.graph.DexEncodedField):852:852 -> a
+    103:111:void replaceInnerClassAttributeForThisClass(com.android.tools.r8.graph.InnerClassAttribute):891:899 -> a
+    112:113:void setNestHost(com.android.tools.r8.graph.DexType):931:932 -> a
+    114:114:boolean isValid(com.android.tools.r8.utils.InternalOptions):984:984 -> a
+    115:115:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):287:287 -> a
+    115:115:boolean isValid(com.android.tools.r8.utils.InternalOptions):984 -> a
+    116:116:boolean isAbstract():625:625 -> a
+    116:116:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):288 -> a
+    116:116:boolean isValid(com.android.tools.r8.utils.InternalOptions):984 -> a
+    117:118:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):289:290 -> a
+    117:118:boolean isValid(com.android.tools.r8.utils.InternalOptions):984 -> a
+    119:119:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():291:291 -> a
+    119:119:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):290 -> a
+    119:119:boolean isValid(com.android.tools.r8.utils.InternalOptions):984 -> a
+    120:121:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):290:291 -> a
+    120:121:boolean isValid(com.android.tools.r8.utils.InternalOptions):984 -> a
+    122:126:boolean isValid(com.android.tools.r8.utils.InternalOptions):985:989 -> a
+    1:5:java.util.List virtualMethods():219:223 -> a0
+    com.android.tools.r8.graph.DexClass asDexClass() -> b
+    1:5:void removeDirectMethod(int):184:188 -> b
+    6:11:void appendVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):227:232 -> b
+    12:21:void appendVirtualMethods(java.util.Collection):236:245 -> b
+    22:24:void setVirtualMethod(int,com.android.tools.r8.graph.DexEncodedMethod):257:259 -> b
+    25:27:void setVirtualMethods(com.android.tools.r8.graph.DexEncodedMethod[]):263:265 -> b
+    28:29:boolean verifyCorrectnessOfMethodHolders(java.lang.Iterable):279:280 -> b
+    30:34:void forEachMethod(java.util.function.Consumer):308:312 -> b
+    35:37:void setStaticField(int,com.android.tools.r8.graph.DexEncodedField):431:433 -> b
+    38:40:void setStaticFields(com.android.tools.r8.graph.DexEncodedField[]):437:439 -> b
+    41:45:boolean verifyCorrectnessOfFieldHolder(com.android.tools.r8.graph.DexEncodedField):502:506 -> b
+    46:46:com.android.tools.r8.graph.DexEncodedField lookupInstanceField(com.android.tools.r8.graph.DexField):534:534 -> b
+    47:47:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(com.android.tools.r8.graph.DexMethod):558:558 -> b
+    47:47:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):578 -> b
+    48:48:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(com.android.tools.r8.graph.DexMethod):568:568 -> b
+    48:48:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):579 -> b
+    49:49:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(java.util.function.Predicate):563:563 -> b
+    50:56:boolean initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate,java.util.Set):834:840 -> b
+    57:57:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):973:973 -> b
+    58:58:boolean hasInstanceFields():969:969 -> b
+    58:58:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):976 -> b
+    59:59:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):979:979 -> b
+    60:60:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    60:60:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):979 -> b
+    61:61:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):980:980 -> b
+    1:5:boolean verifyCorrectnessOfMethodHolder(com.android.tools.r8.graph.DexEncodedMethod):269:273 -> c
+    6:6:com.android.tools.r8.graph.DexEncodedField lookupStaticField(com.android.tools.r8.graph.DexField):529:529 -> c
+    7:7:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(com.android.tools.r8.graph.DexMethod):568:568 -> c
+    8:8:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(java.util.function.Predicate):573:573 -> c
+    9:9:boolean isFinal():633:633 -> c
+    9:9:boolean isEffectivelyFinal(com.android.tools.r8.graph.AppView):637 -> c
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):148:148 -> collectMixedSectionItems
+    1:3:java.lang.Iterable methods(java.util.function.Predicate):141:143 -> d
+    4:4:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> d
+    4:4:java.lang.Iterable methods(java.util.function.Predicate):141 -> d
+    5:6:void removeDirectMethod(com.android.tools.r8.graph.DexMethod):193:194 -> d
+    7:162:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):0:155 -> d
+    7:162:void removeDirectMethod(com.android.tools.r8.graph.DexMethod):194 -> d
+    163:163:void removeDirectMethod(com.android.tools.r8.graph.DexMethod):200:200 -> d
+    164:170:boolean isResolvable(com.android.tools.r8.graph.AppView):749:755 -> d
+    171:171:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):0:0 -> d
+    171:171:boolean isResolvable(com.android.tools.r8.graph.AppView):756 -> d
+    172:172:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> d
+    172:172:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):304 -> d
+    172:172:boolean isResolvable(com.android.tools.r8.graph.AppView):756 -> d
+    173:173:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):305:305 -> d
+    173:173:boolean isResolvable(com.android.tools.r8.graph.AppView):756 -> d
+    174:177:boolean isResolvable(com.android.tools.r8.graph.AppView):762:765 -> d
+    1:1:boolean isSerializable(com.android.tools.r8.graph.AppView):769:769 -> e
+    2:3:void removeEnclosingMethod(java.util.function.Predicate):868:869 -> e
+    1:1:void removeInnerClasses(java.util.function.Predicate):878:878 -> f
+    boolean isDexClass() -> h
+    boolean isStaticMember() -> l
+    1:1:com.android.tools.r8.graph.DexType getType():711:711 -> m
+    1:1:com.android.tools.r8.graph.DexReference toReference():652 -> m
+    1:3:java.lang.Iterable allImmediateSupertypes():820:822 -> n
+    4:7:java.lang.Iterable allImmediateSupertypes():821:824 -> n
+    1:6:com.android.tools.r8.graph.DexEncodedMethod[] allMethodsSorted():317:322 -> o
+    com.android.tools.r8.graph.DexClasspathClass asClasspathClass() -> p
+    com.android.tools.r8.graph.DexLibraryClass asLibraryClass() -> q
+    1:1:void clearEnclosingMethod():864:864 -> r
+    1:1:void clearInnerClasses():874:874 -> s
+    1:1:void clearNestHost():927:927 -> t
+    1:2:boolean defaultValuesForStaticFieldsMayTriggerAllocation():851:852 -> u
+    1:5:java.util.List directMethods():152:156 -> v
+    1:1:java.lang.Iterable fields():123:123 -> w
+    1:10:com.android.tools.r8.graph.DexEncodedMethod getClassInitializer():694:703 -> x
+    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute getEnclosingMethod():860:860 -> y
+    1:2:com.android.tools.r8.graph.InnerClassAttribute getInnerClassAttributeForThisClass():882:883 -> z
+com.android.tools.r8.graph.DexClass$FieldSetter -> com.android.tools.r8.graph.C$a:
+    void setField(int,com.android.tools.r8.graph.DexEncodedField) -> a
+com.android.tools.r8.graph.DexClass$MethodSetter -> com.android.tools.r8.graph.C$b:
+    void setMethod(int,com.android.tools.r8.graph.DexEncodedMethod) -> a
+com.android.tools.r8.graph.DexClassAndMethod -> com.android.tools.r8.graph.D:
+    com.android.tools.r8.graph.DexClass holder -> a
+    com.android.tools.r8.graph.DexEncodedMethod method -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):14:17 -> <init>
+    1:4:com.android.tools.r8.graph.DexClassAndMethod create(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):21:24 -> a
+    5:5:com.android.tools.r8.graph.DexClass getHolder():39:39 -> a
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getMethod():43:43 -> b
+    1:1:boolean equals(java.lang.Object):30:30 -> equals
+    1:1:int hashCode():35:35 -> hashCode
+com.android.tools.r8.graph.DexClasspathClass -> com.android.tools.r8.graph.E:
+    boolean $assertionsDisabled -> t
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:18:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):36:53 -> <init>
+    1:1:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo():90:90 -> B
+    boolean isClasspathClass() -> M
+    boolean isNotProgramClass() -> V
+    1:1:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):70:70 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):59:59 -> collectIndexedItems
+    com.android.tools.r8.graph.DexClasspathClass asClasspathClass() -> p
+    1:1:java.lang.String toString():64:64 -> toString
+com.android.tools.r8.graph.DexCode -> com.android.tools.r8.graph.F:
+    com.android.tools.r8.graph.DexCode$Try[] tries -> d
+    com.android.tools.r8.graph.DexDebugInfoForWriting debugInfoForWriting -> i
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.graph.DexString highestSortingString -> g
+    com.android.tools.r8.code.Instruction[] instructions -> f
+    int incomingRegisterSize -> b
+    com.android.tools.r8.graph.DexCode$TryHandler[] handlers -> e
+    int outgoingRegisterSize -> c
+    com.android.tools.r8.graph.DexDebugInfo debugInfo -> h
+    int registerSize -> a
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:9:void <init>(int,int,int,com.android.tools.r8.code.Instruction[],com.android.tools.r8.graph.DexCode$Try[],com.android.tools.r8.graph.DexCode$TryHandler[],com.android.tools.r8.graph.DexDebugInfo):56:64 -> <init>
+    1:1:com.android.tools.r8.graph.DexDebugInfo getDebugInfo():100:100 -> a
+    2:4:void setDebugInfo(com.android.tools.r8.graph.DexDebugInfo):104:106 -> a
+    5:26:com.android.tools.r8.graph.DexDebugInfo debugInfoWithFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):111:132 -> a
+    27:30:int getLargestPrefix(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString):136:139 -> a
+    31:33:void updateHighestSortingString(com.android.tools.r8.graph.DexString):428:430 -> a
+    1:8:com.android.tools.r8.graph.DexDebugInfoForWriting getDebugInfoForWriting():417:424 -> b
+    1:9:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):217:225 -> buildIR
+    1:8:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):236:243 -> buildInliningIR
+    1:1:com.android.tools.r8.graph.DexCode withoutThisParameter():74:74 -> c
+    2:11:com.android.tools.r8.graph.DexDebugInfo debugInfoWithoutFirstParameter():148:157 -> c
+    2:11:com.android.tools.r8.graph.DexCode withoutThisParameter():81 -> c
+    12:12:com.android.tools.r8.graph.DexCode withoutThisParameter():81:81 -> c
+    1:17:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):395:411 -> collectIndexedItems
+    1:3:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):440:442 -> collectMixedSectionItems
+    4:70:void com.android.tools.r8.graph.DexDebugInfo.collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):0:66 -> collectMixedSectionItems
+    4:70:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):442 -> collectMixedSectionItems
+    1:28:boolean computeEquals(java.lang.Object):178:205 -> computeEquals
+    1:7:int computeHashCode():167:173 -> computeHashCode
+    1:1:int estimatedSizeForInlining():91:91 -> estimatedSizeForInlining
+    1:1:boolean isEmptyVoidMethod():212:212 -> isEmptyVoidMethod
+    1:7:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):248:254 -> registerCodeReferences
+    1:1:java.lang.String toString():262:262 -> toString
+    2:63:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):267:328 -> toString
+    64:64:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):309:309 -> toString
+com.android.tools.r8.graph.DexCode$Try -> com.android.tools.r8.graph.F$a:
+    boolean $assertionsDisabled -> e
+    int handlerIndex -> d
+    int startAddress -> b
+    int instructionCount -> c
+    int handlerOffset -> a
+    1:1:void <clinit>():447:447 -> <clinit>
+    1:5:void <init>(int,int,int):456:460 -> <init>
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):509:509 -> collectMixedSectionItems
+    1:9:boolean equals(java.lang.Object):477:485 -> equals
+    1:1:int hashCode():469:469 -> hashCode
+    1:4:java.lang.String toString():492:495 -> toString
+com.android.tools.r8.graph.DexCode$TryHandler -> com.android.tools.r8.graph.F$b:
+    com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair[] pairs -> a
+    int catchAllAddr -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():514:514 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair[],int):521:523 -> <init>
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):549:549 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):555:555 -> collectMixedSectionItems
+    1:6:boolean equals(java.lang.Object):536:541 -> equals
+    1:1:int hashCode():528:528 -> hashCode
+    1:16:java.lang.String toString():560:575 -> toString
+com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair -> com.android.tools.r8.graph.F$b$a:
+    com.android.tools.r8.graph.DexType type -> a
+    int addr -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():578:578 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexType,int):583:585 -> <init>
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):591:591 -> collectIndexedItems
+    2:152:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    2:152:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):591 -> collectIndexedItems
+    153:398:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    153:398:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    153:398:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):591 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):597:597 -> collectMixedSectionItems
+    1:3:boolean equals(java.lang.Object):610:612 -> equals
+    1:1:int hashCode():602:602 -> hashCode
+com.android.tools.r8.graph.DexDebugEntry -> com.android.tools.r8.graph.G:
+    com.android.tools.r8.ir.code.Position callerPosition -> i
+    com.android.tools.r8.graph.DexString sourceFile -> d
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.graph.DexMethod method -> h
+    boolean prologueEnd -> e
+    boolean epilogueBegin -> f
+    boolean lineEntry -> a
+    int address -> b
+    int line -> c
+    java.util.Map locals -> g
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:11:void <init>(boolean,int,int,com.android.tools.r8.graph.DexString,boolean,boolean,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):34:44 -> <init>
+    1:38:java.lang.String toString(boolean):53:90 -> a
+    1:1:java.lang.String toString():49:49 -> toString
+com.android.tools.r8.graph.DexDebugEntryBuilder -> com.android.tools.r8.graph.H:
+    com.android.tools.r8.graph.DexDebugPositionState positionState -> h
+    java.util.Map locals -> c
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexDebugEntry pending -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap arguments -> d
+    java.util.List entries -> g
+    boolean prologueEnd -> a
+    boolean epilogueBegin -> b
+    java.util.Map canonicalizedLocals -> f
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.graph.DexMethod):59:59 -> <init>
+    2:21:void <init>(int,com.android.tools.r8.graph.DexMethod):43:62 -> <init>
+    22:22:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):65:65 -> <init>
+    23:71:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):43:91 -> <init>
+    1:2:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC):101:102 -> a
+    3:3:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine):107:107 -> a
+    4:4:void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame):112:112 -> a
+    5:6:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):117:118 -> a
+    7:7:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):123:123 -> a
+    8:8:void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd):128:128 -> a
+    9:9:void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin):133:133 -> a
+    10:10:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):144:144 -> a
+    11:12:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):200:201 -> a
+    11:12:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):145 -> a
+    13:14:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.set(com.android.tools.r8.graph.DebugLocalInfo):29:30 -> a
+    13:14:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):145 -> a
+    15:15:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):150:150 -> a
+    16:16:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.unset():34:34 -> a
+    16:16:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):150 -> a
+    17:17:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):155:155 -> a
+    18:18:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.reset():38:38 -> a
+    18:18:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):155 -> a
+    19:21:void entryEventReceived(boolean):159:161 -> a
+    22:30:com.android.tools.r8.com.google.common.collect.ImmutableMap getLocals():215:223 -> a
+    22:30:void entryEventReceived(boolean):169 -> a
+    31:31:void entryEventReceived(boolean):169:169 -> a
+    32:56:void entryEventReceived(boolean):161:185 -> a
+    57:62:java.util.List build():190:195 -> a
+    63:64:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):200:201 -> a
+    63:64:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):137 -> a
+    65:66:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):138:139 -> a
+    67:68:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.set(com.android.tools.r8.graph.DebugLocalInfo):29:30 -> a
+    67:68:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):139 -> a
+    69:72:com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry getEntry(int):206:209 -> a
+com.android.tools.r8.graph.DexDebugEntryBuilder$1 -> com.android.tools.r8.graph.H$a:
+com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry -> com.android.tools.r8.graph.H$b:
+    com.android.tools.r8.graph.DebugLocalInfo current -> a
+    com.android.tools.r8.graph.DebugLocalInfo last -> b
+    1:1:void <init>():24:24 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexDebugEntryBuilder$1):24:24 -> <init>
+com.android.tools.r8.graph.DexDebugEvent -> com.android.tools.r8.graph.I:
+    com.android.tools.r8.graph.DexDebugEvent[] EMPTY_ARRAY -> a
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:1:void <init>():13:13 -> <init>
+    void accept(com.android.tools.r8.graph.DexDebugEventVisitor) -> a
+    void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
+com.android.tools.r8.graph.DexDebugEvent$AdvanceLine -> com.android.tools.r8.graph.I$a:
+    int delta -> b
+    1:2:void <init>(int):148:149 -> <init>
+    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):154:155 -> a
+    3:3:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):160:160 -> a
+    1:1:boolean equals(java.lang.Object):176:176 -> equals
+    1:1:int hashCode():170:170 -> hashCode
+    1:1:java.lang.String toString():165:165 -> toString
+com.android.tools.r8.graph.DexDebugEvent$AdvancePC -> com.android.tools.r8.graph.I$b:
+    int delta -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():41:41 -> <clinit>
+    1:2:void <init>(int):51:52 -> <init>
+    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):47:48 -> a
+    3:4:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):57:58 -> a
+    1:1:boolean equals(java.lang.Object):75:75 -> equals
+    1:1:int hashCode():69:69 -> hashCode
+    1:1:java.lang.String toString():64:64 -> toString
+com.android.tools.r8.graph.DexDebugEvent$Default -> com.android.tools.r8.graph.I$c:
+    int value -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():426:426 -> <clinit>
+    1:3:void <init>(int):430:432 -> <init>
+    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):437:437 -> a
+    2:2:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):442:442 -> a
+    3:4:int getLineDelta():451:452 -> a
+    1:2:int getPCDelta():446:447 -> b
+    1:1:boolean equals(java.lang.Object):468:468 -> equals
+    1:1:int hashCode():462:462 -> hashCode
+    1:1:java.lang.String toString():457:457 -> toString
+com.android.tools.r8.graph.DexDebugEvent$EndLocal -> com.android.tools.r8.graph.I$d:
+    int registerNum -> b
+    1:2:void <init>(int):272:273 -> <init>
+    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):278:279 -> a
+    3:3:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):284:284 -> a
+    1:1:boolean equals(java.lang.Object):300:300 -> equals
+    1:1:int hashCode():294:294 -> hashCode
+    1:1:java.lang.String toString():289:289 -> toString
+com.android.tools.r8.graph.DexDebugEvent$RestartLocal -> com.android.tools.r8.graph.I$e:
+    int registerNum -> b
+    1:2:void <init>(int):309:310 -> <init>
+    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):315:316 -> a
+    3:3:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):321:321 -> a
+    1:1:boolean equals(java.lang.Object):337:337 -> equals
+    1:1:int hashCode():331:331 -> hashCode
+    1:1:java.lang.String toString():326:326 -> toString
+com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin -> com.android.tools.r8.graph.I$f:
+    1:1:void <init>():115:115 -> <init>
+    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):120:120 -> a
+    2:2:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):125:125 -> a
+    1:1:boolean equals(java.lang.Object):140:140 -> equals
+com.android.tools.r8.graph.DexDebugEvent$SetFile -> com.android.tools.r8.graph.I$g:
+    com.android.tools.r8.graph.DexString fileName -> b
+    1:2:void <init>(com.android.tools.r8.graph.DexString):346:347 -> <init>
+    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):352:353 -> a
+    3:3:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):364:364 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):359:359 -> collectIndexedItems
+    2:247:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    2:247:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):359 -> collectIndexedItems
+    1:2:boolean equals(java.lang.Object):380:381 -> equals
+    1:2:int hashCode():374:375 -> hashCode
+    1:1:java.lang.String toString():369:369 -> toString
+com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame -> com.android.tools.r8.graph.I$h:
+    com.android.tools.r8.graph.DexMethod callee -> b
+    com.android.tools.r8.ir.code.Position caller -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():385:385 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):390:393 -> <init>
+    void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
+    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):403:403 -> a
+    1:5:boolean equals(java.lang.Object):418:422 -> equals
+    1:1:int hashCode():413:413 -> hashCode
+    1:1:java.lang.String toString():408:408 -> toString
+com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd -> com.android.tools.r8.graph.I$i:
+    1:1:void <init>():82:82 -> <init>
+    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):87:87 -> a
+    2:2:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):92:92 -> a
+    1:1:boolean equals(java.lang.Object):108:108 -> equals
+com.android.tools.r8.graph.DexDebugEvent$StartLocal -> com.android.tools.r8.graph.I$j:
+    com.android.tools.r8.graph.DexString name -> c
+    com.android.tools.r8.graph.DexString signature -> e
+    com.android.tools.r8.graph.DexType type -> d
+    int registerNum -> b
+    1:5:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):192:196 -> <init>
+    1:8:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):205:212 -> a
+    9:9:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):232:232 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):219:219 -> collectIndexedItems
+    2:247:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    2:247:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):220 -> collectIndexedItems
+    248:248:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):222:222 -> collectIndexedItems
+    249:399:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    249:399:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):223 -> collectIndexedItems
+    400:645:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    400:645:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    400:645:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):223 -> collectIndexedItems
+    646:646:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):225:225 -> collectIndexedItems
+    647:892:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    647:892:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):226 -> collectIndexedItems
+    1:14:boolean equals(java.lang.Object):251:264 -> equals
+    1:5:int hashCode():242:246 -> hashCode
+    1:1:java.lang.String toString():237:237 -> toString
+com.android.tools.r8.graph.DexDebugEventBuilder -> com.android.tools.r8.graph.J:
+    boolean $assertionsDisabled -> m
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    int startLine -> l
+    com.android.tools.r8.ir.code.Position emittedPosition -> i
+    com.android.tools.r8.graph.DexEncodedMethod method -> a
+    int emittedPc -> h
+    com.android.tools.r8.utils.InternalOptions options -> c
+    java.util.ArrayList arguments -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap emittedLocals -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap pendingLocals -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap lastKnownLocals -> e
+    boolean pendingLocalChanges -> g
+    java.util.List events -> k
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):61:61 -> <init>
+    2:22:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):44:64 -> <init>
+    1:2:void add(int,int,com.android.tools.r8.ir.code.Instruction):69:70 -> a
+    3:5:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):125:127 -> a
+    3:5:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps.emptyMap():136:136 -> a
+    6:6:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):129 -> a
+    6:6:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    7:9:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):129:131 -> a
+    7:9:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    10:10:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    10:10:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):131 -> a
+    10:10:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    11:14:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):131:134 -> a
+    11:14:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    15:18:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):140:143 -> a
+    15:18:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
+    15:18:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    19:19:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps.emptyMap():136:136 -> a
+    19:19:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):145 -> a
+    19:19:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
+    19:19:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    20:31:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):145:156 -> a
+    20:31:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
+    20:31:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    32:32:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    32:32:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):156 -> a
+    32:32:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
+    32:32:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    33:33:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):156:156 -> a
+    33:33:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
+    33:33:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
+    34:43:void add(int,int,com.android.tools.r8.ir.code.Instruction):76:85 -> a
+    44:48:void startArgument(com.android.tools.r8.ir.code.Argument):160:164 -> a
+    44:48:void add(int,int,com.android.tools.r8.ir.code.Instruction):85 -> a
+    49:50:void add(int,int,com.android.tools.r8.ir.code.Instruction):86:87 -> a
+    51:52:void updateLocals(com.android.tools.r8.ir.code.DebugLocalsChange):169:170 -> a
+    51:52:void add(int,int,com.android.tools.r8.ir.code.Instruction):87 -> a
+    53:54:void add(int,int,com.android.tools.r8.ir.code.Instruction):89:90 -> a
+    55:76:void emitDebugPosition(int,com.android.tools.r8.ir.code.Position):182:203 -> a
+    55:76:void add(int,int,com.android.tools.r8.ir.code.Instruction):91 -> a
+    77:77:void add(int,int,com.android.tools.r8.ir.code.Instruction):94:94 -> a
+    78:88:void emitLocalChanges(int):208:218 -> a
+    78:88:void add(int,int,com.android.tools.r8.ir.code.Instruction):95 -> a
+    89:90:void add(int,int,com.android.tools.r8.ir.code.Instruction):101:102 -> a
+    91:104:com.android.tools.r8.graph.DexDebugInfo build():108:121 -> a
+    105:132:void emitAdvancementEvents(int,com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.ir.code.Position,java.util.List,com.android.tools.r8.graph.DexItemFactory):229:256 -> a
+    133:151:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):272:290 -> a
+    152:152:void com.android.tools.r8.graph.DexDebugEvent$StartLocal.<init>(int,com.android.tools.r8.graph.DebugLocalInfo):200:200 -> a
+    152:152:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):290 -> a
+    153:154:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):290:291 -> a
+    1:4:boolean localsChanged():174:177 -> b
+com.android.tools.r8.graph.DexDebugEventVisitor -> com.android.tools.r8.graph.K:
+    void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$Default) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal) -> a
+com.android.tools.r8.graph.DexDebugInfo -> com.android.tools.r8.graph.L:
+    com.android.tools.r8.graph.DexString[] parameters -> b
+    com.android.tools.r8.graph.DexDebugEvent[] events -> c
+    boolean $assertionsDisabled -> d
+    int startLine -> a
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:8:void <init>(int,com.android.tools.r8.graph.DexString[],com.android.tools.r8.graph.DexDebugEvent[]):17:24 -> <init>
+    1:5:java.util.List computeEntries(com.android.tools.r8.graph.DexMethod):28:32 -> a
+    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60:61 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):66:66 -> collectMixedSectionItems
+    1:9:boolean computeEquals(java.lang.Object):44:52 -> computeEquals
+    1:3:int computeHashCode():37:39 -> computeHashCode
+    1:8:java.lang.String toString():71:78 -> toString
+com.android.tools.r8.graph.DexDebugInfoForWriting -> com.android.tools.r8.graph.M:
+    1:5:void <init>(com.android.tools.r8.graph.DexDebugInfo):17:17 -> <init>
+    1:1:boolean lambda$new$0(com.android.tools.r8.graph.DexDebugEvent):19:19 -> a
+    1:1:com.android.tools.r8.graph.DexDebugEvent[] lambda$new$1(int):20:20 -> b
+com.android.tools.r8.graph.DexDebugPositionState -> com.android.tools.r8.graph.N:
+    com.android.tools.r8.graph.DexString currentFile -> c
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.graph.DexMethod currentMethod -> d
+    int currentLine -> b
+    int currentPc -> a
+    com.android.tools.r8.ir.code.Position currentCallerPosition -> e
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.graph.DexMethod):30:30 -> <init>
+    2:10:void <init>(int,com.android.tools.r8.graph.DexMethod):24:32 -> <init>
+    void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd) -> a
+    void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal) -> a
+    1:2:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC):37:38 -> a
+    3:3:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine):43:43 -> a
+    4:5:void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame):48:49 -> a
+    6:8:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):54:56 -> a
+    9:9:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):61:61 -> a
+    10:10:com.android.tools.r8.ir.code.Position getCurrentCallerPosition():106:106 -> a
+    1:1:com.android.tools.r8.graph.DexString getCurrentFile():98:98 -> b
+    1:1:int getCurrentLine():94:94 -> c
+    1:1:com.android.tools.r8.graph.DexMethod getCurrentMethod():102:102 -> d
+    1:1:int getCurrentPc():90:90 -> e
+com.android.tools.r8.graph.DexDefinition -> com.android.tools.r8.graph.O:
+    com.android.tools.r8.graph.DexAnnotationSet annotations -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexAnnotationSet):17:19 -> <init>
+    1:1:com.android.tools.r8.graph.DexAnnotationSet annotations():23:23 -> a
+    2:2:void setAnnotations(com.android.tools.r8.graph.DexAnnotationSet):31:31 -> a
+    3:3:java.util.stream.Stream filterDexEncodedField(java.util.stream.Stream):96:96 -> a
+    4:4:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):88:88 -> a
+    4:4:java.util.stream.Stream filterDexEncodedField(java.util.stream.Stream):96 -> a
+    com.android.tools.r8.graph.DexClass asDexClass() -> b
+    1:1:java.util.stream.Stream filterDexEncodedMethod(java.util.stream.Stream):100:100 -> b
+    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):88:88 -> b
+    2:2:java.util.stream.Stream filterDexEncodedMethod(java.util.stream.Stream):100 -> b
+    com.android.tools.r8.graph.DexEncodedField asDexEncodedField() -> c
+    com.android.tools.r8.graph.DexEncodedMember asDexEncodedMember() -> d
+    com.android.tools.r8.graph.DexEncodedMethod asDexEncodedMethod() -> e
+    com.android.tools.r8.graph.DexProgramClass asProgramClass() -> f
+    1:1:void clearAnnotations():27:27 -> g
+    2:2:void setAnnotations(com.android.tools.r8.graph.DexAnnotationSet):31:31 -> g
+    2:2:void clearAnnotations():27 -> g
+    boolean isDexClass() -> h
+    boolean isDexEncodedField() -> i
+    boolean isDexEncodedMethod() -> j
+    boolean isProgramClass() -> k
+    boolean isStaticMember() -> l
+    com.android.tools.r8.graph.DexReference toReference() -> m
+com.android.tools.r8.graph.DexDefinitionSupplier -> com.android.tools.r8.graph.P:
+com.android.tools.r8.graph.DexEncodedAnnotation -> com.android.tools.r8.graph.Q:
+    com.android.tools.r8.graph.DexAnnotationElement[] elements -> b
+    com.android.tools.r8.graph.DexType type -> a
+    int sorted -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement[]):21:21 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement[]):19:23 -> <init>
+    1:2:void sort():62:63 -> a
+    3:3:int sortedHashCode():74:74 -> a
+    3:3:void sort():63 -> a
+    4:9:void sort():63:68 -> a
+    10:10:int sortedHashCode():74:74 -> a
+    10:10:void sort():70 -> a
+    11:11:void sort():70:70 -> a
+    12:12:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexAnnotationElement):66:66 -> a
+    13:268:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):0:255 -> a
+    13:268:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexAnnotationElement):66 -> a
+    269:275:com.android.tools.r8.graph.DexEncodedAnnotation rewrite(java.util.function.Function,java.util.function.Function):81:87 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29:29 -> collectIndexedItems
+    2:152:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    2:152:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29 -> collectIndexedItems
+    153:398:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    153:398:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    153:398:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29 -> collectIndexedItems
+    399:399:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):30:30 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):36:36 -> collectMixedSectionItems
+    1:3:boolean equals(java.lang.Object):54:56 -> equals
+    1:1:int hashCode():46:46 -> hashCode
+    1:1:java.lang.String toString():41:41 -> toString
+com.android.tools.r8.graph.DexEncodedArray -> com.android.tools.r8.graph.S:
+    com.android.tools.r8.graph.DexValue[] values -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexValue[]):14:15 -> <init>
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):21:21 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):26:26 -> collectMixedSectionItems
+    1:1:boolean equals(java.lang.Object):39:39 -> equals
+    1:1:int hashCode():31:31 -> hashCode
+    1:1:java.lang.String toString():44:44 -> toString
+com.android.tools.r8.graph.DexEncodedField -> com.android.tools.r8.graph.T:
+    com.android.tools.r8.kotlin.KotlinMemberInfo kotlinMemberInfo -> g
+    com.android.tools.r8.graph.FieldAccessFlags accessFlags -> d
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexEncodedField[] EMPTY_ARRAY -> h
+    com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo optimizationInfo -> f
+    com.android.tools.r8.graph.DexField field -> c
+    com.android.tools.r8.graph.DexValue staticValue -> e
+    1:2:void <clinit>():23:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexValue):38:38 -> <init>
+    2:13:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexValue):30:41 -> <init>
+    1:2:boolean isProgramField(com.android.tools.r8.graph.DexDefinitionSupplier):45:46 -> a
+    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    3:3:boolean isProgramField(com.android.tools.r8.graph.DexDefinitionSupplier):46 -> a
+    4:4:boolean isProgramField(com.android.tools.r8.graph.DexDefinitionSupplier):47:47 -> a
+    5:5:void setOptimizationInfo(com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo):67:67 -> a
+    6:7:void setKotlinMemberInfo(com.android.tools.r8.kotlin.KotlinMemberInfo):75:76 -> a
+    8:10:void setStaticValue(com.android.tools.r8.graph.DexValue):156:158 -> a
+    11:11:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):173:173 -> a
+    12:12:boolean isStatic():134:134 -> a
+    12:12:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):176 -> a
+    13:14:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):176:177 -> a
+    15:15:com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo getOptimizationInfo():53:53 -> a
+    15:15:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):181 -> a
+    16:22:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):181:187 -> a
+    23:30:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):186:193 -> a
+    31:31:boolean isStatic():134:134 -> a
+    31:31:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):193 -> a
+    32:32:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):194:194 -> a
+    33:33:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    33:33:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):194 -> a
+    34:39:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):195:200 -> a
+    40:47:com.android.tools.r8.graph.DexEncodedField toTypeSubstitutedField(com.android.tools.r8.graph.DexField):234:241 -> a
+    com.android.tools.r8.graph.DexEncodedField asDexEncodedField() -> c
+    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):86:87 -> collectIndexedItems
+    3:3:void com.android.tools.r8.graph.DexAnnotationSet.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):83:83 -> collectIndexedItems
+    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):87 -> collectIndexedItems
+    4:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):88:89 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):95:95 -> collectMixedSectionItems
+    boolean isDexEncodedField() -> i
+    1:1:boolean isStatic():134:134 -> l
+    1:1:boolean isStaticMember():143 -> l
+    1:1:com.android.tools.r8.graph.DexField toReference():115:115 -> m
+    1:1:com.android.tools.r8.graph.DexReference toReference():23 -> m
+    1:1:com.android.tools.r8.graph.DexField toReference():115:115 -> n
+    1:1:com.android.tools.r8.graph.DexMember toReference():23 -> n
+    1:1:com.android.tools.r8.kotlin.KotlinMemberInfo getKotlinMemberInfo():71:71 -> o
+    1:7:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo getMutableOptimizationInfo():57:63 -> p
+    1:1:com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo getOptimizationInfo():53:53 -> q
+    1:2:com.android.tools.r8.graph.DexValue getStaticValue():162:163 -> r
+    1:1:boolean hasAnnotation():147:147 -> s
+    1:2:boolean hasExplicitStaticValue():151:152 -> t
+    1:1:java.lang.String toSmaliString():105:105 -> toSmaliString
+    1:1:java.lang.String toSourceString():110:110 -> toSourceString
+    1:1:java.lang.String toString():100:100 -> toString
+    1:1:boolean isKotlinBackingField():80:80 -> u
+    2:126:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isBackingField():0:124 -> u
+    2:126:boolean isKotlinBackingField():80 -> u
+    1:1:com.android.tools.r8.graph.DexField toReference():115:115 -> v
+com.android.tools.r8.graph.DexEncodedMember -> com.android.tools.r8.graph.U:
+    1:1:void <init>(com.android.tools.r8.graph.DexAnnotationSet):10:10 -> <init>
+    com.android.tools.r8.graph.DexEncodedMember asDexEncodedMember() -> d
+    1:2:boolean equals(java.lang.Object):31:32 -> equals
+    1:1:int hashCode():37:37 -> hashCode
+    com.android.tools.r8.graph.DexMember toReference() -> n
+com.android.tools.r8.graph.DexEncodedMethod -> com.android.tools.r8.graph.V:
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo optimizationInfo -> h
+    com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo callSiteOptimizationInfo -> i
+    boolean obsolete -> o
+    boolean d8R8Synthesized -> p
+    int classFileVersion -> j
+    com.android.tools.r8.kotlin.KotlinMemberInfo kotlinMemberInfo -> k
+    com.android.tools.r8.graph.ParameterAnnotationsList parameterAnnotationsList -> e
+    boolean $assertionsDisabled -> u
+    com.android.tools.r8.graph.DexEncodedMethod ANNOTATION_REFERENCE -> s
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap NO_PARAMETER_INFO -> t
+    com.android.tools.r8.utils.OptionalBool isLibraryMethodOverride -> m
+    com.android.tools.r8.graph.DexEncodedMethod SENTINEL -> r
+    com.android.tools.r8.graph.DexMethod method -> c
+    com.android.tools.r8.graph.Code code -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap parameterInfo -> n
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState compilationState -> g
+    com.android.tools.r8.graph.DexEncodedMethod defaultInterfaceMethodImplementation -> l
+    com.android.tools.r8.graph.DexEncodedMethod[] EMPTY_ARRAY -> q
+    com.android.tools.r8.graph.MethodAccessFlags accessFlags -> d
+    1:48:void <clinit>():79:126 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code):214:214 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int):224:224 -> <init>
+    3:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int,boolean):245:245 -> <init>
+    4:123:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int,boolean):135:254 -> <init>
+    1:1:java.util.Map getParameterInfo():592:592 -> A
+    1:2:boolean hasAnnotation():1184:1185 -> B
+    1:2:boolean hasClassFileVersion():653:654 -> C
+    1:1:boolean hasCode():633:633 -> D
+    1:1:boolean hasParameterInfo():588:588 -> E
+    1:2:boolean isClassInitializer():314:315 -> F
+    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> F
+    3:3:boolean isClassInitializer():315 -> F
+    4:4:boolean isClassInitializer():315:315 -> F
+    1:1:boolean isD8R8Synthesized():162:162 -> G
+    1:1:boolean isDefaultMethod():320:320 -> H
+    2:2:boolean isAbstract():291:291 -> H
+    2:2:boolean isDefaultMethod():320 -> H
+    3:3:boolean isDefaultMethod():320:320 -> H
+    1:2:boolean isDirectMethod():372:373 -> I
+    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> I
+    3:3:boolean isDirectMethod():373 -> I
+    4:4:boolean isDirectMethod():373:373 -> I
+    1:1:boolean isFinal():295:295 -> J
+    1:2:boolean isInitializer():299:300 -> K
+    1:2:boolean isInstanceInitializer():304:305 -> L
+    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> L
+    3:3:boolean isInstanceInitializer():305 -> L
+    4:4:boolean isInstanceInitializer():305:305 -> L
+    1:1:boolean isKotlinExtensionFunction():423:423 -> M
+    2:122:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isExtensionFunction():0:120 -> M
+    2:122:boolean isKotlinExtensionFunction():423 -> M
+    1:1:boolean isKotlinExtensionProperty():431:431 -> N
+    1:1:boolean isKotlinFunction():419:419 -> O
+    2:118:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isFunction():0:116 -> O
+    2:118:boolean isKotlinFunction():419 -> O
+    119:119:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isExtensionFunction():120:120 -> O
+    119:119:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isFunction():116 -> O
+    119:119:boolean isKotlinFunction():419 -> O
+    1:1:boolean isKotlinProperty():427:427 -> P
+    2:2:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isProperty():0:0 -> P
+    2:2:boolean isKotlinProperty():427 -> P
+    3:3:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isBackingField():124:124 -> P
+    3:3:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isProperty():128 -> P
+    3:3:boolean isKotlinProperty():427 -> P
+    4:8:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isProperty():128:132 -> P
+    4:8:boolean isKotlinProperty():427 -> P
+    1:1:com.android.tools.r8.utils.OptionalBool isLibraryMethodOverride():258:258 -> Q
+    1:2:boolean isNonAbstractNonNativeMethod():349:350 -> R
+    1:2:boolean isNonAbstractVirtualMethod():344:345 -> S
+    1:2:boolean isNonPrivateVirtualMethod():335:336 -> T
+    1:1:boolean isObsolete():172:172 -> U
+    1:1:boolean isOnlyInlinedIntoNestMembers():435:435 -> V
+    1:2:boolean isPrivateMethod():364:365 -> W
+    1:2:boolean isProcessed():286:287 -> X
+    1:2:boolean isPublicMethod():359:360 -> Y
+    1:2:boolean isPublicized():354:355 -> Z
+    1:1:boolean access$300(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> a
+    2:2:com.android.tools.r8.graph.DexEncodedMethod$CompilationState access$502(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$CompilationState):79:79 -> a
+    3:3:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo access$602(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo):79:79 -> a
+    4:6:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):262:264 -> a
+    7:7:boolean com.android.tools.r8.utils.BooleanLatticeElement.isPossiblyFalse():52:52 -> a
+    7:7:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):264 -> a
+    8:10:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):264:264 -> a
+    13:15:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):267:269 -> a
+    16:16:boolean com.android.tools.r8.utils.BooleanLatticeElement.isPossiblyFalse():52:52 -> a
+    16:16:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):270 -> a
+    17:22:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):269:274 -> a
+    23:25:boolean isProgramMethod(com.android.tools.r8.graph.DexDefinitionSupplier):278:280 -> a
+    26:29:void setKotlinMemberInfo(com.android.tools.r8.kotlin.KotlinMemberInfo):401:404 -> a
+    30:31:boolean isInliningCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):443:444 -> a
+    32:87:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):453:508 -> a
+    88:88:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):504:504 -> a
+    89:89:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):500:500 -> a
+    90:93:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):493:496 -> a
+    94:97:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):486:489 -> a
+    98:101:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):479:482 -> a
+    102:105:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):472:475 -> a
+    106:125:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):513:532 -> a
+    126:126:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):529:529 -> a
+    127:127:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):526:526 -> a
+    128:128:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):523:523 -> a
+    129:129:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):520:520 -> a
+    130:148:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):517:535 -> a
+    149:150:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):544:545 -> a
+    151:152:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):554:555 -> a
+    153:156:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):560:563 -> a
+    157:157:boolean hasParameterInfo():588:588 -> a
+    157:157:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):563 -> a
+    158:159:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):563:564 -> a
+    160:161:void setParameterInfo(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):583:584 -> a
+    160:161:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):564 -> a
+    162:162:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):566:566 -> a
+    163:165:void setCode(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.graph.AppView):570:572 -> a
+    166:169:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):576:579 -> a
+    170:171:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo getOptimizationInfo():1203:1204 -> a
+    170:171:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):579 -> a
+    172:172:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):579:579 -> a
+    173:178:void collectMixedSectionItemsWithCodeMapping(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.dex.MethodToCodeObjectMapping):620:625 -> a
+    179:187:java.lang.String descriptor(com.android.tools.r8.naming.NamingLens):675:683 -> a
+    188:200:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):687:699 -> a
+    201:258:java.lang.String com.android.tools.r8.graph.DexCode.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):332:389 -> a
+    201:258:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):700 -> a
+    259:262:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):700:703 -> a
+    263:272:com.android.tools.r8.graph.DexCode generateCodeFromTemplate(int,int,com.android.tools.r8.code.Instruction[]):730:739 -> a
+    273:274:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):794:795 -> a
+    275:279:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):815:819 -> a
+    275:279:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):795 -> a
+    280:287:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):818:825 -> a
+    280:287:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):795 -> a
+    288:294:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):824:830 -> a
+    288:294:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):795 -> a
+    295:310:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):828:843 -> a
+    295:310:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):795 -> a
+    311:311:void setObsolete():178:178 -> a
+    311:311:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):844 -> a
+    311:311:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):795 -> a
+    312:312:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):845:845 -> a
+    312:312:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):795 -> a
+    313:313:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797:797 -> a
+    314:318:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):849:853 -> a
+    314:318:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    319:327:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):852:860 -> a
+    319:327:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    328:336:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):857:865 -> a
+    328:336:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    337:345:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):862:870 -> a
+    337:345:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    346:350:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):868:872 -> a
+    346:350:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    351:352:boolean isStaticMember():384:385 -> a
+    351:352:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):873 -> a
+    351:352:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    353:375:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):877:899 -> a
+    353:375:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    376:376:void setObsolete():178:178 -> a
+    376:376:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):900 -> a
+    376:376:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    377:377:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):901:901 -> a
+    377:377:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):797 -> a
+    378:382:void setDebugInfoWithFakeThisParameter(com.android.tools.r8.graph.Code,int,com.android.tools.r8.graph.AppView):802:806 -> a
+    383:388:void setDebugInfoWithFakeThisParameter(com.android.tools.r8.graph.Code,int,com.android.tools.r8.graph.AppView):805:810 -> a
+    389:390:com.android.tools.r8.graph.DexEncodedMethod toTypeSubstitutedMethod(com.android.tools.r8.graph.DexMethod):905:906 -> a
+    391:405:com.android.tools.r8.graph.DexEncodedMethod toTypeSubstitutedMethod(com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):910:924 -> a
+    406:426:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):928:948 -> a
+    427:427:void com.android.tools.r8.graph.MethodAccessFlags.setConstructor():188:188 -> a
+    427:427:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):948 -> a
+    428:428:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):949:949 -> a
+    429:434:com.android.tools.r8.graph.DexEncodedMethod createFieldAccessorBridge(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):954:959 -> a
+    435:461:com.android.tools.r8.graph.DexEncodedMethod createFieldAccessorBridge(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):956:982 -> a
+    462:462:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    462:462:com.android.tools.r8.graph.DexEncodedMethod createFieldAccessorBridge(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):982 -> a
+    463:463:com.android.tools.r8.ir.conversion.SourceCode lambda$createFieldAccessorBridge$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.ir.code.Position):964:964 -> a
+    464:467:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):967:970 -> a
+    468:468:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstance():481:481 -> a
+    468:468:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():497 -> a
+    468:468:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):971 -> a
+    469:469:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():497:497 -> a
+    469:469:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):971 -> a
+    470:472:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):972:974 -> a
+    473:473:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isStaticPut():489:489 -> a
+    473:473:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):974 -> a
+    474:475:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):974:975 -> a
+    476:478:com.android.tools.r8.graph.DexEncodedMethod toRenamedHolderMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):988:990 -> a
+    479:489:com.android.tools.r8.graph.DexEncodedMethod toEmulateDispatchLibraryMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.graph.AppView):1001:1011 -> a
+    490:490:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    490:490:com.android.tools.r8.graph.DexEncodedMethod toEmulateDispatchLibraryMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.graph.AppView):1011 -> a
+    491:496:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1048:1053 -> a
+    497:497:void com.android.tools.r8.graph.AccessFlags.demoteFromFinal():241:241 -> a
+    497:497:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1053 -> a
+    498:505:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1055:1062 -> a
+    506:506:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():168:168 -> a
+    506:506:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1062 -> a
+    507:507:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1065:1065 -> a
+    508:508:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    508:508:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1065 -> a
+    509:526:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1067:1084 -> a
+    527:527:void com.android.tools.r8.graph.MethodAccessFlags.setBridge():140:140 -> a
+    527:527:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1084 -> a
+    528:531:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1086:1089 -> a
+    532:535:void lambda$toForwardingMethod$4(com.android.tools.r8.graph.UseRegistry):1078:1081 -> a
+    536:554:com.android.tools.r8.graph.DexEncodedMethod createDesugaringForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):1094:1112 -> a
+    555:555:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    555:555:com.android.tools.r8.graph.DexEncodedMethod createDesugaringForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):1112 -> a
+    556:567:com.android.tools.r8.graph.DexCode rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexItemFactory,boolean):1135:1146 -> a
+    568:578:com.android.tools.r8.graph.DexCode rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexItemFactory,boolean):1145:1155 -> a
+    579:580:void setOptimizationInfo(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):1216:1217 -> a
+    581:582:void joinCallSiteOptimizationInfo(com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo,com.android.tools.r8.graph.AppView):1227:1228 -> a
+    1:2:boolean isStatic():378:379 -> a0
+    1:1:com.android.tools.r8.graph.Code access$400(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> b
+    2:5:void upgradeClassFileVersion(int):658:661 -> b
+    6:6:void lambda$toInitializerForwardingBridge$0(com.android.tools.r8.graph.UseRegistry):943:943 -> b
+    7:34:com.android.tools.r8.graph.DexEncodedMethod toStaticForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):1017:1044 -> b
+    1:2:boolean isSyntheticMethod():392:393 -> b0
+    1:1:com.android.tools.r8.graph.DexEncodedMethod$CompilationState access$500(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> c
+    2:5:void lambda$toStaticForwardingBridge$3(com.android.tools.r8.graph.UseRegistry):1032:1035 -> c
+    1:2:boolean isVirtualMethod():330:331 -> c0
+    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> c0
+    3:3:boolean isVirtualMethod():331 -> c0
+    1:7:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):604:610 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):615:615 -> collectMixedSectionItems
+    1:1:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo access$600(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> d
+    2:5:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1189:1192 -> d
+    6:6:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> d
+    6:6:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1192 -> d
+    7:7:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1194:1194 -> d
+    1:2:void markNotProcessed():539:540 -> d0
+    1:1:com.android.tools.r8.kotlin.KotlinMemberInfo access$700(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> e
+    2:2:com.android.tools.r8.graph.DexEncodedMethod asDexEncodedMethod():1179:1179 -> e
+    1:2:java.lang.String qualifiedName():665:666 -> e0
+    1:1:int access$800(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> f
+    1:2:void removeCode():642:643 -> f0
+    1:1:com.android.tools.r8.graph.DexEncodedMethod$Builder builder(com.android.tools.r8.graph.DexEncodedMethod):1244:1244 -> g
+    1:1:void setObsolete():178:178 -> g0
+    1:4:void copyMetadata(com.android.tools.r8.graph.DexEncodedMethod):1232:1235 -> h
+    1:1:boolean shouldNotHaveCode():629:629 -> h0
+    1:5:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):186:190 -> i
+    6:6:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():168:168 -> i
+    6:6:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):190 -> i
+    7:8:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):191:192 -> i
+    1:7:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():713:719 -> i0
+    8:8:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():168:168 -> i0
+    8:8:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():719 -> i0
+    9:9:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():720:720 -> i0
+    1:1:boolean isDexEncodedMethod():1173:1173 -> j
+    2:2:com.android.tools.r8.graph.DexEncodedMethod$Builder syntheticBuilder(com.android.tools.r8.graph.DexEncodedMethod):1240:1240 -> j
+    1:7:com.android.tools.r8.graph.DexEncodedMethod toEmptyThrowingMethodCf():784:790 -> j0
+    1:10:com.android.tools.r8.graph.DexEncodedMethod toEmptyThrowingMethodDex():760:769 -> k0
+    1:2:boolean isStaticMember():384:385 -> l
+    1:2:com.android.tools.r8.graph.DexMethod toReference():1167:1168 -> l0
+    1:2:com.android.tools.r8.graph.DexMethod toReference():1167:1168 -> m
+    1:2:com.android.tools.r8.graph.DexReference toReference():79 -> m
+    1:9:com.android.tools.r8.graph.DexEncodedMethod toStaticMethodWithoutThis():1119:1127 -> m0
+    10:10:void setObsolete():178:178 -> m0
+    10:10:com.android.tools.r8.graph.DexEncodedMethod toStaticMethodWithoutThis():1128 -> m0
+    1:2:com.android.tools.r8.graph.DexMethod toReference():1167:1168 -> n
+    1:2:com.android.tools.r8.graph.DexMember toReference():79 -> n
+    1:1:void unsetObsolete():205:205 -> n0
+    1:8:com.android.tools.r8.graph.CfCode buildEmptyThrowingCfCode():773:780 -> o
+    1:2:com.android.tools.r8.graph.DexCode buildEmptyThrowingDexCode():749:750 -> p
+    1:1:void checkIfObsolete():166:166 -> q
+    1:2:java.lang.String codeToString():1161:1162 -> r
+    1:2:java.lang.String descriptor():670:671 -> s
+    1:2:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo getCallSiteOptimizationInfo():1221:1222 -> t
+    1:2:java.lang.String toSourceString():708:709 -> toSourceString
+    1:2:java.lang.String toString():597:598 -> toString
+    1:3:int getClassFileVersion():647:649 -> u
+    1:2:com.android.tools.r8.graph.Code getCode():637:638 -> v
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getDefaultInterfaceMethodImplementation():182:182 -> w
+    1:1:com.android.tools.r8.kotlin.KotlinMemberInfo getKotlinMemberInfo():397:397 -> x
+    1:5:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo getMutableOptimizationInfo():1208:1212 -> y
+    1:2:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo getOptimizationInfo():1203:1204 -> z
+com.android.tools.r8.graph.DexEncodedMethod$1 -> com.android.tools.r8.graph.V$a:
+com.android.tools.r8.graph.DexEncodedMethod$Builder -> com.android.tools.r8.graph.V$b:
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState compilationState -> f
+    com.android.tools.r8.graph.DexAnnotationSet annotations -> c
+    com.android.tools.r8.graph.Code code -> e
+    com.android.tools.r8.kotlin.KotlinMemberInfo kotlinMemberInfo -> h
+    com.android.tools.r8.graph.ParameterAnnotationsList parameterAnnotations -> d
+    boolean d8R8Synthesized -> j
+    boolean $assertionsDisabled -> k
+    int classFileVersion -> i
+    com.android.tools.r8.graph.MethodAccessFlags accessFlags -> b
+    com.android.tools.r8.graph.DexMethod method -> a
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo optimizationInfo -> g
+    1:1:void <clinit>():1247:1247 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$1):1247:1247 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod,boolean,com.android.tools.r8.graph.DexEncodedMethod$1):1247:1247 -> <init>
+    3:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod):1261:1261 -> <init>
+    4:22:void <init>(com.android.tools.r8.graph.DexEncodedMethod,boolean):1264:1282 -> <init>
+    23:23:void <init>(com.android.tools.r8.graph.DexEncodedMethod,boolean):1278:1278 -> <init>
+    1:1:com.android.tools.r8.graph.MethodAccessFlags access$000(com.android.tools.r8.graph.DexEncodedMethod$Builder):1247:1247 -> a
+    2:2:void setMethod(com.android.tools.r8.graph.DexMethod):1287:1287 -> a
+    3:22:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1296:1315 -> a
+    23:23:com.android.tools.r8.graph.DexEncodedMethod$Builder setParameterAnnotations(com.android.tools.r8.graph.ParameterAnnotationsList):1291:1291 -> a
+    23:23:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1315 -> a
+    24:26:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1318:1320 -> a
+    27:27:com.android.tools.r8.graph.DexEncodedMethod$Builder setParameterAnnotations(com.android.tools.r8.graph.ParameterAnnotationsList):1291:1291 -> a
+    27:27:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1318 -> a
+    28:30:com.android.tools.r8.graph.DexEncodedMethod$Builder adjustOptimizationInfoAfterRemovingThisParameter():1340:1342 -> a
+    31:31:void setCode(com.android.tools.r8.graph.Code):1348:1348 -> a
+    1:6:com.android.tools.r8.graph.DexEncodedMethod build():1352:1357 -> b
+    7:20:com.android.tools.r8.graph.DexEncodedMethod build():1356:1369 -> b
+    1:1:com.android.tools.r8.graph.DexEncodedMethod$Builder promoteToStatic():1325:1325 -> c
+    2:2:void com.android.tools.r8.graph.AccessFlags.promoteToStatic():254:254 -> c
+    2:2:com.android.tools.r8.graph.DexEncodedMethod$Builder promoteToStatic():1325 -> c
+    1:5:com.android.tools.r8.graph.DexEncodedMethod$Builder withoutThisParameter():1330:1334 -> d
+com.android.tools.r8.graph.DexEncodedMethod$CompilationState -> com.android.tools.r8.graph.V$c:
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SAME_NEST -> f
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SAME_CLASS -> g
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_NOT_INLINING_CANDIDATE -> b
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_ANY -> c
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SUBCLASS -> d
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SAME_PACKAGE -> e
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState NOT_PROCESSED -> a
+    com.android.tools.r8.graph.DexEncodedMethod$CompilationState[] $VALUES -> h
+    1:24:void <clinit>():93:116 -> <clinit>
+    25:25:void <clinit>():89:89 -> <clinit>
+    1:1:void <init>(java.lang.String,int):89:89 -> <init>
+com.android.tools.r8.graph.DexField -> com.android.tools.r8.graph.W:
+    com.android.tools.r8.graph.DexString name -> e
+    com.android.tools.r8.graph.DexType type -> d
+    1:6:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,boolean):16:21 -> <init>
+    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):10:10 -> a
+    2:2:boolean match(com.android.tools.r8.graph.DexEncodedMember):10:10 -> a
+    3:3:int slowCompareTo(java.lang.Object):10:10 -> a
+    4:4:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):61:61 -> a
+    5:13:int slowCompareTo(com.android.tools.r8.graph.DexField):81:89 -> a
+    14:14:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):107:107 -> a
+    15:193:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):0:178 -> a
+    15:193:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):107 -> a
+    194:194:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):111:111 -> a
+    195:450:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):0:255 -> a
+    195:450:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):111 -> a
+    451:451:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):115:115 -> a
+    452:630:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):0:178 -> a
+    452:630:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):115 -> a
+    631:631:boolean match(com.android.tools.r8.graph.DexEncodedField):125:125 -> a
+    632:632:boolean match(com.android.tools.r8.graph.DexField):120:120 -> a
+    632:632:boolean match(com.android.tools.r8.graph.DexEncodedField):125 -> a
+    com.android.tools.r8.graph.DexField asDexField() -> c
+    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):51:52 -> collectIndexedItems
+    3:153:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    3:153:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52 -> collectIndexedItems
+    154:399:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    154:399:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    154:399:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52 -> collectIndexedItems
+    400:400:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):53:53 -> collectIndexedItems
+    401:551:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    401:551:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):53 -> collectIndexedItems
+    552:797:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    552:797:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    552:797:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):53 -> collectIndexedItems
+    798:798:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):54:54 -> collectIndexedItems
+    799:1044:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    799:1044:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):54 -> collectIndexedItems
+    1:1:int compareTo(java.lang.Object):10:10 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.graph.DexField):76:76 -> compareTo
+    2:2:int compareTo(java.lang.Object):10 -> compareTo
+    1:5:boolean computeEquals(java.lang.Object):34:38 -> computeEquals
+    1:3:int computeHashCode():27:29 -> computeHashCode
+    boolean isDexField() -> f
+    1:1:java.lang.String toSmaliString():134:134 -> toSmaliString
+    1:1:java.lang.String toSourceString():139:139 -> toSourceString
+    1:1:java.lang.String toString():45:45 -> toString
+com.android.tools.r8.graph.DexItem -> com.android.tools.r8.graph.X:
+    1:1:void <init>():12:12 -> <init>
+    1:1:void collectAll(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem[]):15:15 -> a
+    2:2:void lambda$collectAll$0(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem):15:15 -> a
+    3:3:void collectAll(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem[]):19:19 -> a
+    4:4:void lambda$collectAll$1(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem):19:19 -> a
+    5:5:void collectAll(com.android.tools.r8.dex.MixedSectionCollection,java.util.Collection):24:24 -> a
+    6:8:void consumeArray(com.android.tools.r8.graph.DexItem[],java.util.function.Consumer):35:37 -> a
+    9:9:java.util.stream.Stream filter(java.util.stream.Stream,java.lang.Class):68:68 -> a
+    1:1:void lambda$collectAll$2(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem):24:24 -> b
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):46:46 -> collectIndexedItems
+    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod):50:50 -> collectIndexedItems
+    1:1:java.lang.String toSmaliString():60:60 -> toSmaliString
+    1:1:java.lang.String toSourceString():64:64 -> toSourceString
+com.android.tools.r8.graph.DexItemFactory -> com.android.tools.r8.graph.Y:
+    com.android.tools.r8.graph.DexString getClassMethodName -> A0
+    com.android.tools.r8.graph.DexString boxedFloatDescriptor -> Q
+    com.android.tools.r8.graph.DexString classDescriptor -> b1
+    com.android.tools.r8.graph.DexType boxedNumberType -> F2
+    com.android.tools.r8.graph.DexType methodHandleType -> g3
+    com.android.tools.r8.graph.DexType iteratorType -> G4
+    java.util.concurrent.ConcurrentHashMap referenceTypeLatticeElements -> q
+    com.android.tools.r8.graph.DexString getSimpleNameName -> I0
+    java.util.Set libraryMethodsReturningNonNull -> W4
+    com.android.tools.r8.graph.DexString annotationDescriptor -> j1
+    com.android.tools.r8.graph.DexString substringName -> r0
+    com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods stringBufferMethods -> S3
+    com.android.tools.r8.graph.DexString longDescriptor -> A
+    com.android.tools.r8.graph.DexString exceptionInInitializerErrorDescriptor -> R1
+    java.util.Map types -> c
+    com.android.tools.r8.graph.DexType annotationSynthesizedClassMap -> x4
+    com.android.tools.r8.graph.DexType shortArrayType -> w2
+    java.util.IdentityHashMap internalSentinels -> e5
+    com.android.tools.r8.graph.DexProto twrCloseResourceMethodProto -> l4
+    com.android.tools.r8.graph.DexString initMethodName -> z0
+    com.android.tools.r8.graph.DexString newUpdaterName -> Z1
+    com.android.tools.r8.graph.DexType javaUtilLoggingLoggerType -> O3
+    com.android.tools.r8.graph.DexType annotationEnclosingClass -> p4
+    com.android.tools.r8.graph.DexType voidType -> o2
+    com.android.tools.r8.graph.DexString unknownTypeName -> d5
+    com.android.tools.r8.graph.DexString unboxIntMethodName -> a0
+    com.android.tools.r8.graph.DexType throwableType -> G3
+    com.android.tools.r8.graph.DexItemFactory$ThrowableMethods throwableMethods -> Z3
+    com.android.tools.r8.graph.DexString boxedIntDescriptor -> R
+    com.android.tools.r8.graph.DexType booleanType -> g2
+    com.android.tools.r8.graph.DexString optionalDescriptor -> I1
+    com.android.tools.r8.graph.DexString twrCloseResourceMethodName -> k4
+    com.android.tools.r8.graph.DexString endsWithMethodName -> i0
+    com.android.tools.r8.graph.DexMethod deserializeLambdaMethod -> R4
+    com.android.tools.r8.graph.DexItemFactory$JavaUtilArraysMethods utilArraysMethods -> Y3
+    com.android.tools.r8.graph.DexString icceDescriptor -> Q1
+    com.android.tools.r8.graph.DexString assertionsDisabled -> Q0
+    com.android.tools.r8.graph.DexString varHandleDescriptor -> r1
+    com.android.tools.r8.graph.DexString shortDescriptor -> B
+    java.util.Map fields -> d
+    com.android.tools.r8.graph.DexType classType -> W2
+    com.android.tools.r8.graph.DexType optionalType -> x3
+    com.android.tools.r8.graph.DexString stringArrayDescriptor -> Y0
+    com.android.tools.r8.graph.DexString setDescriptor -> z1
+    com.android.tools.r8.graph.DexType enumType -> O2
+    com.android.tools.r8.graph.DexType mapEntryType -> p3
+    com.android.tools.r8.graph.DexString classConstructorMethodName -> b2
+    com.android.tools.r8.graph.DexString mapDescriptor -> A1
+    com.android.tools.r8.graph.DexString boxedLongDescriptor -> S
+    com.android.tools.r8.graph.DexType varHandleType -> f3
+    com.android.tools.r8.graph.DexString enumDescriptor -> i1
+    com.android.tools.r8.graph.DexType boxedShortType -> E2
+    com.android.tools.r8.graph.DexString getCanonicalNameName -> H0
+    com.android.tools.r8.graph.DexType lookupType -> F4
+    java.util.Set libraryMethodsReturningReceiver -> V4
+    com.android.tools.r8.graph.DexString newInstanceName -> P0
+    com.android.tools.r8.graph.DexString stringBufferDescriptor -> q1
+    com.android.tools.r8.graph.DexString cloneMethodName -> q0
+    com.android.tools.r8.graph.DexType longArrayType -> v2
+    com.android.tools.r8.graph.DexString voidDescriptor -> C
+    com.android.tools.r8.graph.DexType annotationThrows -> w4
+    com.android.tools.r8.graph.DexString referenceFieldUpdaterDescriptor -> Y1
+    com.android.tools.r8.graph.DexString wrapperFieldName -> y0
+    com.android.tools.r8.graph.DexType shortType -> n2
+    java.util.Map protos -> e
+    com.android.tools.r8.graph.DexType reflectiveOperationExceptionType -> N3
+    com.android.tools.r8.graph.DexType annotationDefault -> o4
+    com.android.tools.r8.graph.DexString objectArrayDescriptor -> a1
+    com.android.tools.r8.graph.DexString boxedShortDescriptor -> T
+    com.android.tools.r8.graph.DexString booleanDescriptor -> u
+    com.android.tools.r8.graph.DexString startsWithMethodName -> h0
+    com.android.tools.r8.graph.DexString runnableDescriptor -> H1
+    com.android.tools.r8.graph.DexType runtimeExceptionType -> F3
+    com.android.tools.r8.graph.DexItemFactory$PolymorphicMethods polymorphicMethods -> i4
+    com.android.tools.r8.graph.DexMethod metafactoryAltMethod -> Q4
+    com.android.tools.r8.graph.DexString compareToIgnoreCaseMethodName -> p0
+    com.android.tools.r8.graph.DexString illegalAccessErrorDescriptor -> P1
+    com.android.tools.r8.graph.DexType referenceFieldUpdaterType -> V2
+    com.android.tools.r8.graph.DexType runnableType -> w3
+    com.android.tools.r8.graph.DexString descriptorSeparator -> D
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap advanceLines -> h
+    com.android.tools.r8.graph.DexString stringDescriptor -> X0
+    com.android.tools.r8.graph.DexString listDescriptor -> y1
+    com.android.tools.r8.graph.DexItemFactory$StringMethods stringMethods -> W3
+    com.android.tools.r8.graph.DexType classArrayType -> N2
+    com.android.tools.r8.graph.DexType mapType -> o3
+    java.util.Map methods -> f
+    com.android.tools.r8.graph.DexString constructorMethodName -> a2
+    com.android.tools.r8.graph.DexString ordinalMethodName -> C0
+    com.android.tools.r8.graph.DexString autoCloseableDescriptor -> d1
+    com.android.tools.r8.graph.DexType javaIoPrintStreamType -> e3
+    com.android.tools.r8.graph.DexType callSiteType -> E4
+    java.util.Map setFiles -> o
+    com.android.tools.r8.graph.DexType boxedLongType -> D2
+    com.android.tools.r8.graph.DexItemFactory$PrimitiveTypesBoxedTypeFields primitiveTypesBoxedTypeFields -> f4
+    com.android.tools.r8.graph.DexString getDeclaredConstructorName -> K0
+    java.util.Set libraryMethodsWithReturnValueDependingOnlyOnArguments -> Y4
+    com.android.tools.r8.graph.DexString collectionsDescriptor -> l1
+    com.android.tools.r8.graph.DexItemFactory$AssertionErrorMethods assertionErrorMethods -> a4
+    com.android.tools.r8.graph.DexString valueOfMethodName -> t0
+    com.android.tools.r8.graph.DexString noSuchFieldErrorDescriptor -> T1
+    com.android.tools.r8.graph.DexType annotationSourceDebugExtension -> v4
+    com.android.tools.r8.graph.DexType intArrayType -> u2
+    com.android.tools.r8.kotlin.Kotlin kotlin -> h4
+    com.android.tools.r8.com.google.common.collect.BiMap primitiveToBoxed -> O4
+    com.android.tools.r8.graph.DexType npeType -> M3
+    com.android.tools.r8.graph.DexString boxedBooleanDescriptor -> M
+    com.android.tools.r8.graph.DexType longType -> m2
+    com.android.tools.r8.graph.DexString enumValuesFieldName -> d2
+    com.android.tools.r8.graph.DexString collectionDescriptor -> C1
+    com.android.tools.r8.graph.DexString unboxFloatMethodName -> c0
+    java.util.Set libraryClassesWithoutStaticInitialization -> a5
+    com.android.tools.r8.graph.DexItemFactory$DoubleMethods doubleMethods -> X3
+    com.android.tools.r8.graph.DexItemFactory$ConstructorMethods constructorMethods -> c4
+    boolean $assertionsDisabled -> f5
+    java.util.Map setInlineFrames -> p
+    com.android.tools.r8.graph.DexType intConsumer -> E3
+    com.android.tools.r8.graph.DexString optionalIntDescriptor -> K1
+    com.android.tools.r8.graph.DexString deserializeLambdaMethodName -> m4
+    com.android.tools.r8.graph.DexString equalsIgnoreCaseMethodName -> k0
+    com.android.tools.r8.graph.DexMethod stringConcatWithConstantsMethod -> T4
+    com.android.tools.r8.graph.DexString invokeExactMethodName -> S0
+    com.android.tools.r8.graph.DexString methodTypeDescriptor -> t1
+    com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin setEpilogueBegin -> m
+    com.android.tools.r8.graph.DexType strictMathType -> U2
+    com.android.tools.r8.graph.DexType consumerType -> v3
+    com.android.tools.r8.graph.DexType objectArrayType -> M2
+    com.android.tools.r8.graph.DexType setType -> n3
+    com.android.tools.r8.graph.DexString boxedByteDescriptor -> N
+    com.android.tools.r8.graph.DexString classLoaderDescriptor -> c1
+    com.android.tools.r8.graph.DexString finalizeMethodName -> B0
+    com.android.tools.r8.graph.DexType boxedIntType -> C2
+    com.android.tools.r8.graph.DexType metafactoryType -> D4
+    com.android.tools.r8.graph.DexType javaLangSystemType -> d3
+    com.android.tools.r8.graph.DexString objectsDescriptor -> k1
+    com.android.tools.r8.graph.DexString getTypeNameName -> J0
+    com.android.tools.r8.graph.DexString noClassDefFoundErrorDescriptor -> S1
+    com.android.tools.r8.graph.DexItemFactory$BooleanMembers booleanMembers -> T3
+    com.android.tools.r8.graph.DexString trimName -> s0
+    com.android.tools.r8.graph.DexType floatArrayType -> t2
+    com.android.tools.r8.graph.DexType annotationSignature -> u4
+    com.android.tools.r8.graph.DexType intType -> l2
+    com.android.tools.r8.graph.DexString boxedCharDescriptor -> O
+    com.android.tools.r8.graph.DexType noSuchFieldErrorType -> L3
+    com.android.tools.r8.graph.DexString boxedDoubleDescriptor -> P
+    com.android.tools.r8.graph.DexString unboxLongMethodName -> b0
+    com.android.tools.r8.graph.DexString mapEntryDescriptor -> B1
+    com.android.tools.r8.graph.DexString thisName -> c2
+    com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd setPrologueEnd -> n
+    com.android.tools.r8.graph.DexType longConsumer -> D3
+    java.util.concurrent.ConcurrentHashMap classTypeLatticeInterfaces -> r
+    com.android.tools.r8.graph.DexString equalsMethodName -> j0
+    com.android.tools.r8.graph.DexString optionalDoubleDescriptor -> J1
+    com.android.tools.r8.graph.DexString invokeMethodName -> R0
+    com.android.tools.r8.graph.DexString methodHandleDescriptor -> s1
+    java.util.Map strings -> b
+    com.android.tools.r8.graph.DexType mathType -> T2
+    com.android.tools.r8.graph.DexType supplierType -> u3
+    com.android.tools.r8.graph.DexString objectDescriptor -> Z0
+    com.android.tools.r8.graph.DexType objectType -> L2
+    com.android.tools.r8.graph.DexType listType -> m3
+    com.android.tools.r8.graph.DexType comparableType -> M4
+    com.android.tools.r8.graph.DexType externalizableType -> K4
+    com.android.tools.r8.graph.DexString desiredAssertionStatusMethodName -> E0
+    com.android.tools.r8.graph.DexString constructorDescriptor -> f1
+    com.android.tools.r8.graph.DexType boxedFloatType -> B2
+    com.android.tools.r8.graph.DexType stringBufferType -> c3
+    com.android.tools.r8.graph.DexString unboxCharMethodName -> Y
+    com.android.tools.r8.graph.DexString intDescriptor -> z
+    com.android.tools.r8.graph.DexType dalvikCriticalNativeAnnotation -> C4
+    com.android.tools.r8.graph.DexString getDeclaredFieldName -> M0
+    com.android.tools.r8.graph.DexString mathDescriptor -> n1
+    com.android.tools.r8.graph.DexString toStringMethodName -> v0
+    com.android.tools.r8.graph.DexString reflectiveOperationExceptionDescriptor -> V1
+    com.android.tools.r8.graph.DexType annotationMethodParameters -> t4
+    com.android.tools.r8.graph.DexType doubleArrayType -> s2
+    com.android.tools.r8.graph.DexString floatArrayDescriptor -> I
+    com.android.tools.r8.graph.DexType noClassDefFoundErrorType -> K3
+    com.android.tools.r8.graph.DexType floatType -> k2
+    com.android.tools.r8.graph.DexString throwableArrayDescriptor -> f2
+    com.android.tools.r8.graph.DexString callableDescriptor -> E1
+    com.android.tools.r8.graph.DexString isEmptyMethodName -> e0
+    com.android.tools.r8.graph.DexType doubleConsumer -> C3
+    com.android.tools.r8.graph.DexString unboxShortMethodName -> Z
+    com.android.tools.r8.graph.DexString streamDescriptor -> M1
+    com.android.tools.r8.graph.DexString indexOfMethodName -> m0
+    com.android.tools.r8.graph.DexString assertionErrorDescriptor -> U0
+    com.android.tools.r8.graph.DexString proxyDescriptor -> v1
+    com.android.tools.r8.graph.DexType iterableType -> S2
+    com.android.tools.r8.graph.DexType callableType -> t3
+    com.android.tools.r8.graph.DexString intArrayDescriptor -> J
+    com.android.tools.r8.graph.DexType cloneableType -> L4
+    com.android.tools.r8.graph.DexType stringArrayType -> K2
+    com.android.tools.r8.graph.DexType serviceLoaderConfigurationErrorType -> l3
+    com.android.tools.r8.graph.DexType proxyType -> j3
+    com.android.tools.r8.graph.DexString classArrayDescriptor -> e1
+    com.android.tools.r8.graph.DexType charSequenceArrayType -> I2
+    com.android.tools.r8.graph.DexString nameMethodName -> D0
+    com.android.tools.r8.graph.DexType serializableType -> J4
+    com.android.tools.r8.utils.LRUCacheTable leastUpperBoundOfInterfacesTable -> s
+    java.util.Set libraryTypesAssumedToBePresent -> Z4
+    com.android.tools.r8.graph.DexType nullValueType -> c5
+    com.android.tools.r8.graph.DexType stringBuilderType -> b3
+    com.android.tools.r8.graph.DexString getFieldName -> L0
+    com.android.tools.r8.graph.DexString iterableDescriptor -> m1
+    com.android.tools.r8.graph.DexType boxedDoubleType -> A2
+    com.android.tools.r8.graph.DexType dalvikFastNativeAnnotation -> B4
+    com.android.tools.r8.graph.DexType boxedCharType -> z2
+    com.android.tools.r8.graph.DexItemFactory$EnumMethods enumMethods -> d4
+    com.android.tools.r8.graph.DexString npeDescriptor -> U1
+    com.android.tools.r8.graph.DexString valuesMethodName -> u0
+    com.android.tools.r8.graph.DexType charArrayType -> r2
+    com.android.tools.r8.graph.DexType annotationMemberClasses -> s4
+    com.android.tools.r8.graph.DexString longArrayDescriptor -> K
+    com.android.tools.r8.graph.DexType doubleType -> j2
+    com.android.tools.r8.graph.DexString unboxDoubleMethodName -> d0
+    com.android.tools.r8.graph.DexString comparatorDescriptor -> D1
+    com.android.tools.r8.graph.DexType exceptionInInitializerErrorType -> J3
+    com.android.tools.r8.graph.DexString enabledFieldName -> e2
+    com.android.tools.r8.graph.DexString contentEqualsMethodName -> l0
+    com.android.tools.r8.graph.DexType streamType -> B3
+    com.android.tools.r8.graph.DexString optionalLongDescriptor -> L1
+    com.android.tools.r8.graph.DexType methodType -> Z2
+    com.android.tools.r8.graph.DexMethod stringConcatMethod -> U4
+    com.android.tools.r8.graph.DexString runtimeExceptionDescriptor -> T0
+    com.android.tools.r8.graph.DexString invocationHandlerDescriptor -> u1
+    com.android.tools.r8.graph.DexType collectionsType -> R2
+    com.android.tools.r8.graph.DexType comparatorType -> s3
+    com.android.tools.r8.graph.DexType stringConcatFactoryType -> S4
+    com.android.tools.r8.graph.DexString shortArrayDescriptor -> L
+    com.android.tools.r8.graph.DexType stringType -> J2
+    com.android.tools.r8.graph.DexType serviceLoaderType -> k3
+    com.android.tools.r8.graph.DexType invocationHandlerType -> i3
+    com.android.tools.r8.graph.DexType enumerationType -> I4
+    com.android.tools.r8.graph.DexType charSequenceType -> H2
+    com.android.tools.r8.graph.DexItemFactory$AtomicFieldUpdaterMethods atomicFieldUpdaterMethods -> g4
+    com.android.tools.r8.graph.DexString boxedNumberDescriptor -> U
+    com.android.tools.r8.graph.DexString byteDescriptor -> v
+    com.android.tools.r8.graph.DexString getNameName -> G0
+    com.android.tools.r8.graph.DexItemFactory$ObjectMethods objectMethods -> V3
+    com.android.tools.r8.graph.DexString methodDescriptor -> h1
+    com.android.tools.r8.graph.DexItemFactory$ProxyMethods proxyMethods -> j4
+    com.android.tools.r8.graph.DexType autoCloseableType -> a3
+    com.android.tools.r8.graph.DexType annotationReachabilitySensitive -> A4
+    com.android.tools.r8.graph.DexString getDeclaredMethodName -> O0
+    com.android.tools.r8.graph.DexString stringBuilderDescriptor -> p1
+    com.android.tools.r8.graph.DexType annotationCovariantReturnTypes -> z4
+    com.android.tools.r8.graph.DexType boxedByteType -> y2
+    com.android.tools.r8.graph.DexProto deserializeLambdaMethodProto -> n4
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap advancePCs -> i
+    com.android.tools.r8.graph.DexString booleanArrayDescriptor -> E
+    com.android.tools.r8.graph.DexString convertMethodName -> x0
+    com.android.tools.r8.graph.DexString longFieldUpdaterDescriptor -> X1
+    com.android.tools.r8.graph.DexType androidOsBuildVersionType -> Q3
+    com.android.tools.r8.graph.DexType annotationInnerClass -> r4
+    com.android.tools.r8.graph.DexType byteArrayType -> q2
+    java.util.Map methodHandles -> g
+    com.android.tools.r8.graph.DexType charType -> i2
+    com.android.tools.r8.graph.DexType icceType -> I3
+    com.android.tools.r8.graph.DexString consumerDescriptor -> G1
+    com.android.tools.r8.graph.DexString boxedVoidDescriptor -> V
+    com.android.tools.r8.graph.DexString charDescriptor -> w
+    com.android.tools.r8.graph.DexString containsMethodName -> g0
+    boolean skipNameValidationForTesting -> b5
+    com.android.tools.r8.graph.DexMethod metafactoryMethod -> P4
+    com.android.tools.r8.graph.DexType optionalLongType -> A3
+    com.android.tools.r8.graph.DexString throwableDescriptor -> O1
+    com.android.tools.r8.graph.DexString compareToMethodName -> o0
+    com.android.tools.r8.graph.DexItemFactory$ObjectsMethods objectsMethods -> U3
+    com.android.tools.r8.graph.DexType fieldType -> Y2
+    com.android.tools.r8.graph.DexType optionalIntType -> z3
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap defaults -> j
+    com.android.tools.r8.graph.DexString byteArrayDescriptor -> F
+    com.android.tools.r8.graph.DexString charSequenceArrayDescriptor -> W0
+    com.android.tools.r8.graph.DexString serviceLoaderConfigurationErrorDescriptor -> x1
+    com.android.tools.r8.graph.DexType objectsType -> Q2
+    com.android.tools.r8.graph.DexType collectionType -> r3
+    com.android.tools.r8.graph.DexType boxedVoidType -> G2
+    com.android.tools.r8.graph.DexType listIteratorType -> H4
+    com.android.tools.r8.graph.DexItemFactory$ServiceLoaderMethods serviceLoaderMethods -> N4
+    com.android.tools.r8.graph.DexType methodTypeType -> h3
+    com.android.tools.r8.graph.DexString fieldDescriptor -> g1
+    com.android.tools.r8.graph.DexString forNameMethodName -> F0
+    com.android.tools.r8.graph.DexString unboxBooleanMethodName -> W
+    com.android.tools.r8.graph.DexString doubleDescriptor -> x
+    com.android.tools.r8.graph.DexString getMethodName -> N0
+    com.android.tools.r8.graph.DexString strictMathDescriptor -> o1
+    com.android.tools.r8.graph.DexItemFactory$ClassMethods classMethods -> b4
+    java.util.Map libraryMethodsWithoutSideEffects -> X4
+    com.android.tools.r8.graph.DexType boxedBooleanType -> x2
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap endLocals -> k
+    com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods stringBuilderMethods -> R3
+    com.android.tools.r8.graph.DexType annotationCovariantReturnType -> y4
+    com.android.tools.r8.graph.DexString intFieldUpdaterDescriptor -> W1
+    com.android.tools.r8.graph.DexString charArrayDescriptor -> G
+    com.android.tools.r8.graph.DexString internMethodName -> w0
+    com.android.tools.r8.graph.DexType booleanArrayType -> p2
+    com.android.tools.r8.graph.DexType androidUtilLogType -> P3
+    com.android.tools.r8.graph.DexType annotationEnclosingMethod -> q4
+    com.android.tools.r8.graph.DexType byteType -> h2
+    com.android.tools.r8.graph.DexType illegalAccessErrorType -> H3
+    com.android.tools.r8.graph.DexString lengthMethodName -> f0
+    com.android.tools.r8.graph.DexString supplierDescriptor -> F1
+    com.android.tools.r8.graph.DexString unboxByteMethodName -> X
+    com.android.tools.r8.graph.DexString floatDescriptor -> y
+    java.util.Set possibleCompilerSynthesizedTypes -> a
+    com.android.tools.r8.graph.DexString lastIndexOfMethodName -> n0
+    com.android.tools.r8.graph.DexString arraysDescriptor -> N1
+    boolean sorted -> t
+    com.android.tools.r8.graph.DexType classLoaderType -> X2
+    com.android.tools.r8.graph.DexType optionalDoubleType -> y3
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap restartLocals -> l
+    com.android.tools.r8.graph.DexItemFactory$NullPointerExceptionMethods npeMethods -> e4
+    com.android.tools.r8.graph.DexString charSequenceDescriptor -> V0
+    com.android.tools.r8.graph.DexString serviceLoaderDescriptor -> w1
+    com.android.tools.r8.graph.DexString doubleArrayDescriptor -> H
+    com.android.tools.r8.graph.DexType annotationType -> P2
+    com.android.tools.r8.graph.DexType abstractMapSimpleEntryType -> q3
+    1:44:void <clinit>():61:104 -> <clinit>
+    1:1:void <init>():108:108 -> <init>
+    2:435:void <init>():66:499 -> <init>
+    436:484:void <init>():489:537 -> <init>
+    485:501:void <init>():527:543 -> <init>
+    502:523:void <init>():540:561 -> <init>
+    524:544:void <init>():552:572 -> <init>
+    545:582:void <init>():565:602 -> <init>
+    583:587:void <init>():601:605 -> <init>
+    588:591:void <init>():604:607 -> <init>
+    592:631:void <init>():596:635 -> <init>
+    632:634:void <init>():109:111 -> <init>
+    635:635:void <init>():110:110 -> <init>
+    com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame lambda$createSetInlineFrame$2(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame) -> a
+    1:1:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):115:115 -> a
+    2:3:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):502:503 -> a
+    4:15:java.util.Set boxedValueOfMethods():512:523 -> a
+    16:18:com.android.tools.r8.graph.DexMethod lambda$boxedValueOfMethods$0(java.util.Map$Entry):515:517 -> a
+    19:19:com.android.tools.r8.utils.Pair lambda$mapToPredicate$1(java.util.function.Predicate,com.android.tools.r8.graph.DexMethod):612:612 -> a
+    20:20:java.util.stream.Stream mapToPredicate(java.util.Set,java.util.function.Predicate):612:612 -> a
+    21:21:void setSkipNameValidationForTesting(boolean):638:638 -> a
+    22:23:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1331:1332 -> a
+    24:24:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):115:115 -> a
+    24:24:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1332 -> a
+    25:26:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1332:1333 -> a
+    27:28:com.android.tools.r8.graph.DexString createString(int,byte[]):1338:1339 -> a
+    29:29:com.android.tools.r8.graph.DexType createStaticallyKnownType(java.lang.String):1387:1387 -> a
+    30:31:com.android.tools.r8.graph.DexType createArrayType(int,com.android.tools.r8.graph.DexType):1432:1433 -> a
+    32:34:com.android.tools.r8.graph.DexField createField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):1437:1439 -> a
+    35:35:com.android.tools.r8.graph.DexField createField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,java.lang.String):1443:1443 -> a
+    36:38:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString):1447:1449 -> a
+    39:42:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1453:1456 -> a
+    43:48:com.android.tools.r8.graph.DexString createShorty(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1522:1527 -> a
+    43:48:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1457 -> a
+    49:49:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1454:1454 -> a
+    50:50:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,java.util.List):1461:1461 -> a
+    51:53:com.android.tools.r8.graph.DexProto protoWithDifferentFirstParameter(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1465:1467 -> a
+    54:57:com.android.tools.r8.graph.DexProto prependTypeToProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto):1471:1474 -> a
+    58:60:com.android.tools.r8.graph.DexProto prependTypeToProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto):1473:1475 -> a
+    61:65:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1488:1492 -> a
+    66:75:com.android.tools.r8.graph.DexType[] applyClassMappingToDexTypes(com.android.tools.r8.graph.DexType[],java.util.function.Function):1509:1518 -> a
+    66:75:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1492 -> a
+    76:82:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1493:1499 -> a
+    83:87:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1498:1502 -> a
+    88:90:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexString):1531:1533 -> a
+    91:91:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,java.lang.String):1537:1537 -> a
+    92:94:com.android.tools.r8.graph.DexMethodHandle createMethodHandle(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.DexMember,boolean):1544:1546 -> a
+    95:96:com.android.tools.r8.graph.DexCallSite createCallSite(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):1555:1556 -> a
+    97:106:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString[]):1564:1573 -> a
+    107:109:com.android.tools.r8.graph.DexDebugEvent$AdvanceLine createAdvanceLine(int):1577:1579 -> a
+    110:112:com.android.tools.r8.graph.DexDebugEvent$SetFile createSetFile(com.android.tools.r8.graph.DexString):1615:1617 -> a
+    113:115:com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame createSetInlineFrame(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):1622:1624 -> a
+    116:116:boolean isClassConstructor(com.android.tools.r8.graph.DexMethod):1632:1632 -> a
+    117:124:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createReferenceTypeLatticeElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView):1665:1672 -> a
+    125:153:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createReferenceTypeLatticeElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView):1671:1699 -> a
+    154:162:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement lambda$createReferenceTypeLatticeElement$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexType):1679:1687 -> a
+    163:174:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement lambda$createReferenceTypeLatticeElement$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexType):1686:1697 -> a
+    175:176:java.util.Set getOrComputeLeastUpperBoundOfImplementedInterfaces(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1704:1705 -> a
+    177:178:java.util.Set lambda$getOrComputeLeastUpperBoundOfImplementedInterfaces$4(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1708:1709 -> a
+    179:183:void assignSortedIndices(java.util.Collection,com.android.tools.r8.naming.NamingLens):1716:1720 -> a
+    184:184:int lambda$assignSortedIndices$5(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.PresortedComparable,com.android.tools.r8.graph.PresortedComparable):1717:1717 -> a
+    185:191:void sort(com.android.tools.r8.naming.NamingLens):1725:1731 -> a
+    192:192:void forAllTypes(java.util.function.Consumer):1748:1748 -> a
+    1:2:com.android.tools.r8.graph.DexString createString(java.lang.String):1343:1344 -> b
+    3:3:com.android.tools.r8.graph.DexString lookupString(int,byte[]):1348:1348 -> b
+    4:4:com.android.tools.r8.graph.DexType createStaticallyKnownType(com.android.tools.r8.graph.DexString):1391:1391 -> b
+    5:9:void addPossiblySynthesizedType(com.android.tools.r8.graph.DexType):1406:1410 -> b
+    5:9:com.android.tools.r8.graph.DexType createStaticallyKnownType(com.android.tools.r8.graph.DexString):1393 -> b
+    10:10:void forEachPossiblyCompilerSynthesizedType(java.util.function.Consumer):1415:1415 -> b
+    11:13:com.android.tools.r8.graph.DexDebugEvent$AdvancePC createAdvancePC(int):1583:1585 -> b
+    14:14:boolean isConstructor(com.android.tools.r8.graph.DexMethod):1628:1628 -> b
+    15:17:void clearTypeLatticeElementsCache():1636:1638 -> b
+    1:1:boolean isLambdaMetafactoryMethod(com.android.tools.r8.graph.DexMethod):646:646 -> c
+    2:2:com.android.tools.r8.graph.DexType createSynthesizedType(java.lang.String):1400:1400 -> c
+    3:7:void addPossiblySynthesizedType(com.android.tools.r8.graph.DexType):1406:1410 -> c
+    3:7:com.android.tools.r8.graph.DexType createSynthesizedType(java.lang.String):1401 -> c
+    8:8:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1420:1420 -> c
+    9:11:com.android.tools.r8.graph.DexDebugEvent$Default createDefault(int):1589:1591 -> c
+    12:12:com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin createSetEpilogueBegin():1607:1607 -> c
+    1:9:com.android.tools.r8.graph.DexType internalCreateType(com.android.tools.r8.graph.DexString):1371:1379 -> d
+    10:14:com.android.tools.r8.graph.DexType internalCreateType(com.android.tools.r8.graph.DexString):1376:1380 -> d
+    15:15:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):115:115 -> d
+    15:15:com.android.tools.r8.graph.DexType internalCreateType(com.android.tools.r8.graph.DexString):1380 -> d
+    16:17:com.android.tools.r8.graph.DexType internalCreateType(com.android.tools.r8.graph.DexString):1380:1381 -> d
+    18:18:com.android.tools.r8.graph.DexType createType(java.lang.String):1424:1424 -> d
+    19:21:com.android.tools.r8.graph.DexDebugEvent$EndLocal createEndLocal(int):1595:1597 -> d
+    22:22:com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd createSetPrologueEnd():1611:1611 -> d
+    1:1:com.android.tools.r8.graph.DexString lookupString(java.lang.String):1352:1352 -> e
+    2:6:java.util.List extractMarkers():1359:1363 -> e
+    7:7:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexString):1428:1428 -> e
+    8:10:com.android.tools.r8.graph.DexDebugEvent$RestartLocal createRestartLocal(int):1601:1603 -> e
+    1:1:boolean getSkipNameValidationForTesting():642:642 -> f
+    1:10:void resetSortedIndices():1735:1744 -> g
+    1:3:boolean verifyNoCachedTypeLatticeElements():1642:1644 -> h
+com.android.tools.r8.graph.DexItemFactory$1 -> com.android.tools.r8.graph.Y$a:
+com.android.tools.r8.graph.DexItemFactory$AssertionErrorMethods -> com.android.tools.r8.graph.Y$b:
+    com.android.tools.r8.graph.DexMethod initMessageAndCause -> b
+    com.android.tools.r8.graph.DexMethod initMessage -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):724:724 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory):728:733 -> <init>
+com.android.tools.r8.graph.DexItemFactory$AtomicFieldUpdaterMethods -> com.android.tools.r8.graph.Y$c:
+    java.util.Set updaters -> d
+    com.android.tools.r8.graph.DexMethod referenceUpdater -> c
+    com.android.tools.r8.graph.DexMethod longUpdater -> b
+    com.android.tools.r8.graph.DexMethod intUpdater -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):1005:1005 -> <init>
+    2:21:void <init>(com.android.tools.r8.graph.DexItemFactory):1011:1030 -> <init>
+    1:1:boolean isFieldUpdater(com.android.tools.r8.graph.DexMethod):1034:1034 -> a
+com.android.tools.r8.graph.DexItemFactory$BooleanMembers -> com.android.tools.r8.graph.Y$d:
+    com.android.tools.r8.graph.DexItemFactory this$0 -> f
+    com.android.tools.r8.graph.DexField TRUE -> b
+    com.android.tools.r8.graph.DexField FALSE -> a
+    com.android.tools.r8.graph.DexMethod valueOf -> e
+    com.android.tools.r8.graph.DexField TYPE -> c
+    com.android.tools.r8.graph.DexMethod booleanValue -> d
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):649:649 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):660:660 -> <init>
+    3:10:void <init>(com.android.tools.r8.graph.DexItemFactory):651:658 -> <init>
+com.android.tools.r8.graph.DexItemFactory$ClassMethods -> com.android.tools.r8.graph.Y$e:
+    com.android.tools.r8.graph.DexMethod newInstance -> m
+    com.android.tools.r8.graph.DexMethod getDeclaredMethod -> l
+    com.android.tools.r8.graph.DexMethod getMethod -> k
+    com.android.tools.r8.graph.DexMethod getDeclaredField -> j
+    com.android.tools.r8.graph.DexMethod getField -> i
+    com.android.tools.r8.graph.DexMethod getDeclaredConstructor -> h
+    com.android.tools.r8.graph.DexMethod getTypeName -> g
+    com.android.tools.r8.graph.DexMethod getSimpleName -> f
+    com.android.tools.r8.graph.DexMethod getCanonicalName -> e
+    com.android.tools.r8.graph.DexMethod getName -> d
+    com.android.tools.r8.graph.DexMethod forName3 -> c
+    com.android.tools.r8.graph.DexMethod forName -> b
+    com.android.tools.r8.graph.DexMethod desiredAssertionStatus -> a
+    java.util.Set getNames -> o
+    java.util.Set getMembers -> n
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):791:791 -> <init>
+    2:41:void <init>(com.android.tools.r8.graph.DexItemFactory):809:848 -> <init>
+    1:1:java.util.Set access$1900(com.android.tools.r8.graph.DexItemFactory$ClassMethods):791:791 -> a
+    2:2:boolean isReflectiveClassLookup(com.android.tools.r8.graph.DexMethod):852:852 -> a
+    1:1:boolean isReflectiveMemberLookup(com.android.tools.r8.graph.DexMethod):856:856 -> b
+    1:1:boolean isReflectiveNameLookup(com.android.tools.r8.graph.DexMethod):860:860 -> c
+com.android.tools.r8.graph.DexItemFactory$ConstructorMethods -> com.android.tools.r8.graph.Y$f:
+    com.android.tools.r8.graph.DexMethod newInstance -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):864:864 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):868:870 -> <init>
+com.android.tools.r8.graph.DexItemFactory$DoubleMethods -> com.android.tools.r8.graph.Y$g:
+    com.android.tools.r8.graph.DexMethod isNaN -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):673:673 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.DexItemFactory):677:681 -> <init>
+    7:7:void <init>(com.android.tools.r8.graph.DexItemFactory):679:679 -> <init>
+com.android.tools.r8.graph.DexItemFactory$EnumMethods -> com.android.tools.r8.graph.Y$h:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexItemFactory this$0 -> h
+    com.android.tools.r8.graph.DexMethod finalize -> g
+    com.android.tools.r8.graph.DexMethod constructor -> f
+    com.android.tools.r8.graph.DexMethod compareTo -> e
+    com.android.tools.r8.graph.DexMethod toString -> d
+    com.android.tools.r8.graph.DexMethod name -> c
+    com.android.tools.r8.graph.DexMethod ordinal -> b
+    com.android.tools.r8.graph.DexMethod valueOf -> a
+    1:1:void <clinit>():878:878 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):878:878 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):891:891 -> <init>
+    3:34:void <init>(com.android.tools.r8.graph.DexItemFactory):886:917 -> <init>
+    1:4:boolean isValueOfMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):933:936 -> a
+    1:4:boolean isValuesMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):925:928 -> b
+com.android.tools.r8.graph.DexItemFactory$JavaUtilArraysMethods -> com.android.tools.r8.graph.Y$i:
+    com.android.tools.r8.graph.DexMethod asList -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):687:687 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.DexItemFactory):691:695 -> <init>
+    7:7:void <init>(com.android.tools.r8.graph.DexItemFactory):693:693 -> <init>
+com.android.tools.r8.graph.DexItemFactory$LongMethods -> com.android.tools.r8.graph.Y$j:
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):663:663 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):667:669 -> <init>
+    5:5:void <init>(com.android.tools.r8.graph.DexItemFactory):668:668 -> <init>
+com.android.tools.r8.graph.DexItemFactory$NullPointerExceptionMethods -> com.android.tools.r8.graph.Y$k:
+    com.android.tools.r8.graph.DexMethod init -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):942:942 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):946:948 -> <init>
+com.android.tools.r8.graph.DexItemFactory$ObjectMethods -> com.android.tools.r8.graph.Y$l:
+    com.android.tools.r8.graph.DexMethod toString -> d
+    com.android.tools.r8.graph.DexMethod finalize -> c
+    com.android.tools.r8.graph.DexMethod constructor -> b
+    com.android.tools.r8.graph.DexMethod getClass -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):738:738 -> <init>
+    2:9:void <init>(com.android.tools.r8.graph.DexItemFactory):745:752 -> <init>
+com.android.tools.r8.graph.DexItemFactory$ObjectsMethods -> com.android.tools.r8.graph.Y$m:
+    com.android.tools.r8.graph.DexMethod requireNonNullWithMessageSupplier -> c
+    com.android.tools.r8.graph.DexMethod requireNonNullWithMessage -> b
+    com.android.tools.r8.graph.DexMethod requireNonNull -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):757:757 -> <init>
+    2:9:void <init>(com.android.tools.r8.graph.DexItemFactory):763:770 -> <init>
+    10:17:void <init>(com.android.tools.r8.graph.DexItemFactory):768:775 -> <init>
+    18:18:void <init>(com.android.tools.r8.graph.DexItemFactory):773:773 -> <init>
+com.android.tools.r8.graph.DexItemFactory$PolymorphicMethods -> com.android.tools.r8.graph.Y$n:
+    com.android.tools.r8.graph.DexProto compareAndSetSignature -> c
+    java.util.Set varHandleMethods -> d
+    com.android.tools.r8.graph.DexItemFactory this$0 -> g
+    java.util.Set varHandleSetMethods -> e
+    java.util.Set varHandleCompareAndSetMethods -> f
+    com.android.tools.r8.graph.DexProto signature -> a
+    com.android.tools.r8.graph.DexProto setSignature -> b
+    1:36:void <init>(com.android.tools.r8.graph.DexItemFactory):1219:1254 -> <init>
+    1:11:com.android.tools.r8.graph.DexMethod canonicalize(com.android.tools.r8.graph.DexMethod):1262:1272 -> a
+    12:17:java.util.Set createStrings(java.lang.String[]):1279:1284 -> a
+com.android.tools.r8.graph.DexItemFactory$PrimitiveTypesBoxedTypeFields -> com.android.tools.r8.graph.Y$o:
+    com.android.tools.r8.graph.DexField floatTYPE -> f
+    com.android.tools.r8.graph.DexField longTYPE -> e
+    com.android.tools.r8.graph.DexField doubleTYPE -> g
+    com.android.tools.r8.graph.DexField charTYPE -> b
+    com.android.tools.r8.graph.DexField byteTYPE -> a
+    com.android.tools.r8.graph.DexField intTYPE -> d
+    com.android.tools.r8.graph.DexField shortTYPE -> c
+    java.util.Map boxedFieldTypeToPrimitiveType -> h
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):962:962 -> <init>
+    2:21:void <init>(com.android.tools.r8.graph.DexItemFactory):974:993 -> <init>
+    1:1:com.android.tools.r8.graph.DexType boxedFieldTypeToPrimitiveType(com.android.tools.r8.graph.DexField):997:997 -> a
+com.android.tools.r8.graph.DexItemFactory$ProxyMethods -> com.android.tools.r8.graph.Y$p:
+    com.android.tools.r8.graph.DexMethod newProxyInstance -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):1288:1288 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory):1292:1297 -> <init>
+    8:8:void <init>(com.android.tools.r8.graph.DexItemFactory):1294:1294 -> <init>
+com.android.tools.r8.graph.DexItemFactory$ServiceLoaderMethods -> com.android.tools.r8.graph.Y$q:
+    com.android.tools.r8.graph.DexMethod iterator -> d
+    com.android.tools.r8.graph.DexMethod loadInstalled -> c
+    com.android.tools.r8.graph.DexMethod loadWithClassLoader -> b
+    com.android.tools.r8.graph.DexMethod load -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):1301:1301 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.DexItemFactory):1308:1314 -> <init>
+    9:17:void <init>(com.android.tools.r8.graph.DexItemFactory):1312:1320 -> <init>
+    18:23:void <init>(com.android.tools.r8.graph.DexItemFactory):1317:1322 -> <init>
+    1:1:boolean isLoadMethod(com.android.tools.r8.graph.DexMethod):1326:1326 -> a
+com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods -> com.android.tools.r8.graph.Y$r:
+    com.android.tools.r8.graph.DexMethod defaultConstructor -> o
+    com.android.tools.r8.graph.DexMethod charSequenceConstructor -> n
+    com.android.tools.r8.graph.DexMethod appendStringBuffer -> m
+    com.android.tools.r8.graph.DexMethod appendString -> l
+    com.android.tools.r8.graph.DexMethod appendObject -> k
+    java.util.Set appendMethods -> s
+    com.android.tools.r8.graph.DexMethod appendLong -> j
+    java.util.Set constructorMethods -> t
+    com.android.tools.r8.graph.DexMethod appendFloat -> i
+    com.android.tools.r8.graph.DexMethod appendDouble -> h
+    boolean $assertionsDisabled -> u
+    com.android.tools.r8.graph.DexMethod appendInt -> g
+    com.android.tools.r8.graph.DexMethod appendSubCharSequence -> f
+    com.android.tools.r8.graph.DexMethod appendCharSequence -> e
+    com.android.tools.r8.graph.DexMethod appendSubCharArray -> d
+    com.android.tools.r8.graph.DexMethod appendCharArray -> c
+    com.android.tools.r8.graph.DexMethod appendChar -> b
+    com.android.tools.r8.graph.DexMethod appendBoolean -> a
+    com.android.tools.r8.graph.DexMethod toString -> r
+    com.android.tools.r8.graph.DexMethod stringConstructor -> q
+    com.android.tools.r8.graph.DexMethod intConstructor -> p
+    1:1:void <clinit>():1111:1111 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory$1):1111:1111 -> <init>
+    2:46:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):1135:1179 -> <init>
+    1:1:java.util.Set access$1800(com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods):1111:1111 -> a
+    2:2:boolean isAppendMethod(com.android.tools.r8.graph.DexMethod):1184:1184 -> a
+    3:29:boolean constructorInvokeIsSideEffectFree(com.android.tools.r8.ir.code.InvokeMethod):1188:1214 -> a
+    1:1:java.util.Set access$2000(com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods):1111:1111 -> b
+com.android.tools.r8.graph.DexItemFactory$StringMethods -> com.android.tools.r8.graph.Y$s:
+    com.android.tools.r8.graph.DexMethod hashCode -> o
+    com.android.tools.r8.graph.DexMethod compareToIgnoreCase -> n
+    com.android.tools.r8.graph.DexMethod compareTo -> m
+    com.android.tools.r8.graph.DexMethod lastIndexOfString -> l
+    com.android.tools.r8.graph.DexMethod lastIndexOfInt -> k
+    com.android.tools.r8.graph.DexMethod indexOfString -> j
+    com.android.tools.r8.graph.DexMethod indexOfInt -> i
+    com.android.tools.r8.graph.DexMethod contentEqualsCharSequence -> h
+    com.android.tools.r8.graph.DexMethod equalsIgnoreCase -> g
+    com.android.tools.r8.graph.DexMethod equals -> f
+    com.android.tools.r8.graph.DexMethod endsWith -> e
+    com.android.tools.r8.graph.DexMethod startsWith -> d
+    com.android.tools.r8.graph.DexMethod contains -> c
+    com.android.tools.r8.graph.DexMethod length -> b
+    com.android.tools.r8.graph.DexMethod isEmpty -> a
+    com.android.tools.r8.graph.DexItemFactory this$0 -> t
+    com.android.tools.r8.graph.DexMethod trim -> s
+    com.android.tools.r8.graph.DexMethod intern -> r
+    com.android.tools.r8.graph.DexMethod toString -> q
+    com.android.tools.r8.graph.DexMethod valueOf -> p
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):1038:1038 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):1063:1063 -> <init>
+    3:48:void <init>(com.android.tools.r8.graph.DexItemFactory):1061:1106 -> <init>
+com.android.tools.r8.graph.DexItemFactory$ThrowableMethods -> com.android.tools.r8.graph.Y$t:
+    com.android.tools.r8.graph.DexMethod initCause -> d
+    com.android.tools.r8.graph.DexMethod getSuppressed -> c
+    com.android.tools.r8.graph.DexMethod getMessage -> b
+    com.android.tools.r8.graph.DexMethod addSuppressed -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):701:701 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):708:710 -> <init>
+    5:8:void <init>(com.android.tools.r8.graph.DexItemFactory):709:712 -> <init>
+    9:16:void <init>(com.android.tools.r8.graph.DexItemFactory):711:718 -> <init>
+    17:17:void <init>(com.android.tools.r8.graph.DexItemFactory):716:716 -> <init>
+com.android.tools.r8.graph.DexLibraryClass -> com.android.tools.r8.graph.Z:
+    boolean $assertionsDisabled -> t
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:27:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):37:63 -> <init>
+    com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo() -> B
+    boolean isLibraryClass() -> Q
+    boolean isNotProgramClass() -> V
+    1:1:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):98:98 -> a
+    1:1:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74:74 -> c
+    2:2:boolean com.android.tools.r8.graph.DexEncodedField.isPrivate():138:138 -> c
+    2:2:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74 -> c
+    3:4:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74:75 -> c
+    5:5:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> c
+    5:5:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):75 -> c
+    6:6:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):75:75 -> c
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):82:82 -> collectIndexedItems
+    1:3:boolean verifyLibraryMethod(com.android.tools.r8.graph.DexEncodedMethod):67:69 -> d
+    com.android.tools.r8.graph.DexLibraryClass asLibraryClass() -> q
+    1:1:java.lang.String toSourceString():92:92 -> toSourceString
+    1:1:java.lang.String toString():87:87 -> toString
+com.android.tools.r8.graph.DexMember -> com.android.tools.r8.graph.a0:
+    com.android.tools.r8.graph.DexType holder -> c
+    1:2:void <init>(com.android.tools.r8.graph.DexType):11:12 -> <init>
+    boolean match(com.android.tools.r8.graph.DexEncodedMember) -> a
+com.android.tools.r8.graph.DexMemberAnnotation -> com.android.tools.r8.graph.b0:
+    com.android.tools.r8.graph.DexItem annotations -> b
+    com.android.tools.r8.graph.DexMember item -> a
+    1:3:void <init>(com.android.tools.r8.graph.DexMember,com.android.tools.r8.graph.DexItem):14:16 -> <init>
+    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):22:23 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):28:28 -> collectMixedSectionItems
+    1:3:boolean equals(java.lang.Object):41:43 -> equals
+    1:1:int hashCode():33:33 -> hashCode
+com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation -> com.android.tools.r8.graph.b0$a:
+    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexAnnotationSet):51:51 -> <init>
+com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation -> com.android.tools.r8.graph.b0$b:
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexAnnotationSet):58:58 -> <init>
+com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation -> com.android.tools.r8.graph.b0$c:
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ParameterAnnotationsList):66:66 -> <init>
+com.android.tools.r8.graph.DexMethod -> com.android.tools.r8.graph.c0:
+    com.android.tools.r8.graph.DexProto proto -> d
+    com.android.tools.r8.graph.DexString name -> e
+    boolean $assertionsDisabled -> g
+    java.util.Map singleTargetCache -> f
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexString,boolean):21:26 -> <init>
+    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):12:12 -> a
+    2:2:boolean match(com.android.tools.r8.graph.DexEncodedMember):12:12 -> a
+    3:3:boolean match(com.android.tools.r8.graph.DexEncodedMethod):155:155 -> a
+    3:3:boolean match(com.android.tools.r8.graph.DexEncodedMember):12 -> a
+    4:4:int slowCompareTo(java.lang.Object):12:12 -> a
+    5:6:boolean collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):50:51 -> a
+    7:157:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> a
+    7:157:boolean collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):51 -> a
+    158:403:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> a
+    158:403:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> a
+    158:403:boolean collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):51 -> a
+    404:404:boolean collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:52 -> a
+    405:405:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):65:65 -> a
+    406:406:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):137:137 -> a
+    407:585:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):0:178 -> a
+    407:585:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):137 -> a
+    586:586:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):141:141 -> a
+    587:842:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):0:255 -> a
+    587:842:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):141 -> a
+    843:843:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):145:145 -> a
+    844:907:int com.android.tools.r8.graph.DexProto.compareTo(com.android.tools.r8.graph.DexProto):0:63 -> a
+    844:907:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):145 -> a
+    908:908:boolean match(com.android.tools.r8.graph.DexMethod):150:150 -> a
+    909:920:java.lang.String toSourceString(boolean):177:188 -> a
+    921:921:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):198:198 -> a
+    922:922:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
+    922:922:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):199 -> a
+    923:925:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):199:201 -> a
+    926:926:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):209:209 -> a
+    927:927:boolean isSingleVirtualMethodCached(com.android.tools.r8.graph.DexType):205:205 -> a
+    927:927:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):209 -> a
+    928:929:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):209:210 -> a
+    1:9:int slowCompareTo(com.android.tools.r8.graph.DexMethod):111:119 -> b
+    10:10:boolean isSingleVirtualMethodCached(com.android.tools.r8.graph.DexType):205:205 -> b
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):43:43 -> collectIndexedItems
+    2:2:void collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60:60 -> collectIndexedItems
+    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):44 -> collectIndexedItems
+    3:248:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    3:248:void collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60 -> collectIndexedItems
+    3:248:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):44 -> collectIndexedItems
+    1:1:int compareTo(java.lang.Object):12:12 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.graph.DexMethod):106:106 -> compareTo
+    2:2:int compareTo(java.lang.Object):12 -> compareTo
+    1:5:boolean computeEquals(java.lang.Object):87:91 -> computeEquals
+    1:3:int computeHashCode():80:82 -> computeHashCode
+    com.android.tools.r8.graph.DexMethod asDexMethod() -> d
+    boolean isDexMethod() -> g
+    1:1:int getArity():37:37 -> i
+    1:1:java.lang.String qualifiedName():159:159 -> j
+    1:1:java.lang.String toSourceStringWithoutHolder():173:173 -> k
+    1:1:java.lang.String toSmaliString():164:164 -> toSmaliString
+    1:1:java.lang.String toSourceString():169:169 -> toSourceString
+    1:1:java.lang.String toString():33:33 -> toString
+com.android.tools.r8.graph.DexMethodHandle -> com.android.tools.r8.graph.d0:
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType type -> c
+    boolean isInterface -> e
+    com.android.tools.r8.graph.DexMember fieldOrMethod -> d
+    com.android.tools.r8.graph.DexMethod rewrittenTarget -> f
+    boolean $assertionsDisabled -> g
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.DexMember,boolean):208:212 -> <init>
+    6:10:void <init>(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.DexMember,boolean,com.android.tools.r8.graph.DexMethod):219:223 -> <init>
+    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15:15 -> a
+    2:2:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):344:344 -> a
+    2:2:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
+    3:3:boolean isFieldHandle():293:293 -> a
+    3:3:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):346 -> a
+    3:3:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
+    4:6:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):347:349 -> a
+    4:6:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
+    7:7:boolean isMethodHandle():297:297 -> a
+    7:7:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):349 -> a
+    7:7:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
+    8:9:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):349:350 -> a
+    8:9:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
+    10:10:int slowCompareTo(java.lang.Object):15:15 -> a
+    11:14:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):228:231 -> a
+    15:15:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.JarApplicationReader.getField(java.lang.String,java.lang.String,java.lang.String):84:84 -> a
+    15:15:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):231 -> a
+    16:16:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):232:232 -> a
+    17:17:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.JarApplicationReader.getMethod(java.lang.String,java.lang.String,java.lang.String):92:92 -> a
+    17:17:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):232 -> a
+    18:18:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):233:233 -> a
+    19:19:com.android.tools.r8.graph.DexMethodHandle com.android.tools.r8.graph.JarApplicationReader.getMethodHandle(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.DexMember,boolean):109:109 -> a
+    19:19:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):233 -> a
+    20:20:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):283:283 -> a
+    21:21:boolean isMethodHandle():297:297 -> a
+    21:21:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):366 -> a
+    22:36:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):367:381 -> a
+    37:37:boolean isFieldHandle():293:293 -> a
+    37:37:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):381 -> a
+    38:45:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):381:388 -> a
+    46:67:int getAsmTag():392:413 -> a
+    46:67:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):388 -> a
+    68:68:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):388:388 -> a
+    69:69:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):316:316 -> a
+    70:70:boolean isFieldHandle():293:293 -> a
+    70:70:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):318 -> a
+    71:73:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):319:321 -> a
+    74:74:boolean isMethodHandle():297:297 -> a
+    74:74:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):321 -> a
+    75:76:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):321:322 -> a
+    1:1:com.android.tools.r8.graph.DexField asField():310:310 -> c
+    2:2:boolean isFieldHandle():293:293 -> c
+    2:2:com.android.tools.r8.graph.DexField asField():310 -> c
+    3:4:com.android.tools.r8.graph.DexField asField():310:311 -> c
+    1:8:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):266:273 -> collectIndexedItems
+    9:69:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:60 -> collectIndexedItems
+    9:69:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273 -> collectIndexedItems
+    70:315:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    70:315:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60 -> collectIndexedItems
+    70:315:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273 -> collectIndexedItems
+    316:316:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):276:276 -> collectIndexedItems
+    1:1:int compareTo(java.lang.Object):15:15 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.graph.DexMethodHandle):358:358 -> compareTo
+    2:2:int compareTo(java.lang.Object):15 -> compareTo
+    1:6:boolean computeEquals(java.lang.Object):243:248 -> computeEquals
+    1:1:int computeHashCode():238:238 -> computeHashCode
+    1:1:com.android.tools.r8.graph.DexMethod asMethod():305:305 -> d
+    2:2:boolean isMethodHandle():297:297 -> d
+    2:2:com.android.tools.r8.graph.DexMethod asMethod():305 -> d
+    3:4:com.android.tools.r8.graph.DexMethod asMethod():305:306 -> d
+    1:1:boolean isStaticHandle():301:301 -> e
+    2:128:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticPut():0:126 -> e
+    2:128:boolean isStaticHandle():301 -> e
+    129:129:boolean isStaticHandle():301:301 -> e
+    130:260:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticGet():0:130 -> e
+    130:260:boolean isStaticHandle():301 -> e
+    261:261:boolean isStaticHandle():301:301 -> e
+    1:1:java.lang.String toSmaliString():289:289 -> toSmaliString
+    1:6:java.lang.String toString():255:260 -> toString
+com.android.tools.r8.graph.DexMethodHandle$MethodHandleType -> com.android.tools.r8.graph.d0$a:
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_CONSTRUCTOR -> h
+    boolean $assertionsDisabled -> m
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_INSTANCE -> g
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType[] $VALUES -> l
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_STATIC -> f
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INSTANCE_GET -> e
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INSTANCE_PUT -> d
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType STATIC_GET -> c
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType STATIC_PUT -> b
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_SUPER -> k
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_INTERFACE -> j
+    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_DIRECT -> i
+    short value -> a
+    1:13:void <clinit>():18:18 -> <clinit>
+    1:2:void <init>(java.lang.String,int,short):33:34 -> <init>
+    1:1:short getValue():38:38 -> a
+    2:29:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):85:112 -> a
+    30:34:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):106:110 -> a
+    35:48:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):95:108 -> a
+    49:49:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):104:104 -> a
+    50:50:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):93:93 -> a
+    51:51:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):91:91 -> a
+    52:52:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):89:89 -> a
+    53:53:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):87:87 -> a
+    1:1:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):76:76 -> b
+    2:2:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):73:73 -> b
+    3:3:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):70:70 -> b
+    4:4:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):67:67 -> b
+    5:5:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):64:64 -> b
+    6:6:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):61:61 -> b
+    7:7:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):58:58 -> b
+    8:8:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):55:55 -> b
+    9:9:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):52:52 -> b
+    10:10:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):49:49 -> b
+    11:44:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):46:79 -> b
+    45:45:short getValue():38:38 -> b
+    45:45:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):79 -> b
+    46:46:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):79:79 -> b
+    47:47:boolean isStaticPut():126:126 -> b
+    47:47:boolean isFieldType():117 -> b
+    48:48:boolean isStaticGet():130:130 -> b
+    48:48:boolean isFieldType():117 -> b
+    49:49:boolean isInstancePut():134:134 -> b
+    49:49:boolean isFieldType():117 -> b
+    50:50:boolean isInstanceGet():138:138 -> b
+    50:50:boolean isFieldType():117 -> b
+    1:1:boolean isInvokeConstructor():162:162 -> c
+    1:1:boolean isInvokeDirect():146:146 -> d
+    1:1:boolean isInvokeInstance():150:150 -> e
+    1:1:boolean isInvokeInterface():154:154 -> f
+    1:1:boolean isInvokeStatic():142:142 -> g
+    1:1:boolean isMethodType():121:121 -> h
+    2:2:boolean isInvokeSuper():158:158 -> h
+    2:2:boolean isMethodType():121 -> h
+    3:3:boolean isMethodType():122:122 -> h
+    1:16:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():166:181 -> i
+    17:17:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():179:179 -> i
+    18:18:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():177:177 -> i
+    19:19:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():175:175 -> i
+    20:20:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():173:173 -> i
+    21:21:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():171:171 -> i
+    22:22:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():169:169 -> i
+    1:1:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType[] values():18:18 -> j
+com.android.tools.r8.graph.DexProgramClass -> com.android.tools.r8.graph.e0:
+    java.util.Collection synthesizedFrom -> v
+    com.android.tools.r8.graph.DexProgramClass[] EMPTY_ARRAY -> z
+    com.android.tools.r8.graph.DexEncodedArray staticValues -> u
+    com.android.tools.r8.kotlin.KotlinInfo kotlinInfo -> x
+    com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier checksumSupplier -> y
+    int initialClassFileVersion -> w
+    boolean $assertionsDisabled -> B
+    com.android.tools.r8.graph.DexEncodedArray SENTINEL_NOT_YET_COMPUTED -> A
+    com.android.tools.r8.ProgramResource$Kind originKind -> t
+    1:10:void <clinit>():24:33 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):82:82 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):63:63 -> <init>
+    3:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier,java.util.Collection):105:105 -> <init>
+    4:94:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier,java.util.Collection):37:127 -> <init>
+    1:1:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo():268:268 -> B
+    boolean isNotProgramClass() -> V
+    1:1:java.lang.Iterable com.android.tools.r8.graph.DexClass.members():133:133 -> a
+    1:1:boolean hasReachabilitySensitiveAnnotation(com.android.tools.r8.graph.DexItemFactory):444 -> a
+    2:2:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    2:2:java.lang.Iterable com.android.tools.r8.graph.DexClass.members():133 -> a
+    2:2:boolean hasReachabilitySensitiveAnnotation(com.android.tools.r8.graph.DexItemFactory):444 -> a
+    3:5:boolean hasReachabilitySensitiveAnnotation(com.android.tools.r8.graph.DexItemFactory):444:446 -> a
+    6:10:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):190:194 -> a
+    11:14:void sortMembers():398:401 -> a
+    11:14:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):198 -> a
+    15:21:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):199:205 -> a
+    22:68:void com.android.tools.r8.graph.DexTypeList.collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):0:46 -> a
+    22:68:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):206 -> a
+    69:69:com.android.tools.r8.graph.DexProgramClass asProgramClassOrNull(com.android.tools.r8.graph.DexClass):258:258 -> a
+    70:71:void setKotlinInfo(com.android.tools.r8.kotlin.KotlinInfo):272:273 -> a
+    72:75:void addSynthesizedFrom(com.android.tools.r8.graph.DexProgramClass):316:319 -> a
+    76:80:boolean isSorted(com.android.tools.r8.graph.DexEncodedMember[]):357:361 -> a
+    81:81:java.lang.Iterable asProgramClasses(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):456:456 -> a
+    1:3:void synchronizedCollectAll(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem[]):170:172 -> b
+    4:6:void synchronizedCollectAll(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem[]):212:214 -> b
+    7:7:java.util.Iterator lambda$asProgramClasses$2(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):457:457 -> b
+    8:8:long checksumFromType(com.android.tools.r8.graph.DexProgramClass):494:494 -> b
+    1:20:void computeStaticValues():325:344 -> b0
+    1:3:boolean hasAnnotations(com.android.tools.r8.graph.DexEncodedField[]):304:306 -> c
+    4:6:boolean hasAnnotations(com.android.tools.r8.graph.DexEncodedMethod[]):310:312 -> c
+    7:7:com.android.tools.r8.graph.DexField lambda$sortEncodedFields$0(com.android.tools.r8.graph.DexEncodedField):406:406 -> c
+    8:8:long invalidChecksumRequest(com.android.tools.r8.graph.DexProgramClass):489:489 -> c
+    9:9:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> c
+    9:9:long invalidChecksumRequest(com.android.tools.r8.graph.DexProgramClass):489 -> c
+    10:10:long invalidChecksumRequest(com.android.tools.r8.graph.DexProgramClass):489:489 -> c
+    11:11:boolean com.android.tools.r8.graph.DexClass.isFinal():633:633 -> c
+    11:11:boolean isEffectivelyFinal(com.android.tools.r8.graph.AppView):233 -> c
+    12:18:boolean isEffectivelyFinal(com.android.tools.r8.graph.AppView):236:242 -> c
+    1:1:long getChecksum():498:498 -> c0
+    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):141:142 -> collectIndexedItems
+    3:153:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    3:153:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):142 -> collectIndexedItems
+    154:399:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    154:399:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    154:399:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):142 -> collectIndexedItems
+    400:400:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):143:143 -> collectIndexedItems
+    401:551:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    401:551:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):144 -> collectIndexedItems
+    552:797:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    552:797:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    552:797:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):144 -> collectIndexedItems
+    798:800:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):146:148 -> collectIndexedItems
+    801:1046:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    801:1046:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):149 -> collectIndexedItems
+    1047:1047:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):151:151 -> collectIndexedItems
+    1048:1048:void com.android.tools.r8.graph.DexAnnotationSet.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):83:83 -> collectIndexedItems
+    1048:1048:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):151 -> collectIndexedItems
+    1049:1061:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):152:164 -> collectIndexedItems
+    1:4:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):181:184 -> collectMixedSectionItems
+    1:1:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):391:391 -> d
+    2:2:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> d
+    2:2:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):392 -> d
+    3:6:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):391:394 -> d
+    7:9:void sortEncodedFields(com.android.tools.r8.graph.DexEncodedField[]):405:407 -> d
+    10:12:void sortEncodedMethods(com.android.tools.r8.graph.DexEncodedMethod[]):411:413 -> d
+    13:14:void setInitialClassFileVersion(int):422:423 -> d
+    1:2:int getInitialClassFileVersion():431:432 -> d0
+    1:2:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):373:374 -> e
+    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> e
+    3:3:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):375 -> e
+    4:4:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):378:378 -> e
+    5:5:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):376:376 -> e
+    1:2:com.android.tools.r8.graph.DexEncodedArray getStaticValues():365:366 -> e0
+    com.android.tools.r8.graph.DexProgramClass asProgramClass() -> f
+    1:3:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):383:385 -> f
+    4:4:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> f
+    4:4:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):385 -> f
+    5:7:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):385:387 -> f
+    1:1:java.util.Collection getSynthesizedFrom():176:176 -> f0
+    1:1:com.android.tools.r8.graph.DexMethod lambda$sortEncodedMethods$1(com.android.tools.r8.graph.DexEncodedMethod):412:412 -> g
+    1:5:boolean hasAnnotations():289:293 -> g0
+    1:1:boolean hasClassFileVersion():427:427 -> h0
+    1:1:boolean hasMethods():281:281 -> i0
+    1:1:boolean hasMethodsOrFields():285 -> i0
+    2:2:boolean hasFields():277:277 -> i0
+    2:2:boolean hasMethodsOrFields():285 -> i0
+    1:4:boolean hasOnlyInternalizableAnnotations():297:300 -> j0
+    boolean isProgramClass() -> k
+    1:4:boolean isSorted():349:352 -> k0
+    1:1:boolean originatesFromClassResource():135:135 -> l0
+    1:1:boolean originatesFromDexResource():131:131 -> m0
+    1:1:java.lang.String toSourceString():224:224 -> toSourceString
+    1:1:java.lang.String toString():219:219 -> toString
+com.android.tools.r8.graph.DexProgramClass$1 -> com.android.tools.r8.graph.e0$a:
+    java.util.Iterator iterator -> b
+    com.android.tools.r8.graph.DexProgramClass next -> a
+    java.lang.Iterable val$types -> c
+    com.android.tools.r8.graph.DexDefinitionSupplier val$definitions -> d
+    1:5:void <init>(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):457:461 -> <init>
+    1:1:boolean hasNext():465:465 -> hasNext
+    1:5:com.android.tools.r8.graph.DexProgramClass findNext():476:480 -> k
+    1:2:com.android.tools.r8.graph.DexProgramClass next():470:471 -> next
+    1:2:java.lang.Object next():457 -> next
+com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier -> com.android.tools.r8.graph.e0$b:
+    long getChecksum(com.android.tools.r8.graph.DexProgramClass) -> a
+com.android.tools.r8.graph.DexProto -> com.android.tools.r8.graph.f0:
+    com.android.tools.r8.graph.DexString shorty -> c
+    com.android.tools.r8.graph.DexTypeList parameters -> e
+    com.android.tools.r8.graph.DexProto SENTINEL -> f
+    com.android.tools.r8.graph.DexType returnType -> d
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):17:20 -> <init>
+    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):9:9 -> a
+    2:2:int slowCompareTo(java.lang.Object):9:9 -> a
+    3:3:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):58:58 -> a
+    4:4:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86:86 -> a
+    5:183:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):0:178 -> a
+    5:183:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86 -> a
+    184:184:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):88:88 -> a
+    185:192:java.lang.String toDescriptorString(com.android.tools.r8.naming.NamingLens):103:110 -> a
+    1:3:int slowCompareTo(com.android.tools.r8.graph.DexProto):68:70 -> b
+    4:16:int com.android.tools.r8.graph.DexTypeList.slowCompareTo(com.android.tools.r8.graph.DexTypeList):96:108 -> b
+    4:16:int slowCompareTo(com.android.tools.r8.graph.DexProto):70 -> b
+    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):49:50 -> collectIndexedItems
+    3:248:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    3:248:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):50 -> collectIndexedItems
+    249:249:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):51:51 -> collectIndexedItems
+    250:400:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    250:400:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):51 -> collectIndexedItems
+    401:646:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    401:646:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    401:646:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):51 -> collectIndexedItems
+    647:647:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:52 -> collectIndexedItems
+    1:1:int compareTo(java.lang.Object):9:9 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.graph.DexProto):63:63 -> compareTo
+    2:2:int compareTo(java.lang.Object):9 -> compareTo
+    1:5:boolean computeEquals(java.lang.Object):32:36 -> computeEquals
+    1:3:int computeHashCode():25:27 -> computeHashCode
+    1:1:java.lang.String toDescriptorString():99:99 -> toSmaliString
+    1:1:java.lang.String toSmaliString():95 -> toSmaliString
+    1:1:java.lang.String toString():43:43 -> toString
+com.android.tools.r8.graph.DexReference -> com.android.tools.r8.graph.g0:
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:1:void <init>():14:14 -> <init>
+    1:1:java.util.stream.Stream filterDexReference(java.util.stream.Stream):49:49 -> a
+    1:1:java.util.stream.Stream filterDexType(java.util.stream.Stream):76:76 -> b
+    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):72:72 -> b
+    2:2:java.util.stream.Stream filterDexType(java.util.stream.Stream):76 -> b
+    com.android.tools.r8.graph.DexField asDexField() -> c
+    com.android.tools.r8.graph.DexMethod asDexMethod() -> d
+    com.android.tools.r8.graph.DexType asDexType() -> e
+    boolean isDexField() -> f
+    boolean isDexMethod() -> g
+    boolean isDexType() -> h
+com.android.tools.r8.graph.DexString -> com.android.tools.r8.graph.h0:
+    boolean $assertionsDisabled -> f
+    byte[] content -> d
+    int size -> c
+    com.android.tools.r8.graph.DexString[] EMPTY_ARRAY -> e
+    1:3:void <clinit>():17:19 -> <clinit>
+    1:3:void <init>(int,byte[]):25:27 -> <init>
+    4:6:void <init>(java.lang.String):30:32 -> <init>
+    int countBytes(char) -> a
+    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):17:17 -> a
+    2:2:int slowCompareTo(java.lang.Object):17:17 -> a
+    3:19:int decodePrefix(char[]):124:140 -> a
+    20:32:int decodePrefix(char[]):138:150 -> a
+    33:40:int decodePrefix(char[]):148:155 -> a
+    41:43:int countBytes(java.lang.String):200:202 -> a
+    41:43:byte[] encodeToMutf8(java.lang.String):219 -> a
+    44:49:byte[] encodeToMutf8(java.lang.String):219:224 -> a
+    50:57:int encodeToMutf8(char,byte[],int):230:237 -> a
+    58:58:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):250:250 -> a
+    59:66:boolean isValidSimpleName(int,java.lang.String):394:401 -> a
+    67:71:boolean endsWith(com.android.tools.r8.graph.DexString):462:466 -> a
+    1:1:int layeredCompareTo(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.NamingLens):300:300 -> b
+    1:3:java.lang.String decode():115:117 -> c
+    4:16:int slowCompareTo(com.android.tools.r8.graph.DexString):268:280 -> c
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
+    1:1:int compareTo(java.lang.Object):17:17 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.graph.DexString):255:255 -> compareTo
+    2:2:int compareTo(java.lang.Object):17 -> compareTo
+    1:3:boolean computeEquals(java.lang.Object):82:84 -> computeEquals
+    1:1:int computeHashCode():77:77 -> computeHashCode
+    1:32:int decodedHashCode():161:192 -> d
+    33:46:int decodedHashCode():175:188 -> d
+    47:51:boolean startsWith(com.android.tools.r8.graph.DexString):434:438 -> d
+    1:3:boolean isValidSimpleName(int):409:411 -> e
+    4:14:java.lang.String dump():420:430 -> e
+    1:1:boolean isValidClassDescriptor():386:386 -> f
+    2:13:boolean isValidClassDescriptor(java.lang.String):304:315 -> f
+    2:13:boolean isValidClassDescriptor():386 -> f
+    14:14:boolean isValidClassDescriptor(java.lang.String):313:313 -> f
+    14:14:boolean isValidClassDescriptor():386 -> f
+    1:1:boolean isValidFieldName():378:378 -> g
+    2:18:boolean isValidFieldName(java.lang.String):345:361 -> g
+    2:18:boolean isValidFieldName():378 -> g
+    19:19:boolean isValidFieldName(java.lang.String):359:359 -> g
+    19:19:boolean isValidFieldName():378 -> g
+    1:1:boolean isValidMethodName():370:370 -> h
+    2:16:boolean isValidMethodName(java.lang.String):323:337 -> h
+    2:16:boolean isValidMethodName():370 -> h
+    17:17:boolean isValidMethodName(java.lang.String):335:335 -> h
+    17:17:boolean isValidMethodName():370 -> h
+    1:1:com.android.tools.r8.utils.ThrowingCharIterator iterator():36:36 -> i
+    1:3:java.lang.String toASCIIString():100:102 -> j
+    1:3:java.lang.String toString():92:94 -> toString
+com.android.tools.r8.graph.DexString$1 -> com.android.tools.r8.graph.h0$a:
+    com.android.tools.r8.graph.DexString this$0 -> b
+    boolean $assertionsDisabled -> c
+    int i -> a
+    1:1:void <clinit>():36:36 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexString):36:38 -> <init>
+    1:24:char nextChar():42:65 -> a
+    25:25:char nextChar():43:43 -> a
+    1:1:boolean hasNext():70:70 -> hasNext
+com.android.tools.r8.graph.DexType -> com.android.tools.r8.graph.i0:
+    com.android.tools.r8.graph.DexString descriptor -> c
+    java.util.List OLD_SYNTHESIZED_NAMES -> f
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.graph.DexType[] EMPTY_ARRAY -> e
+    java.lang.String toStringCache -> d
+    1:6:void <clinit>():35:40 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexString):45:45 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.DexString):43:48 -> <init>
+    1:1:char toShorty():132:132 -> A
+    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):35:35 -> a
+    2:3:int layeredCompareTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):195:196 -> a
+    2:3:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):35 -> a
+    4:259:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):0:255 -> a
+    4:259:int layeredCompareTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):197 -> a
+    4:259:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):35 -> a
+    260:260:int slowCompareTo(java.lang.Object):35:35 -> a
+    261:261:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):88:88 -> a
+    262:262:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    262:262:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):89 -> a
+    263:270:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):89:96 -> a
+    271:271:boolean isSamePackage(com.android.tools.r8.graph.DexType):103:103 -> a
+    272:272:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):163:163 -> a
+    273:273:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    273:273:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate,java.util.Set):71 -> a
+    274:274:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate,java.util.Set):72:72 -> a
+    275:277:com.android.tools.r8.graph.DexType replaceBaseType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):362:364 -> a
+    278:282:com.android.tools.r8.graph.DexType toArrayType(int,com.android.tools.r8.graph.DexItemFactory):368:372 -> a
+    283:285:com.android.tools.r8.graph.DexType toArrayElementType(com.android.tools.r8.graph.DexItemFactory):376:378 -> a
+    286:288:com.android.tools.r8.graph.DexType toArrayElementType(com.android.tools.r8.graph.DexItemFactory):377:379 -> a
+    289:296:java.lang.String getPackageOrName(boolean):383:390 -> a
+    1:1:int slowCompareTo(com.android.tools.r8.graph.DexType):183:183 -> b
+    2:7:com.android.tools.r8.graph.DexType toBaseType(com.android.tools.r8.graph.DexItemFactory):337:342 -> b
+    8:10:com.android.tools.r8.graph.DexType toBaseType(com.android.tools.r8.graph.DexItemFactory):341:343 -> b
+    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):149:150 -> collectIndexedItems
+    3:248:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    3:248:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    1:1:int compareTo(java.lang.Object):35:35 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.graph.DexType):178:178 -> compareTo
+    2:2:int compareTo(java.lang.Object):35 -> compareTo
+    1:2:boolean computeEquals(java.lang.Object):58:59 -> computeEquals
+    1:1:int computeHashCode():53:53 -> computeHashCode
+    com.android.tools.r8.graph.DexType asDexType() -> e
+    1:2:void flushCachedValues():157:158 -> flushCachedValues
+    boolean isDexType() -> h
+    1:16:int elementSizeForPrimitiveArrayType():309:324 -> i
+    1:2:java.lang.String getInternalName():407:408 -> j
+    1:4:java.lang.String getName():399:402 -> k
+    1:1:int getNumberOfLeadingSquareBrackets():330:330 -> l
+    1:1:java.lang.String getPackageDescriptor():395:395 -> m
+    1:4:java.lang.String toBinaryName():111:114 -> n
+    1:4:java.lang.String getPackageName():412 -> n
+    5:8:java.lang.String toBinaryName():112:115 -> n
+    5:8:java.lang.String getPackageName():412 -> n
+    9:9:java.lang.String getPackageName():412:412 -> n
+    1:1:boolean isArrayType():241:241 -> o
+    1:1:boolean isBooleanType():209:209 -> p
+    1:1:boolean isClassType():246:246 -> q
+    1:13:boolean isD8R8SynthesizedClassType():273:285 -> r
+    14:15:boolean oldSynthesizedName(java.lang.String):290:291 -> r
+    14:15:boolean isD8R8SynthesizedClassType():286 -> r
+    1:1:boolean isDoubleType():237:237 -> s
+    1:1:boolean isIntType():225:225 -> t
+    1:1:java.lang.String toSmaliString():138:138 -> toSmaliString
+    1:9:java.lang.String toSourceString():120:128 -> toSourceString
+    1:1:java.lang.String toString():143:143 -> toString
+    1:1:boolean isLongType():233:233 -> u
+    1:4:boolean isPrimitiveArrayType():257:260 -> v
+    1:1:boolean isPrimitiveType():201:201 -> w
+    1:2:boolean isReferenceType():251:252 -> x
+    1:1:boolean isVoidType():205:205 -> y
+    1:1:java.lang.String toDescriptorString():107:107 -> z
+com.android.tools.r8.graph.DexTypeList -> com.android.tools.r8.graph.j0:
+    com.android.tools.r8.graph.DexType[] values -> a
+    com.android.tools.r8.graph.DexTypeList theEmptyTypeList -> b
+    boolean $assertionsDisabled -> c
+    1:3:void <clinit>():12:14 -> <clinit>
+    1:2:void <init>():22:23 -> <init>
+    3:5:void <init>(com.android.tools.r8.graph.DexType[]):26:28 -> <init>
+    1:1:com.android.tools.r8.graph.DexTypeList empty():19:19 -> a
+    2:8:int compareTo(com.android.tools.r8.graph.DexTypeList):80:86 -> a
+    9:187:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):0:178 -> a
+    9:187:int compareTo(com.android.tools.r8.graph.DexTypeList):86 -> a
+    188:188:int compareTo(com.android.tools.r8.graph.DexTypeList):92:92 -> a
+    1:1:boolean isEmpty():59:59 -> b
+    1:1:int size():63:63 -> c
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):39:39 -> collectIndexedItems
+    2:152:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    2:152:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):40 -> collectIndexedItems
+    153:398:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    153:398:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    153:398:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):40 -> collectIndexedItems
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):46:46 -> collectMixedSectionItems
+    1:1:int compareTo(java.lang.Object):12:12 -> compareTo
+    1:2:boolean equals(java.lang.Object):54:55 -> equals
+    1:1:int hashCode():33:33 -> hashCode
+    1:8:java.lang.String toString():68:75 -> toString
+com.android.tools.r8.graph.DexValue -> com.android.tools.r8.graph.k0:
+    com.android.tools.r8.graph.DexValue$UnknownDexValue UNKNOWN -> b
+    com.android.tools.r8.graph.DexValue[] EMPTY_ARRAY -> a
+    1:3:void <clinit>():29:31 -> <clinit>
+    1:1:void <init>():27:27 -> <init>
+    java.lang.Object asAsmEncodedObject() -> a
+    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo) -> a
+    void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
+    1:22:com.android.tools.r8.graph.DexValue fromAsmBootstrapArgument(java.lang.Object,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):94:115 -> a
+    23:36:com.android.tools.r8.graph.DexValue fromAsmBootstrapArgument(java.lang.Object,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):109:122 -> a
+    37:57:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):150:170 -> a
+    58:74:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):152:168 -> a
+    75:75:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):162:162 -> a
+    76:82:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):160:166 -> a
+    83:83:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):156:156 -> a
+    84:84:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):154:154 -> a
+    com.android.tools.r8.graph.DexValue$DexValueArray asDexValueArray() -> b
+    1:1:boolean isDefault(com.android.tools.r8.graph.DexType):183:183 -> b
+    com.android.tools.r8.graph.DexValue$DexValueInt asDexValueInt() -> c
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):133:133 -> collectMixedSectionItems
+    com.android.tools.r8.graph.DexValue$DexValueMethodHandle asDexValueMethodHandle() -> d
+    com.android.tools.r8.graph.DexValue$DexValueMethodType asDexValueMethodType() -> e
+    com.android.tools.r8.graph.DexValue$DexValueString asDexValueString() -> f
+    com.android.tools.r8.graph.DexValue$DexValueType asDexValueType() -> g
+    java.lang.Object getBoxedValue() -> h
+    boolean isDexValueArray() -> i
+    boolean isDexValueInt() -> j
+    boolean isDexValueType() -> k
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+com.android.tools.r8.graph.DexValue$1 -> com.android.tools.r8.graph.k0$a:
+com.android.tools.r8.graph.DexValue$DexItemBasedValueString -> com.android.tools.r8.graph.k0$b:
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> d
+    1:1:void <clinit>():829:829 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):834:835 -> <init>
+    1:1:java.lang.Object asAsmEncodedObject():844:844 -> a
+    2:9:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):855:862 -> a
+    10:10:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):870:870 -> a
+    1:1:void com.android.tools.r8.graph.DexValue$NestedDexValue.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):752:752 -> collectIndexedItems
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):829 -> collectIndexedItems
+    1:1:boolean equals(java.lang.Object):829:829 -> equals
+    1:1:java.lang.Object getBoxedValue():829:829 -> h
+    1:1:int hashCode():829:829 -> hashCode
+    void sort() -> m
+    com.android.tools.r8.graph.IndexedDexItem getValue() -> n
+    byte getValueKind() -> o
+    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():839:839 -> p
+    1:1:java.lang.String toString():829:829 -> toString
+com.android.tools.r8.graph.DexValue$DexValueAnnotation -> com.android.tools.r8.graph.k0$c:
+    com.android.tools.r8.graph.DexEncodedAnnotation value -> c
+    1:2:void <init>(com.android.tools.r8.graph.DexEncodedAnnotation):1061:1062 -> <init>
+    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1073 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1074:1074 -> a
+    3:3:java.lang.Object asAsmEncodedObject():1084:1084 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1068:1068 -> collectIndexedItems
+    1:3:boolean equals(java.lang.Object):1102:1104 -> equals
+    1:1:java.lang.Object getBoxedValue():1079:1079 -> h
+    1:1:int hashCode():1094:1094 -> hashCode
+    1:1:void sort():1089:1089 -> m
+    1:1:java.lang.String toString():1111:1111 -> toString
+com.android.tools.r8.graph.DexValue$DexValueArray -> com.android.tools.r8.graph.k0$d:
+    com.android.tools.r8.graph.DexValue[] values -> c
+    1:2:void <init>(com.android.tools.r8.graph.DexValue[]):984:985 -> <init>
+    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1000 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1001:1001 -> a
+    3:3:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
+    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1001 -> a
+    4:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1002:1003 -> a
+    6:6:java.lang.Object asAsmEncodedObject():1014:1014 -> a
+    com.android.tools.r8.graph.DexValue$DexValueArray asDexValueArray() -> b
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):995:995 -> collectIndexedItems
+    1:3:boolean equals(java.lang.Object):1034:1036 -> equals
+    1:1:java.lang.Object getBoxedValue():1009:1009 -> h
+    1:1:int hashCode():1026:1026 -> hashCode
+    boolean isDexValueArray() -> i
+    1:2:void sort():1019:1020 -> m
+    1:1:com.android.tools.r8.graph.DexValue[] getValues():989:989 -> n
+    1:1:java.lang.String toString():1043:1043 -> toString
+com.android.tools.r8.graph.DexValue$DexValueBoolean -> com.android.tools.r8.graph.k0$e:
+    com.android.tools.r8.graph.DexValue$DexValueBoolean TRUE -> d
+    com.android.tools.r8.graph.DexValue$DexValueBoolean FALSE -> e
+    com.android.tools.r8.graph.DexValue$DexValueBoolean DEFAULT -> f
+    boolean value -> c
+    1:4:void <clinit>():1169:1172 -> <clinit>
+    1:2:void <init>(boolean):1176:1177 -> <init>
+    1:1:com.android.tools.r8.graph.DexValue$DexValueBoolean create(boolean):1181:1181 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1195:1195 -> a
+    3:3:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    3:3:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1195 -> a
+    4:4:java.lang.Object asAsmEncodedObject():1200:1200 -> a
+    5:5:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):1224:1224 -> a
+    1:1:boolean equals(java.lang.Object):1213:1213 -> equals
+    1:1:java.lang.Object getBoxedValue():1190:1190 -> h
+    1:1:int hashCode():1205:1205 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    1:1:com.android.tools.r8.graph.DexValue$DexValueBoolean access$000():1167:1167 -> n
+    1:1:boolean getValue():1185:1185 -> o
+    1:1:java.lang.String toString():1218:1218 -> toString
+com.android.tools.r8.graph.DexValue$DexValueByte -> com.android.tools.r8.graph.k0$f:
+    byte value -> c
+    com.android.tools.r8.graph.DexValue$DexValueByte DEFAULT -> d
+    1:1:void <clinit>():290:290 -> <clinit>
+    1:2:void <init>(byte):294:295 -> <init>
+    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):313 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):314:314 -> a
+    3:3:int com.android.tools.r8.dex.DexOutputBuffer.putSignedEncodedValue(long,int):88:88 -> a
+    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):314 -> a
+    4:4:com.android.tools.r8.graph.DexValue$DexValueByte create(byte):299:299 -> a
+    5:5:java.lang.Object asAsmEncodedObject():319:319 -> a
+    6:6:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):343:343 -> a
+    1:1:boolean equals(java.lang.Object):332:332 -> equals
+    1:1:java.lang.Object getBoxedValue():308:308 -> h
+    1:1:int hashCode():324:324 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    1:1:byte getValue():303:303 -> n
+    1:1:java.lang.String toString():337:337 -> toString
+com.android.tools.r8.graph.DexValue$DexValueChar -> com.android.tools.r8.graph.k0$g:
+    com.android.tools.r8.graph.DexValue$DexValueChar DEFAULT -> d
+    char value -> c
+    1:1:void <clinit>():406:406 -> <clinit>
+    1:2:void <init>(char):409:410 -> <init>
+    1:1:com.android.tools.r8.graph.DexValue$DexValueChar create(char):414:414 -> a
+    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):428:429 -> a
+    4:4:int com.android.tools.r8.dex.DexOutputBuffer.putUnsignedEncodedValue(long,int):92:92 -> a
+    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):429 -> a
+    5:5:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
+    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):430 -> a
+    6:6:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    6:6:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):431 -> a
+    7:7:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):432:432 -> a
+    8:8:java.lang.Object asAsmEncodedObject():437:437 -> a
+    9:9:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):461:461 -> a
+    1:1:boolean equals(java.lang.Object):450:450 -> equals
+    1:1:java.lang.Object getBoxedValue():423:423 -> h
+    1:1:int hashCode():442:442 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    1:1:char getValue():418:418 -> n
+    1:1:java.lang.String toString():455:455 -> toString
+com.android.tools.r8.graph.DexValue$DexValueDouble -> com.android.tools.r8.graph.k0$h:
+    com.android.tools.r8.graph.DexValue$DexValueDouble DEFAULT -> d
+    double value -> c
+    1:1:void <clinit>():654:654 -> <clinit>
+    1:2:void <init>(double):658:659 -> <init>
+    1:1:com.android.tools.r8.graph.DexValue$DexValueDouble create(double):663:663 -> a
+    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):677:678 -> a
+    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
+    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):679 -> a
+    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    5:5:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):680 -> a
+    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):681:681 -> a
+    7:7:java.lang.Object asAsmEncodedObject():686:686 -> a
+    8:8:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):692:692 -> a
+    9:1066:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createDoubleConstant(double,com.android.tools.r8.graph.DebugLocalInfo):0:1057 -> a
+    9:1066:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):692 -> a
+    1:2:boolean equals(java.lang.Object):705:706 -> equals
+    1:1:java.lang.Object getBoxedValue():672:672 -> h
+    1:1:int hashCode():697:697 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    1:1:double getValue():667:667 -> n
+    1:1:java.lang.String toString():711:711 -> toString
+com.android.tools.r8.graph.DexValue$DexValueEnum -> com.android.tools.r8.graph.k0$i:
+    1:1:void <init>(com.android.tools.r8.graph.DexField):942:942 -> <init>
+    1:1:java.lang.Object asAsmEncodedObject():939:939 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):939:939 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):953:953 -> collectIndexedItems
+    1:1:boolean equals(java.lang.Object):939:939 -> equals
+    1:1:java.lang.Object getBoxedValue():939:939 -> h
+    1:1:int hashCode():939:939 -> hashCode
+    void sort() -> m
+    byte getValueKind() -> o
+    1:1:java.lang.String toString():939:939 -> toString
+com.android.tools.r8.graph.DexValue$DexValueField -> com.android.tools.r8.graph.k0$j:
+    1:1:void <init>(com.android.tools.r8.graph.DexField):906:906 -> <init>
+    1:1:java.lang.Object asAsmEncodedObject():903:903 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):903:903 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):917:917 -> collectIndexedItems
+    1:1:boolean equals(java.lang.Object):903:903 -> equals
+    1:1:java.lang.Object getBoxedValue():903:903 -> h
+    1:1:int hashCode():903:903 -> hashCode
+    void sort() -> m
+    byte getValueKind() -> o
+    1:1:java.lang.String toString():903:903 -> toString
+com.android.tools.r8.graph.DexValue$DexValueFloat -> com.android.tools.r8.graph.k0$k:
+    float value -> c
+    com.android.tools.r8.graph.DexValue$DexValueFloat DEFAULT -> d
+    1:1:void <clinit>():591:591 -> <clinit>
+    1:2:void <init>(float):594:595 -> <init>
+    1:1:com.android.tools.r8.graph.DexValue$DexValueFloat create(float):599:599 -> a
+    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):613:614 -> a
+    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
+    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):615 -> a
+    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    5:5:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):616 -> a
+    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):617:617 -> a
+    7:7:java.lang.Object asAsmEncodedObject():622:622 -> a
+    8:8:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):628:628 -> a
+    9:1071:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createFloatConstant(float,com.android.tools.r8.graph.DebugLocalInfo):0:1062 -> a
+    9:1071:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):628 -> a
+    1:2:boolean equals(java.lang.Object):641:642 -> equals
+    1:1:java.lang.Object getBoxedValue():608:608 -> h
+    1:1:int hashCode():633:633 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    1:1:float getValue():603:603 -> n
+    1:1:java.lang.String toString():647:647 -> toString
+com.android.tools.r8.graph.DexValue$DexValueInt -> com.android.tools.r8.graph.k0$l:
+    int value -> c
+    com.android.tools.r8.graph.DexValue$DexValueInt DEFAULT -> d
+    1:1:void <clinit>():467:467 -> <clinit>
+    1:2:void <init>(int):470:471 -> <init>
+    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):489:489 -> a
+    2:2:java.lang.Object asAsmEncodedObject():504:504 -> a
+    3:3:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):528:528 -> a
+    1:1:com.android.tools.r8.graph.DexValue$DexValueInt create(int):475:475 -> b
+    com.android.tools.r8.graph.DexValue$DexValueInt asDexValueInt() -> c
+    1:1:boolean equals(java.lang.Object):517:517 -> equals
+    1:1:java.lang.Object getBoxedValue():484:484 -> h
+    1:1:int hashCode():509:509 -> hashCode
+    boolean isDexValueInt() -> j
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    1:1:int getValue():479:479 -> n
+    1:1:java.lang.String toString():522:522 -> toString
+com.android.tools.r8.graph.DexValue$DexValueLong -> com.android.tools.r8.graph.k0$m:
+    com.android.tools.r8.graph.DexValue$DexValueLong DEFAULT -> d
+    long value -> c
+    1:1:void <clinit>():534:534 -> <clinit>
+    1:2:void <init>(long):537:538 -> <init>
+    1:1:com.android.tools.r8.graph.DexValue$DexValueLong create(long):542:542 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):556:556 -> a
+    3:3:java.lang.Object asAsmEncodedObject():561:561 -> a
+    4:4:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):585:585 -> a
+    5:1081:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createLongConstant(long,com.android.tools.r8.graph.DebugLocalInfo):0:1076 -> a
+    5:1081:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):585 -> a
+    1:1:boolean equals(java.lang.Object):574:574 -> equals
+    1:1:java.lang.Object getBoxedValue():551:551 -> h
+    1:1:int hashCode():566:566 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    1:1:long getValue():546:546 -> n
+    1:1:java.lang.String toString():579:579 -> toString
+com.android.tools.r8.graph.DexValue$DexValueMethod -> com.android.tools.r8.graph.k0$n:
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod):924:924 -> <init>
+    1:1:java.lang.Object asAsmEncodedObject():921:921 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):921:921 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):935:935 -> collectIndexedItems
+    2:2:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):43:43 -> collectIndexedItems
+    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):935 -> collectIndexedItems
+    3:3:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60:60 -> collectIndexedItems
+    3:3:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):44 -> collectIndexedItems
+    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):935 -> collectIndexedItems
+    4:249:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    4:249:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60 -> collectIndexedItems
+    4:249:void com.android.tools.r8.graph.DexMethod.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):44 -> collectIndexedItems
+    4:249:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):935 -> collectIndexedItems
+    1:1:boolean equals(java.lang.Object):921:921 -> equals
+    1:1:java.lang.Object getBoxedValue():921:921 -> h
+    1:1:int hashCode():921:921 -> hashCode
+    void sort() -> m
+    byte getValueKind() -> o
+    1:1:java.lang.String toString():921:921 -> toString
+com.android.tools.r8.graph.DexValue$DexValueMethodHandle -> com.android.tools.r8.graph.k0$o:
+    1:1:void <init>(com.android.tools.r8.graph.DexMethodHandle):1231:1231 -> <init>
+    1:1:java.lang.Object asAsmEncodedObject():1228:1228 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1228:1228 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1247:1247 -> collectIndexedItems
+    com.android.tools.r8.graph.DexValue$DexValueMethodHandle asDexValueMethodHandle() -> d
+    1:1:boolean equals(java.lang.Object):1228:1228 -> equals
+    1:1:java.lang.Object getBoxedValue():1228:1228 -> h
+    1:1:int hashCode():1228:1228 -> hashCode
+    void sort() -> m
+    byte getValueKind() -> o
+    1:1:java.lang.String toString():1228:1228 -> toString
+com.android.tools.r8.graph.DexValue$DexValueMethodType -> com.android.tools.r8.graph.k0$p:
+    1:1:void <init>(com.android.tools.r8.graph.DexProto):960:960 -> <init>
+    1:1:java.lang.Object asAsmEncodedObject():957:957 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):957:957 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):976:976 -> collectIndexedItems
+    com.android.tools.r8.graph.DexValue$DexValueMethodType asDexValueMethodType() -> e
+    1:1:boolean equals(java.lang.Object):957:957 -> equals
+    1:1:java.lang.Object getBoxedValue():957:957 -> h
+    1:1:int hashCode():957:957 -> hashCode
+    void sort() -> m
+    byte getValueKind() -> o
+    1:1:java.lang.String toString():957:957 -> toString
+com.android.tools.r8.graph.DexValue$DexValueNull -> com.android.tools.r8.graph.k0$q:
+    com.android.tools.r8.graph.DexValue NULL -> c
+    1:1:void <clinit>():1117:1117 -> <clinit>
+    1:1:void <init>():1120:1120 -> <init>
+    java.lang.Object asAsmEncodedObject() -> a
+    1:1101:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createConstNull(com.android.tools.r8.graph.DebugLocalInfo):0:1100 -> a
+    1:1101:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):1163 -> a
+    1102:1102:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    1102:1102:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    1102:1102:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1129 -> a
+    1:1:boolean equals(java.lang.Object):1152:1152 -> equals
+    java.lang.Object getBoxedValue() -> h
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+com.android.tools.r8.graph.DexValue$DexValueShort -> com.android.tools.r8.graph.k0$r:
+    com.android.tools.r8.graph.DexValue$DexValueShort DEFAULT -> d
+    short value -> c
+    1:1:void <clinit>():349:349 -> <clinit>
+    1:2:void <init>(short):352:353 -> <init>
+    1:1:com.android.tools.r8.graph.DexValue$DexValueShort create(short):357:357 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):371:371 -> a
+    3:3:java.lang.Object asAsmEncodedObject():376:376 -> a
+    4:4:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):400:400 -> a
+    1:1:boolean equals(java.lang.Object):389:389 -> equals
+    1:1:java.lang.Object getBoxedValue():366:366 -> h
+    1:1:int hashCode():381:381 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    1:1:short getValue():361:361 -> n
+    1:1:java.lang.String toString():394:394 -> toString
+com.android.tools.r8.graph.DexValue$DexValueString -> com.android.tools.r8.graph.k0$s:
+    1:1:void <init>(com.android.tools.r8.graph.DexString):786:786 -> <init>
+    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):783:783 -> a
+    2:2:java.lang.Object asAsmEncodedObject():801:801 -> a
+    3:7:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):812:816 -> a
+    1:1:void com.android.tools.r8.graph.DexValue$NestedDexValue.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):752:752 -> collectIndexedItems
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):783 -> collectIndexedItems
+    1:1:boolean equals(java.lang.Object):783:783 -> equals
+    com.android.tools.r8.graph.DexValue$DexValueString asDexValueString() -> f
+    1:1:java.lang.Object getBoxedValue():783:783 -> h
+    1:1:int hashCode():783:783 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    void sort() -> m
+    com.android.tools.r8.graph.IndexedDexItem getValue() -> n
+    byte getValueKind() -> o
+    1:1:java.lang.String toString():783:783 -> toString
+com.android.tools.r8.graph.DexValue$DexValueType -> com.android.tools.r8.graph.k0$t:
+    1:1:void <init>(com.android.tools.r8.graph.DexType):878:878 -> <init>
+    1:1:java.lang.Object asAsmEncodedObject():875:875 -> a
+    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):875:875 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):889:889 -> collectIndexedItems
+    2:152:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:150 -> collectIndexedItems
+    2:152:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):889 -> collectIndexedItems
+    153:398:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0:245 -> collectIndexedItems
+    153:398:void com.android.tools.r8.graph.DexType.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):150 -> collectIndexedItems
+    153:398:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):889 -> collectIndexedItems
+    1:1:boolean equals(java.lang.Object):875:875 -> equals
+    com.android.tools.r8.graph.DexValue$DexValueType asDexValueType() -> g
+    1:1:java.lang.Object getBoxedValue():875:875 -> h
+    1:1:int hashCode():875:875 -> hashCode
+    boolean isDexValueType() -> k
+    void sort() -> m
+    byte getValueKind() -> o
+    1:1:java.lang.String toString():875:875 -> toString
+com.android.tools.r8.graph.DexValue$NestedDexValue -> com.android.tools.r8.graph.k0$u:
+    com.android.tools.r8.graph.IndexedDexItem value -> c
+    1:1:void <init>(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.graph.DexValue$1):715:715 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.IndexedDexItem):719:720 -> <init>
+    1:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):731:732 -> a
+    3:3:int com.android.tools.r8.dex.DexOutputBuffer.putUnsignedEncodedValue(long,int):92:92 -> a
+    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):733 -> a
+    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
+    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):734 -> a
+    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):735:735 -> a
+    6:6:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    6:6:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):735 -> a
+    7:7:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):736:736 -> a
+    8:8:java.lang.Object asAsmEncodedObject():746:746 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):752:752 -> collectIndexedItems
+    1:3:boolean equals(java.lang.Object):770:772 -> equals
+    1:1:java.lang.Object getBoxedValue():741:741 -> h
+    1:1:int hashCode():762:762 -> hashCode
+    void sort() -> m
+    1:1:com.android.tools.r8.graph.IndexedDexItem getValue():726:726 -> n
+    byte getValueKind() -> o
+    1:1:java.lang.String toString():779:779 -> toString
+com.android.tools.r8.graph.DexValue$SimpleDexValue -> com.android.tools.r8.graph.k0$v:
+    1:1:void <init>():259:259 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexValue$1):259:259 -> <init>
+    1:1:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):280:280 -> a
+    2:2:int com.android.tools.r8.dex.DexOutputBuffer.putSignedEncodedValue(long,int):88:88 -> a
+    2:2:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):281 -> a
+    3:3:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
+    3:3:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):282 -> a
+    4:4:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
+    4:4:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
+    4:4:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):283 -> a
+    5:5:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):284:284 -> a
+com.android.tools.r8.graph.DexValue$UnknownDexValue -> com.android.tools.r8.graph.k0$w:
+    com.android.tools.r8.graph.DexValue$UnknownDexValue UNKNOWN -> c
+    1:1:void <clinit>():201:201 -> <clinit>
+    1:1:void <init>():203:203 -> <init>
+    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo) -> a
+    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):224:224 -> a
+    2:2:java.lang.Object asAsmEncodedObject():234:234 -> a
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):209:209 -> collectIndexedItems
+    1:1:java.lang.Object getBoxedValue():229:229 -> h
+    1:1:int hashCode():239:239 -> hashCode
+    boolean mayHaveSideEffects() -> l
+    1:1:void sort():214:214 -> m
+com.android.tools.r8.graph.DirectMappedDexApplication -> com.android.tools.r8.graph.l0:
+    boolean $assertionsDisabled -> n
+    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> m
+    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> l
+    com.android.tools.r8.com.google.common.collect.ImmutableList programClasses -> k
+    java.util.Map codeOwners -> i
+    java.util.Map allClasses -> j
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.DirectMappedDexApplication$1):22:22 -> <init>
+    2:2:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):46:46 -> <init>
+    3:33:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):26:56 -> <init>
+    com.android.tools.r8.graph.DirectMappedDexApplication asDirect() -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$100(com.android.tools.r8.graph.DirectMappedDexApplication):22:22 -> a
+    2:3:com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType):118:119 -> a
+    4:5:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLens(com.android.tools.r8.graph.GraphLense):149:150 -> a
+    6:12:boolean mappingIsValid(com.android.tools.r8.graph.GraphLense,java.lang.Iterable):169:175 -> a
+    6:12:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLens(com.android.tools.r8.graph.GraphLense):150 -> a
+    13:13:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLens(com.android.tools.r8.graph.GraphLense):151:151 -> a
+    14:16:boolean verifyNothingToRewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):156:156 -> a
+    21:21:boolean verifyNothingToRewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):161:161 -> a
+    22:23:boolean lambda$verifyNothingToRewrite$0(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):159:160 -> a
+    24:26:void addAll(java.util.Map,java.lang.Iterable):283:285 -> a
+    24:26:void access$300(java.util.Map,java.lang.Iterable):22 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$200(com.android.tools.r8.graph.DirectMappedDexApplication):22:22 -> b
+    2:2:com.android.tools.r8.graph.DexApplication$Builder builder():22:22 -> b
+    1:2:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):102:103 -> definitionFor
+    1:1:com.android.tools.r8.graph.DexItemFactory dexItemFactory():113:113 -> dexItemFactory
+    1:1:java.util.List programClasses():65:65 -> f
+    com.android.tools.r8.graph.DirectMappedDexApplication toDirect() -> g
+    1:1:java.util.Collection allClasses():60:60 -> h
+    1:1:com.android.tools.r8.graph.DirectMappedDexApplication$Builder builder():124:124 -> i
+    1:1:java.util.Collection classpathClasses():73:73 -> j
+    1:1:java.util.Collection libraryClasses():69:69 -> k
+    1:12:boolean verifyCodeObjectsOwners():194:205 -> l
+com.android.tools.r8.graph.DirectMappedDexApplication$1 -> com.android.tools.r8.graph.l0$a:
+com.android.tools.r8.graph.DirectMappedDexApplication$Builder -> com.android.tools.r8.graph.l0$b:
+    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> l
+    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> k
+    1:1:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DirectMappedDexApplication$1):211:211 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication):217:222 -> <init>
+    8:10:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication):226:228 -> <init>
+    1:1:com.android.tools.r8.graph.DexApplication build():211:211 -> a
+    1:1:com.android.tools.r8.graph.DirectMappedDexApplication$Builder replaceClasspathClasses(java.util.Collection):242:242 -> b
+    2:5:com.android.tools.r8.graph.DirectMappedDexApplication$Builder addClasspathClasses(java.util.List):248:251 -> b
+    1:1:com.android.tools.r8.graph.DirectMappedDexApplication$Builder replaceLibraryClasses(java.util.Collection):237:237 -> c
+    com.android.tools.r8.graph.DexApplication$Builder self() -> e
+    1:16:com.android.tools.r8.graph.DirectMappedDexApplication build():259:274 -> f
+com.android.tools.r8.graph.EnclosingMethodAttribute -> com.android.tools.r8.graph.m0:
+    com.android.tools.r8.graph.DexType enclosingClass -> a
+    com.android.tools.r8.graph.DexMethod enclosingMethod -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexType):27:28 -> <init>
+    3:4:void <init>(com.android.tools.r8.graph.DexMethod):31:32 -> <init>
+    1:5:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):36:40 -> a
+    6:11:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):37:42 -> a
+    12:12:com.android.tools.r8.graph.DexType getEnclosingClass():51:51 -> a
+    13:17:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):68:72 -> a
+    1:1:com.android.tools.r8.graph.DexMethod getEnclosingMethod():47:47 -> b
+    1:1:boolean equals(java.lang.Object):62:62 -> equals
+    1:2:int hashCode():56:57 -> hashCode
+    1:4:java.lang.String toString():78:81 -> toString
+com.android.tools.r8.graph.FieldAccessFlags -> com.android.tools.r8.graph.n0:
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:1:void <init>(int,int):44:44 -> <init>
+    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> D
+    1:1:int getAsCfAccessFlags():72 -> D
+    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> E
+    1:1:int getAsDexAccessFlags():77 -> E
+    1:1:boolean isEnum():102:102 -> F
+    1:1:boolean isTransient():94:94 -> G
+    1:1:boolean isVolatile():86:86 -> H
+    1:6:java.util.List getNames():21:26 -> c
+    1:6:java.util.List getPredicates():31:36 -> e
+    1:1:com.android.tools.r8.graph.FieldAccessFlags fromCfAccessFlags(int):67:67 -> f
+    2:2:void <init>(int):40:40 -> f
+    2:2:com.android.tools.r8.graph.FieldAccessFlags fromCfAccessFlags(int):67 -> f
+    1:1:com.android.tools.r8.graph.FieldAccessFlags fromDexAccessFlags(int):63:63 -> g
+    2:2:void <init>(int):40:40 -> g
+    2:2:com.android.tools.r8.graph.FieldAccessFlags fromDexAccessFlags(int):63 -> g
+    1:2:com.android.tools.r8.graph.FieldAccessFlags fromSharedAccessFlags(int):58:59 -> h
+    3:3:void <init>(int):40:40 -> h
+    3:3:com.android.tools.r8.graph.FieldAccessFlags fromSharedAccessFlags(int):59 -> h
+com.android.tools.r8.graph.FieldAccessInfo -> com.android.tools.r8.graph.o0:
+com.android.tools.r8.graph.FieldAccessInfoCollection -> com.android.tools.r8.graph.p0:
+com.android.tools.r8.graph.FieldAccessInfoCollectionImpl -> com.android.tools.r8.graph.q0:
+    java.util.Map infos -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:4:void <init>():13:16 -> <init>
+    1:1:void flattenAccessContexts():20:20 -> a
+    2:2:com.android.tools.r8.graph.FieldAccessInfoImpl get(com.android.tools.r8.graph.DexField):25:25 -> a
+    2:2:com.android.tools.r8.graph.FieldAccessInfo get(com.android.tools.r8.graph.DexField):13 -> a
+    3:4:void extend(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):29:30 -> a
+    5:6:void forEach(java.util.function.Consumer):36:37 -> a
+    7:7:boolean lambda$removeIf$0(java.util.function.BiPredicate,java.util.Map$Entry):42:42 -> a
+    8:8:void removeIf(java.util.function.BiPredicate):42:42 -> a
+    9:10:com.android.tools.r8.graph.FieldAccessInfoCollectionImpl rewrittenWithLens(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):47:48 -> a
+    11:13:void lambda$rewrittenWithLens$1(com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):50:50 -> a
+    1:1:com.android.tools.r8.graph.FieldAccessInfoImpl get(com.android.tools.r8.graph.DexField):25:25 -> b
+    2:2:boolean verifyMappingIsOneToOne():58:58 -> b
+com.android.tools.r8.graph.FieldAccessInfoImpl -> com.android.tools.r8.graph.r0:
+    java.util.Map readsWithContexts -> c
+    java.util.Map writesWithContexts -> d
+    com.android.tools.r8.graph.FieldAccessInfoImpl MISSING_FIELD_ACCESS_INFO -> e
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.graph.DexField field -> a
+    boolean hasReflectiveAccess -> b
+    1:3:void <clinit>():21:23 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexField):39:40 -> <init>
+    1:13:void flattenAccessContexts(java.util.Map):50:62 -> a
+    14:15:void lambda$flattenAccessContexts$1(java.util.Set,com.android.tools.r8.graph.DexField,java.util.Set):54:55 -> a
+    16:19:void forEachIndirectAccess(java.util.function.Consumer):111:114 -> a
+    20:20:boolean lambda$forEachIndirectAccess$2(java.util.Set,com.android.tools.r8.graph.DexField):113:113 -> a
+    21:21:void forEachAccessInMap(java.util.Map,java.util.function.Predicate,java.util.function.Consumer):123:123 -> a
+    22:23:void lambda$forEachAccessInMap$4(java.util.function.Predicate,java.util.function.Consumer,com.android.tools.r8.graph.DexField,java.util.Set):125:126 -> a
+    24:29:void forEachIndirectAccessWithContexts(java.util.function.BiConsumer):135:140 -> a
+    30:30:void extendAccessesWithContexts(java.util.Map,java.util.function.Predicate,java.util.Map):148:148 -> a
+    31:34:void lambda$extendAccessesWithContexts$8(java.util.function.Predicate,java.util.Map,com.android.tools.r8.graph.DexField,java.util.Set):150:153 -> a
+    35:35:java.util.Set lambda$extendAccessesWithContexts$7(com.android.tools.r8.graph.DexField):152:152 -> a
+    36:41:void forEachAccessContext(java.util.Map,java.util.function.Consumer):174:179 -> a
+    42:45:boolean isWrittenInMethodSatisfying(java.util.function.Predicate):220:223 -> a
+    46:48:boolean isWrittenOutside(com.android.tools.r8.graph.DexEncodedMethod):237:239 -> a
+    49:54:boolean recordRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):250:255 -> a
+    55:55:void clearWrites():272:272 -> a
+    56:57:com.android.tools.r8.graph.FieldAccessInfoImpl rewrittenWithLens(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):276:277 -> a
+    58:58:void setHasReflectiveAccess():192:192 -> a
+    58:58:com.android.tools.r8.graph.FieldAccessInfoImpl rewrittenWithLens(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):278 -> a
+    59:73:com.android.tools.r8.graph.FieldAccessInfoImpl rewrittenWithLens(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):280:294 -> a
+    74:76:void lambda$rewrittenWithLens$12(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,java.util.Set):284:286 -> a
+    77:80:void lambda$rewrittenWithLens$12(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,java.util.Set):285:288 -> a
+    1:2:void flattenAccessContexts():44:45 -> b
+    3:3:java.util.Set lambda$flattenAccessContexts$0(com.android.tools.r8.graph.DexField):51:51 -> b
+    4:4:boolean lambda$forEachIndirectAccess$3(java.util.Set,com.android.tools.r8.graph.DexField):115:115 -> b
+    5:5:void forEachReadContext(java.util.function.Consumer):161:161 -> b
+    6:11:boolean recordWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):259:264 -> b
+    12:14:void lambda$rewrittenWithLens$14(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,java.util.Set):296:298 -> b
+    15:18:void lambda$rewrittenWithLens$14(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,java.util.Set):297:300 -> b
+    1:1:com.android.tools.r8.graph.DexField getField():73:73 -> c
+    2:2:boolean lambda$forEachIndirectAccessWithContexts$5(com.android.tools.r8.graph.DexField):137:137 -> c
+    3:3:void forEachWriteContext(java.util.function.Consumer):166:166 -> c
+    1:1:int getNumberOfWriteContexts():83:83 -> d
+    2:5:int getNumberOfAccessContexts(java.util.Map):90:93 -> d
+    2:5:int getNumberOfWriteContexts():83 -> d
+    6:6:boolean lambda$forEachIndirectAccessWithContexts$6(com.android.tools.r8.graph.DexField):139:139 -> d
+    1:4:com.android.tools.r8.graph.DexEncodedMethod getUniqueReadContext():98:101 -> e
+    5:5:java.util.Set lambda$recordRead$9(com.android.tools.r8.graph.DexField):254:254 -> e
+    1:1:boolean hasReflectiveAccess():188:188 -> f
+    2:2:java.util.Set lambda$recordWrite$10(com.android.tools.r8.graph.DexField):263:263 -> f
+    1:1:boolean isRead():198:198 -> g
+    2:2:java.util.Set lambda$rewrittenWithLens$11(com.android.tools.r8.graph.DexField):286:286 -> g
+    1:1:boolean isWritten():212:212 -> h
+    2:2:java.util.Set lambda$rewrittenWithLens$13(com.android.tools.r8.graph.DexField):298:298 -> h
+    1:1:void setHasReflectiveAccess():192:192 -> i
+com.android.tools.r8.graph.GraphLense -> com.android.tools.r8.graph.s0:
+    1:1:void <clinit>():39:39 -> <clinit>
+    1:1:void <init>():39:39 -> <init>
+    1:1:com.android.tools.r8.graph.GraphLense getIdentityLense():223:223 -> a
+    2:6:com.android.tools.r8.com.google.common.collect.ImmutableMap rewriteReferenceKeys(java.util.Map,java.util.function.Function):325:329 -> a
+    1:6:boolean assertDefinitionsNotModified(java.lang.Iterable):242:247 -> assertDefinitionsNotModified
+    1:11:boolean assertReferencesNotModified(java.lang.Iterable):253:263 -> assertReferencesNotModified
+    1:1:boolean isIdentityLense():231:231 -> isIdentityLense
+    1:2:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod):169:170 -> lookupMethod
+    1:3:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):180:182 -> lookupMethodInAllContexts
+    1:7:com.android.tools.r8.graph.DexReference lookupReference(com.android.tools.r8.graph.DexReference):196:202 -> lookupReference
+    1:14:com.android.tools.r8.graph.DexEncodedMethod mapDexEncodedMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexDefinitionSupplier):148:161 -> mapDexEncodedMethod
+    1:12:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteMethodsConservatively(java.util.Set):309:320 -> rewriteMethodsConservatively
+    1:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteMethodsWithRenamedSignature(java.util.Set):300:305 -> rewriteMethodsWithRenamedSignature
+    1:10:com.android.tools.r8.com.google.common.collect.ImmutableSet rewriteReferencesConservatively(java.util.Set):270:279 -> rewriteReferencesConservatively
+    11:20:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap rewriteReferencesConservatively(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):284:293 -> rewriteReferencesConservatively
+    1:1:boolean verifyIsContextFreeForMethod(com.android.tools.r8.graph.DexMethod):219:219 -> verifyIsContextFreeForMethod
+    1:29:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):337:365 -> verifyMappingToOriginalProgram
+    30:50:boolean verifyIsBridgeMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexApplication,java.util.Set,com.android.tools.r8.graph.DexItemFactory):384:404 -> verifyMappingToOriginalProgram
+    30:50:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):366 -> verifyMappingToOriginalProgram
+    51:55:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):365:369 -> verifyMappingToOriginalProgram
+    1:2:com.android.tools.r8.graph.GraphLense withCodeRewritingsApplied():235:236 -> withCodeRewritingsApplied
+com.android.tools.r8.graph.GraphLense$1 -> com.android.tools.r8.graph.s0$a:
+com.android.tools.r8.graph.GraphLense$Builder -> com.android.tools.r8.graph.s0$b:
+    java.util.Map typeMap -> a
+    java.util.Map methodMap -> b
+    java.util.Map fieldMap -> c
+    com.android.tools.r8.com.google.common.collect.BiMap originalFieldSignatures -> d
+    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> e
+    1:8:void <init>():67:74 -> <init>
+    1:1:void map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):87:87 -> a
+    2:2:void map(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):94:94 -> a
+    3:6:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense):118:121 -> a
+    1:1:void map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):87:87 -> b
+    1:1:void move(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):101 -> b
+    2:2:void move(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):102:102 -> b
+com.android.tools.r8.graph.GraphLense$ClearCodeRewritingGraphLens -> com.android.tools.r8.graph.s0$c:
+    com.android.tools.r8.graph.GraphLense previous -> b
+    1:2:void <init>(com.android.tools.r8.graph.GraphLense):481:482 -> <init>
+    1:1:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):492:492 -> getOriginalFieldSignature
+    1:1:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):497:497 -> getOriginalMethodSignature
+    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):487:487 -> getOriginalType
+    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):502:502 -> getRenamedFieldSignature
+    1:1:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):507:507 -> getRenamedMethodSignature
+    1:1:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult com.android.tools.r8.graph.GraphLense$IdentityGraphLense.lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):452:452 -> lookupMethod
+    1:1:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):478 -> lookupMethod
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription com.android.tools.r8.graph.GraphLense$IdentityGraphLense.lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):457:457 -> lookupPrototypeChanges
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):478 -> lookupPrototypeChanges
+    1:1:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):512:512 -> lookupType
+com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult -> com.android.tools.r8.graph.s0$d:
+    com.android.tools.r8.ir.code.Invoke$Type type -> b
+    com.android.tools.r8.graph.DexMethod method -> a
+    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):51:53 -> <init>
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():57:57 -> a
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():61:61 -> b
+com.android.tools.r8.graph.GraphLense$IdentityGraphLense -> com.android.tools.r8.graph.s0$e:
+    com.android.tools.r8.graph.GraphLense$IdentityGraphLense INSTANCE -> a
+    1:1:void <clinit>():412:412 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.GraphLense$1):410:410 -> <init>
+    2:2:void <init>():414:414 -> <init>
+    1:1:com.android.tools.r8.graph.GraphLense$IdentityGraphLense getInstance():417:417 -> b
+    1:1:com.android.tools.r8.graph.GraphLense$IdentityGraphLense access$000():410 -> b
+    1:1:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):452:452 -> lookupMethod
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):457:457 -> lookupPrototypeChanges
+com.android.tools.r8.graph.GraphLense$NestedGraphLense -> com.android.tools.r8.graph.s0$f:
+    1:1:void <clinit>():526:526 -> <clinit>
+    1:1:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):554:554 -> <init>
+    2:26:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):532:556 -> <init>
+    27:35:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):555:563 -> <init>
+    1:4:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):582:585 -> getOriginalFieldSignature
+    1:4:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):591:594 -> getOriginalMethodSignature
+    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):576:576 -> getOriginalType
+    1:3:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):599:601 -> getRenamedFieldSignature
+    1:3:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):607:609 -> getRenamedMethodSignature
+    1:1:boolean isContextFreeForMethods():723:723 -> isContextFreeForMethods
+    1:2:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField):717:718 -> lookupField
+    1:1:com.android.tools.r8.graph.DexMethod lookupGetFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):660:660 -> lookupGetFieldForMethod
+    1:12:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):639:650 -> lookupMethod
+    1:3:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):708:710 -> lookupMethodInAllContexts
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):655:655 -> lookupPrototypeChanges
+    1:1:com.android.tools.r8.graph.DexMethod lookupPutFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):665:665 -> lookupPutFieldForMethod
+    1:19:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):615:633 -> lookupType
+    1:12:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):688:699 -> mapVirtualInterfaceInvocationTypes
+    13:13:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> mapVirtualInterfaceInvocationTypes
+    13:13:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):699 -> mapVirtualInterfaceInvocationTypes
+    14:16:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):699:701 -> mapVirtualInterfaceInvocationTypes
+    17:17:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> mapVirtualInterfaceInvocationTypes
+    17:17:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):701 -> mapVirtualInterfaceInvocationTypes
+    18:18:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):701:701 -> mapVirtualInterfaceInvocationTypes
+    1:17:java.lang.String toString():734:750 -> toString
+    1:1:boolean verifyIsContextFreeForMethod(com.android.tools.r8.graph.DexMethod):728:728 -> verifyIsContextFreeForMethod
+    1:4:java.lang.Object withAlternativeParentLens(com.android.tools.r8.graph.GraphLense,java.util.function.Supplier):567:570 -> withAlternativeParentLens
+com.android.tools.r8.graph.IndexedDexItem -> com.android.tools.r8.graph.t0:
+    boolean $assertionsDisabled -> b
+    int sortedIndex -> a
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:4:void <init>():12:15 -> <init>
+    int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
+    1:1:int getSortedIndex():40:40 -> a
+    1:3:void setSortedIndex(int):33:35 -> b
+    4:4:void resetSortedIndex():58:58 -> b
+    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):24:24 -> collectMixedSectionItems
+    1:4:int sortedCompareTo(int):45:48 -> d
+    1:1:void flushCachedValues():53:53 -> flushCachedValues
+    2:2:void resetSortedIndex():58:58 -> flushCachedValues
+    2:2:void flushCachedValues():54 -> flushCachedValues
+com.android.tools.r8.graph.InnerClassAttribute -> com.android.tools.r8.graph.u0:
+    com.android.tools.r8.graph.DexString innerName -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.DexType outer -> c
+    com.android.tools.r8.graph.DexType inner -> b
+    int access -> a
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:6:void <init>(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):33:38 -> <init>
+    1:1:com.android.tools.r8.graph.InnerClassAttribute createUnknownNamedInnerClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):30:30 -> a
+    2:2:int getAccess():50:50 -> a
+    3:3:com.android.tools.r8.graph.DexType getOuter():58:58 -> a
+    3:3:com.android.tools.r8.graph.DexType getLiveContext(com.android.tools.r8.shaking.AppInfoWithLiveness):85 -> a
+    4:4:com.android.tools.r8.graph.DexType getInner():54:54 -> a
+    4:4:com.android.tools.r8.graph.DexType getLiveContext(com.android.tools.r8.shaking.AppInfoWithLiveness):87 -> a
+    5:17:com.android.tools.r8.graph.DexType getLiveContext(com.android.tools.r8.shaking.AppInfoWithLiveness):87:99 -> a
+    18:22:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):66:70 -> a
+    23:23:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):67:67 -> a
+    24:29:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):75:80 -> a
+    1:1:com.android.tools.r8.graph.DexType getInner():54:54 -> b
+    1:1:com.android.tools.r8.graph.DexString getInnerName():62:62 -> c
+    1:1:com.android.tools.r8.graph.DexType getOuter():58:58 -> d
+    1:1:boolean isAnonymous():46:46 -> e
+    1:1:boolean isNamed():42:42 -> f
+    1:4:java.lang.String toString():108:111 -> toString
+com.android.tools.r8.graph.InstantiatedSubTypeInfo -> com.android.tools.r8.graph.v0:
+com.android.tools.r8.graph.JarApplicationReader -> com.android.tools.r8.graph.w0:
+    java.util.concurrent.ConcurrentHashMap stringCache -> d
+    com.android.tools.r8.utils.InternalOptions options -> a
+    java.util.concurrent.ConcurrentHashMap asmTypeCache -> c
+    java.util.concurrent.ConcurrentHashMap asmObjectTypeCache -> b
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):27:27 -> <init>
+    2:7:void <init>(com.android.tools.r8.utils.InternalOptions):23:28 -> <init>
+    1:1:com.android.tools.r8.org.objectweb.asm.Type getAsmObjectType(java.lang.String):32:32 -> a
+    2:2:com.android.tools.r8.graph.DexItemFactory getFactory():40:40 -> a
+    3:3:com.android.tools.r8.graph.DexField getField(com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String):88:88 -> a
+    1:1:com.android.tools.r8.org.objectweb.asm.Type getAsmType(java.lang.String):36:36 -> b
+    2:2:com.android.tools.r8.graph.DexMethod getMethod(com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String):96:96 -> b
+    1:1:com.android.tools.r8.graph.DexProto getProto(java.lang.String):113:113 -> c
+    2:2:boolean isValidDescriptor(java.lang.String):138:138 -> c
+    2:2:com.android.tools.r8.graph.DexProto getProto(java.lang.String):113 -> c
+    3:13:com.android.tools.r8.graph.DexProto getProto(java.lang.String):113:123 -> c
+    14:21:com.android.tools.r8.graph.DexTypeList getTypeListFromDescriptors(java.lang.String[]):73:80 -> c
+    14:21:com.android.tools.r8.graph.DexProto getProto(java.lang.String):124 -> c
+    22:22:com.android.tools.r8.graph.DexProto getProto(java.lang.String):125:125 -> c
+    23:23:com.android.tools.r8.graph.DexProto getProto(java.lang.String):122:122 -> c
+    1:4:java.lang.String getShortyDescriptor(java.lang.String):130:133 -> d
+    1:1:com.android.tools.r8.graph.DexString getString(java.lang.String):44:44 -> e
+    1:1:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57:57 -> f
+    2:2:boolean isValidDescriptor(java.lang.String):138:138 -> f
+    2:2:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57 -> f
+    3:4:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57:58 -> f
+    1:1:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52:52 -> g
+    2:2:boolean isValidInternalName(java.lang.String):142:142 -> g
+    2:2:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52 -> g
+    3:4:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52:53 -> g
+    5:5:com.android.tools.r8.graph.DexType getType(com.android.tools.r8.org.objectweb.asm.Type):48:48 -> g
+    5:5:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):53 -> g
+com.android.tools.r8.graph.JarClassFileReader -> com.android.tools.r8.graph.x0:
+    java.util.function.Consumer classConsumer -> b
+    com.android.tools.r8.graph.JarApplicationReader application -> a
+    byte[] CLASSFILE_HEADER -> c
+    boolean $assertionsDisabled -> d
+    1:3:void <clinit>():70:72 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):81:83 -> <init>
+    1:1:int access$000(int):70:70 -> a
+    2:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor access$100(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):70:70 -> a
+    3:3:com.android.tools.r8.graph.DexEncodedAnnotation access$1700(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):70:70 -> a
+    4:13:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):87:96 -> a
+    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    14:14:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):96 -> a
+    15:37:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):96:118 -> a
+    38:38:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
+    38:38:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):118 -> a
+    39:45:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):123:129 -> a
+    46:50:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):127:131 -> a
+    51:51:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
+    51:51:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):131 -> a
+    52:52:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):131:131 -> a
+    53:53:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):101:101 -> a
+    54:54:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    54:54:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):101 -> a
+    55:55:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):101:101 -> a
+    56:58:com.android.tools.r8.graph.MethodAccessFlags createMethodAccessFlags(java.lang.String,int):150:152 -> a
+    59:62:void lambda$createAnnotationVisitor$0(java.util.List,int,java.lang.String,com.android.tools.r8.graph.JarApplicationReader,java.util.List,java.util.List):164:164 -> a
+    63:70:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):533:540 -> a
+    63:70:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):70 -> a
+    71:71:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    71:71:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):540 -> a
+    71:71:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):70 -> a
+    72:75:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):540:543 -> a
+    72:75:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):70 -> a
+    76:76:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):534:534 -> a
+    76:76:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):70 -> a
+    int cleanAccessFlags(int) -> b
+    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):158:158 -> b
+    2:4:boolean retainCompileTimeAnnotation(java.lang.String,com.android.tools.r8.graph.JarApplicationReader):173:175 -> b
+    2:4:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):159 -> b
+    5:5:boolean retainCompileTimeAnnotation(java.lang.String,com.android.tools.r8.graph.JarApplicationReader):174:174 -> b
+    5:5:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):159 -> b
+    6:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):161:161 -> b
+    7:9:com.android.tools.r8.graph.DexEncodedAnnotation createEncodedAnnotation(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):180:180 -> b
+    11:15:com.android.tools.r8.graph.DexEncodedAnnotation createEncodedAnnotation(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):182:186 -> b
+    1:1:com.android.tools.r8.graph.FieldAccessFlags createFieldAccessFlags(int):145:145 -> c
+com.android.tools.r8.graph.JarClassFileReader$CreateAnnotationVisitor -> com.android.tools.r8.graph.x0$a:
+    java.util.List values -> d
+    java.util.List names -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.JarApplicationReader application -> a
+    java.util.function.BiConsumer onVisitEnd -> b
+    1:1:void <clinit>():861:861 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.BiConsumer):870:870 -> <init>
+    2:9:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.BiConsumer):865:872 -> <init>
+    1:2:void visitEnum(java.lang.String,java.lang.String,java.lang.String):882:883 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):888:888 -> a
+    4:6:void lambda$visitAnnotation$0(java.lang.String,java.lang.String,java.util.List,java.util.List):889:889 -> a
+    7:7:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):895:895 -> a
+    8:9:void lambda$visitArray$1(java.lang.String,java.util.List,java.util.List):896:897 -> a
+    10:10:void visitEnd():903:903 -> a
+    11:16:void addElement(java.lang.String,com.android.tools.r8.graph.DexValue):908:913 -> a
+    17:38:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):979:1000 -> a
+    17:38:void visit(java.lang.String,java.lang.Object):877 -> a
+    39:94:com.android.tools.r8.graph.DexValue$DexValueArray getDexValueArray(java.lang.Object):917:972 -> a
+    39:94:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):1002 -> a
+    39:94:void visit(java.lang.String,java.lang.Object):877 -> a
+    95:95:void visit(java.lang.String,java.lang.Object):877:877 -> a
+    96:96:com.android.tools.r8.graph.DexValue$DexValueArray getDexValueArray(java.lang.Object):974:974 -> a
+    96:96:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):1002 -> a
+    96:96:void visit(java.lang.String,java.lang.Object):877 -> a
+com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor -> com.android.tools.r8.graph.x0$b:
+    com.android.tools.r8.graph.ClassKind classKind -> d
+    java.util.List annotations -> r
+    java.util.Set methodSignatures -> y
+    com.android.tools.r8.graph.ClassAccessFlags accessFlags -> j
+    int version -> h
+    java.util.List staticFields -> t
+    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMember -> p
+    java.util.List virtualMethods -> x
+    com.android.tools.r8.origin.Origin origin -> c
+    java.util.function.Consumer classConsumer -> f
+    boolean $assertionsDisabled -> A
+    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> g
+    com.android.tools.r8.graph.DexType superType -> k
+    java.util.List innerClasses -> q
+    com.android.tools.r8.graph.DexType type -> i
+    java.util.List nestMembers -> o
+    java.util.List instanceFields -> u
+    java.util.List defaultAnnotations -> s
+    java.util.Set fieldSignatures -> v
+    java.util.List directMethods -> w
+    com.android.tools.r8.graph.JarApplicationReader application -> e
+    boolean hasReachabilitySensitiveMethod -> z
+    com.android.tools.r8.graph.NestHostClassAttribute nestHost -> n
+    com.android.tools.r8.graph.DexTypeList interfaces -> l
+    com.android.tools.r8.graph.DexString sourceFile -> m
+    1:1:void <clinit>():189:189 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,byte[],com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):224:224 -> <init>
+    2:36:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,byte[],com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):195:229 -> <init>
+    long lambda$getChecksumSupplier$0(long,com.android.tools.r8.graph.DexProgramClass) -> a
+    void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute) -> a
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
+    1:1:com.android.tools.r8.graph.JarClassFileReader$ReparseContext access$1000(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> a
+    2:2:boolean access$1376(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int):189:189 -> a
+    3:7:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):235:239 -> a
+    8:22:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):237:251 -> a
+    23:23:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):246:246 -> a
+    24:29:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):257:262 -> a
+    30:32:void visitNestHost(java.lang.String):267:269 -> a
+    33:33:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):292:292 -> a
+    34:34:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):280:280 -> a
+    34:34:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):292 -> a
+    35:35:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> a
+    35:35:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):281 -> a
+    35:35:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):292 -> a
+    36:36:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):281:281 -> a
+    36:36:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):292 -> a
+    37:37:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):292:292 -> a
+    38:38:java.lang.String illegalClassFilePostfix(int):287:287 -> a
+    38:38:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):294 -> a
+    39:39:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):294:294 -> a
+    40:55:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):300:315 -> a
+    56:56:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    56:56:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    56:56:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):315 -> a
+    57:60:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):315:318 -> a
+    61:61:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> a
+    61:61:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):318 -> a
+    62:65:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):319:322 -> a
+    66:66:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):321:321 -> a
+    67:67:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    67:67:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    67:67:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):321 -> a
+    68:75:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):321:328 -> a
+    76:145:com.android.tools.r8.graph.DexTypeList com.android.tools.r8.graph.JarApplicationReader.getTypeListFromNames(java.lang.String[]):0:69 -> a
+    76:145:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):328 -> a
+    146:148:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):328:330 -> a
+    149:149:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
+    149:149:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):330 -> a
+    150:150:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):330:330 -> a
+    151:151:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):508:508 -> a
+    151:151:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):330 -> a
+    152:154:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):309:311 -> a
+    155:155:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):310:310 -> a
+    156:156:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    156:156:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    156:156:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):310 -> a
+    157:157:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):310:310 -> a
+    158:158:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):302:302 -> a
+    159:159:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    159:159:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    159:159:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):302 -> a
+    160:160:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):302:302 -> a
+    161:166:void visitSource(java.lang.String,java.lang.String):337:342 -> a
+    167:167:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
+    167:167:void visitSource(java.lang.String,java.lang.String):342 -> a
+    168:171:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createSourceDebugExtensionAnnotation(com.android.tools.r8.graph.DexValue,com.android.tools.r8.graph.DexItemFactory):199:202 -> a
+    168:171:void visitSource(java.lang.String,java.lang.String):341 -> a
+    172:172:void visitSource(java.lang.String,java.lang.String):340:340 -> a
+    173:181:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):349:357 -> a
+    182:184:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):363:365 -> a
+    185:185:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> a
+    185:185:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):365 -> a
+    186:191:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):365:370 -> a
+    192:192:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):375:375 -> a
+    193:194:void visitEnd():392:393 -> a
+    195:195:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
+    195:195:void visitEnd():394 -> a
+    196:196:void visitEnd():393:393 -> a
+    197:197:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):508:508 -> a
+    197:197:void visitEnd():393 -> a
+    198:198:void checkReachabilitySensitivity():478:478 -> a
+    198:198:void visitEnd():396 -> a
+    199:199:boolean hasReachabilitySensitiveField():489:489 -> a
+    199:199:void checkReachabilitySensitivity():478 -> a
+    199:199:void visitEnd():396 -> a
+    200:200:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
+    200:200:boolean hasReachabilitySensitiveField():489 -> a
+    200:200:void checkReachabilitySensitivity():478 -> a
+    200:200:void visitEnd():396 -> a
+    201:202:boolean hasReachabilitySensitiveField():489:490 -> a
+    201:202:void checkReachabilitySensitivity():478 -> a
+    201:202:void visitEnd():396 -> a
+    203:203:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    203:203:boolean hasReachabilitySensitiveField():490 -> a
+    203:203:void checkReachabilitySensitivity():478 -> a
+    203:203:void visitEnd():396 -> a
+    204:206:boolean hasReachabilitySensitiveField():490:492 -> a
+    204:206:void checkReachabilitySensitivity():478 -> a
+    204:206:void visitEnd():396 -> a
+    207:207:void checkReachabilitySensitivity():479:479 -> a
+    207:207:void visitEnd():396 -> a
+    208:208:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    208:208:void checkReachabilitySensitivity():479 -> a
+    208:208:void visitEnd():396 -> a
+    209:212:void checkReachabilitySensitivity():479:482 -> a
+    209:212:void visitEnd():396 -> a
+    213:230:void visitEnd():397:414 -> a
+    231:231:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
+    231:231:void visitEnd():415 -> a
+    232:233:void visitEnd():415:416 -> a
+    234:273:void visitEnd():398:437 -> a
+    274:274:void visitEnd():433:433 -> a
+    275:275:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    275:275:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    275:275:void visitEnd():433 -> a
+    276:296:void visitEnd():433:453 -> a
+    297:303:com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier getChecksumSupplier(com.android.tools.r8.graph.ClassKind):457:463 -> a
+    304:307:void addDefaultAnnotation(java.lang.String,com.android.tools.r8.graph.DexValue):501:504 -> a
+    304:307:void access$1600(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):189 -> a
+    1:1:int access$1100(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> b
+    2:4:void visitNestMember(java.lang.String):274:276 -> b
+    5:8:java.util.List getAnnotations():512:515 -> b
+    1:1:java.util.Set access$1200(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> c
+    2:2:void checkName(java.lang.String):467:467 -> c
+    3:3:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> c
+    3:3:void checkName(java.lang.String):467 -> c
+    4:6:void checkName(java.lang.String):467:469 -> c
+    7:7:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> c
+    7:7:void checkName(java.lang.String):469 -> c
+    8:8:void checkName(java.lang.String):469:469 -> c
+    9:9:int getMajorVersion():519:519 -> c
+    1:1:java.util.List access$1400(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> d
+    2:2:boolean isInANest():527:527 -> d
+    1:1:java.util.List access$1500(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> e
+    1:1:com.android.tools.r8.graph.JarApplicationReader access$300(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> f
+    1:1:com.android.tools.r8.graph.DexType access$400(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> g
+    1:1:java.util.Set access$500(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> h
+    1:1:java.util.List access$600(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> i
+    1:1:java.util.List access$700(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> j
+    1:1:com.android.tools.r8.graph.ClassKind access$800(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> k
+    1:1:com.android.tools.r8.origin.Origin access$900(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):189:189 -> l
+com.android.tools.r8.graph.JarClassFileReader$CreateFieldVisitor -> com.android.tools.r8.graph.x0$c:
+    com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor parent -> b
+    java.lang.Object value -> f
+    boolean $assertionsDisabled -> h
+    java.util.List annotations -> g
+    int access -> c
+    java.lang.String desc -> e
+    java.lang.String name -> d
+    1:1:void <clinit>():546:546 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):557:557 -> <init>
+    2:14:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):553:565 -> <init>
+    15:15:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):564:564 -> <init>
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
+    1:7:void visitEnd():583:589 -> a
+    8:8:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):607:607 -> a
+    8:8:void visitEnd():589 -> a
+    9:9:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
+    9:9:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):607 -> a
+    9:9:void visitEnd():589 -> a
+    10:39:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):608:637 -> a
+    10:39:void visitEnd():589 -> a
+    40:49:void visitEnd():590:599 -> a
+    50:50:void visitEnd():597:597 -> a
+    51:54:java.util.List getAnnotations():645:648 -> a
+    51:54:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):641 -> a
+    55:55:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):641:641 -> a
+    56:59:java.util.List getAnnotations():645:648 -> a
+    56:59:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):571 -> a
+    60:60:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):571:571 -> a
+com.android.tools.r8.graph.JarClassFileReader$CreateMethodVisitor -> com.android.tools.r8.graph.x0$d:
+    java.util.List parameterFlags -> r
+    int annotableParameterCount -> o
+    java.util.List parameterNames -> q
+    com.android.tools.r8.graph.Code code -> u
+    int parameterCount -> l
+    java.util.List parameterAnnotationsLists -> p
+    com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor parent -> k
+    java.lang.String name -> j
+    com.android.tools.r8.graph.DexValue defaultAnnotation -> n
+    boolean $assertionsDisabled -> v
+    com.android.tools.r8.graph.MethodAccessFlags flags -> t
+    com.android.tools.r8.graph.DexMethod method -> s
+    java.util.List annotations -> m
+    1:1:void <clinit>():652:652 -> <clinit>
+    1:1:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):669:669 -> <init>
+    2:26:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):657:681 -> <init>
+    27:32:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):680:685 -> <init>
+    33:33:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):684:684 -> <init>
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean) -> a
+    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):691:691 -> a
+    2:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():696:696 -> a
+    3:4:void lambda$visitAnnotationDefault$0(java.util.List,java.util.List):697:698 -> a
+    5:11:void visitAnnotableParameterCount(int,boolean):711:717 -> a
+    12:23:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):722:733 -> a
+    24:24:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):732:732 -> a
+    25:25:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):857:857 -> a
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> b
+    1:6:void visitParameter(java.lang.String,int):759:764 -> b
+    7:7:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> b
+    7:7:void visitParameter(java.lang.String,int):764 -> b
+    8:10:void visitParameter(java.lang.String,int):764:766 -> b
+    11:11:void visitCode():771:771 -> b
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> c
+    1:2:void visitEnd():784:785 -> c
+    3:5:boolean classRequiresCode():775:777 -> c
+    3:5:void visitEnd():785 -> c
+    6:6:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> c
+    6:6:boolean com.android.tools.r8.utils.InternalOptions.canUseNestBasedAccess():1127 -> c
+    6:6:boolean classRequiresCode():777 -> c
+    6:6:void visitEnd():785 -> c
+    7:9:boolean classRequiresCode():777:779 -> c
+    7:9:void visitEnd():785 -> c
+    10:20:void visitEnd():786:796 -> c
+    21:21:void com.android.tools.r8.graph.ParameterAnnotationsList.<init>(com.android.tools.r8.graph.DexAnnotationSet[]):56:56 -> c
+    21:21:void visitEnd():796 -> c
+    22:26:void visitEnd():798:802 -> c
+    27:33:void visitEnd():801:807 -> c
+    34:34:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> c
+    34:34:void visitEnd():807 -> c
+    35:43:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createMethodParametersAnnotation(com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexItemFactory):208:216 -> c
+    35:43:void visitEnd():804 -> c
+    44:56:void visitEnd():804:816 -> c
+    57:57:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int):224:224 -> c
+    57:57:void visitEnd():816 -> c
+    58:60:void visitEnd():817:819 -> c
+    61:61:boolean isReachabilitySensitive():840:840 -> c
+    61:61:void visitEnd():819 -> c
+    62:62:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> c
+    62:62:boolean isReachabilitySensitive():840 -> c
+    62:62:void visitEnd():819 -> c
+    63:65:boolean isReachabilitySensitive():840:842 -> c
+    63:65:void visitEnd():819 -> c
+    66:67:void visitEnd():819:820 -> c
+    68:68:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> c
+    68:68:void visitEnd():820 -> c
+    69:72:void visitEnd():820:823 -> c
+    73:83:void visitEnd():821:831 -> c
+    84:84:void visitEnd():828:828 -> c
+    85:93:void visitEnd():826:834 -> c
+    1:4:java.util.List getAnnotations():850:853 -> d
+com.android.tools.r8.graph.JarClassFileReader$ReparseContext -> com.android.tools.r8.graph.x0$e:
+    com.android.tools.r8.graph.DexClass owner -> b
+    byte[] classCache -> a
+    java.util.List codeList -> c
+    1:8:void <init>():1006:1013 -> <init>
+com.android.tools.r8.graph.LazyCfCode -> com.android.tools.r8.graph.D0:
+    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> c
+    com.android.tools.r8.graph.CfCode code -> b
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.JarApplicationReader application -> a
+    boolean reachabilitySensitive -> d
+    1:1:void <clinit>():84:84 -> <clinit>
+    1:12:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):93:104 -> <init>
+    13:15:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):95:97 -> <init>
+    1:2:void markReachabilitySensitive():107:108 -> a
+    3:3:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):150:150 -> a
+    4:12:int getParsingOptions(com.android.tools.r8.graph.JarApplicationReader,boolean):925:933 -> a
+    4:12:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):150 -> a
+    13:13:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):151:151 -> a
+    14:14:java.util.function.BiFunction createCodeLocator(com.android.tools.r8.graph.JarClassFileReader$ReparseContext):228:228 -> a
+    14:14:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):152 -> a
+    15:16:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):152:153 -> a
+    17:17:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
+    17:17:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):153 -> a
+    18:22:void setCode(com.android.tools.r8.graph.CfCode):157:161 -> a
+    18:22:void access$100(com.android.tools.r8.graph.LazyCfCode,com.android.tools.r8.graph.CfCode):84 -> a
+    1:21:com.android.tools.r8.graph.CfCode asCfCode():123:143 -> asCfCode
+    22:28:boolean verifyNoReparseContext(com.android.tools.r8.graph.DexClass):951:957 -> asCfCode
+    22:28:com.android.tools.r8.graph.CfCode asCfCode():143 -> asCfCode
+    29:35:com.android.tools.r8.graph.CfCode asCfCode():140:146 -> asCfCode
+    1:1:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):191:191 -> buildIR
+    1:2:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):202:203 -> buildInliningIR
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):965:965 -> collectParameterInfo
+    1:1:boolean computeEquals(java.lang.Object):171:171 -> computeEquals
+    1:1:int computeHashCode():166:166 -> computeHashCode
+    1:1:int estimatedSizeForInlining():181:181 -> estimatedSizeForInlining
+    1:1:boolean estimatedSizeForInliningAtMost(int):186:186 -> estimatedSizeForInliningAtMost
+    1:1:boolean isEmptyVoidMethod():176:176 -> isEmptyVoidMethod
+    1:1:void registerArgumentReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):214:214 -> registerArgumentReferences
+    1:1:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):209:209 -> registerCodeReferences
+    1:1:java.lang.String toString():219:219 -> toString
+    2:2:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):224:224 -> toString
+    1:1:boolean verifyNoInputReaders():946:946 -> verifyNoInputReaders
+com.android.tools.r8.graph.LazyCfCode$1 -> com.android.tools.r8.graph.y0:
+com.android.tools.r8.graph.LazyCfCode$ClassCodeVisitor -> com.android.tools.r8.graph.z0:
+    java.util.function.BiFunction codeLocator -> d
+    com.android.tools.r8.graph.JarApplicationReader application -> e
+    boolean usrJsrInliner -> f
+    com.android.tools.r8.graph.DexClass clazz -> c
+    1:5:void <init>(com.android.tools.r8.graph.DexClass,java.util.function.BiFunction,com.android.tools.r8.graph.JarApplicationReader,boolean):259:263 -> <init>
+    1:10:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):269:278 -> a
+com.android.tools.r8.graph.LazyCfCode$DefaultCodeLocator -> com.android.tools.r8.graph.A0:
+    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> a
+    int methodIndex -> b
+    1:1:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.LazyCfCode$1):231:231 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):236:236 -> <init>
+    3:6:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):234:237 -> <init>
+    1:1:java.lang.Object apply(java.lang.Object,java.lang.Object):231:231 -> apply
+    2:2:com.android.tools.r8.graph.LazyCfCode apply(java.lang.String,java.lang.String):243:243 -> apply
+    2:2:java.lang.Object apply(java.lang.Object,java.lang.Object):231 -> apply
+com.android.tools.r8.graph.LazyCfCode$JsrEncountered -> com.android.tools.r8.graph.B0:
+    1:1:void <init>(java.lang.String):88:88 -> <init>
+com.android.tools.r8.graph.LazyCfCode$MethodCodeVisitor -> com.android.tools.r8.graph.C0:
+    java.util.Map canonicalDebugLocalInfo -> q
+    java.util.Map labelMap -> r
+    int maxStack -> l
+    java.util.List localVariables -> p
+    int maxLocals -> m
+    java.util.List tryCatchRanges -> o
+    com.android.tools.r8.graph.LazyCfCode code -> s
+    boolean $assertionsDisabled -> u
+    com.android.tools.r8.graph.DexItemFactory factory -> k
+    com.android.tools.r8.graph.DexMethod method -> t
+    java.util.List instructions -> n
+    com.android.tools.r8.graph.JarApplicationReader application -> j
+    1:1:void <clinit>():285:285 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.LazyCfCode):299:299 -> <init>
+    2:13:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.LazyCfCode):293:304 -> <init>
+    com.android.tools.r8.graph.DebugLocalInfo lambda$canonicalize$1(com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.DebugLocalInfo) -> a
+    1:1:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):327:327 -> a
+    2:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap parseLocals(int,java.lang.Object[]):334:340 -> a
+    2:8:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):328 -> a
+    9:11:java.util.List parseStack(int,java.lang.Object[]):348:350 -> a
+    9:11:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):329 -> a
+    12:12:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):330:330 -> a
+    13:14:com.android.tools.r8.graph.DexType createTypeFromInternalType(java.lang.String):391:392 -> a
+    15:15:void visitInsn(int):558:558 -> a
+    16:16:void visitInsn(int):543:543 -> a
+    17:17:void visitInsn(int):540:540 -> a
+    18:18:void visitInsn(int):537:537 -> a
+    19:19:void visitInsn(int):534:534 -> a
+    20:20:void visitInsn(int):531:531 -> a
+    21:21:void visitInsn(int):528:528 -> a
+    22:22:void visitInsn(int):525:525 -> a
+    23:23:void visitInsn(int):518:518 -> a
+    24:24:void visitInsn(int):501:501 -> a
+    25:25:void visitInsn(int):487:487 -> a
+    26:26:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):71:71 -> a
+    26:26:void visitInsn(int):487 -> a
+    27:27:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):69:69 -> a
+    27:27:void visitInsn(int):487 -> a
+    28:28:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):67:67 -> a
+    28:28:void visitInsn(int):487 -> a
+    29:29:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):65:65 -> a
+    29:29:void visitInsn(int):487 -> a
+    30:30:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):63:63 -> a
+    30:30:void visitInsn(int):487 -> a
+    31:31:void visitInsn(int):487:487 -> a
+    32:32:void visitInsn(int):481:481 -> a
+    33:33:void visitInsn(int):459:459 -> a
+    34:34:void visitInsn(int):448:448 -> a
+    35:35:void visitInsn(int):438:438 -> a
+    36:39:void visitInsn(int):426:426 -> a
+    40:43:void visitInsn(int):420:420 -> a
+    44:44:void visitInsn(int):415:415 -> a
+    45:45:void visitInsn(int):411:411 -> a
+    46:46:void visitInsn(int):402:402 -> a
+    47:203:void visitInsn(int):399:555 -> a
+    204:204:void visitInsn(int):552:552 -> a
+    205:205:void visitInsn(int):549:549 -> a
+    206:206:void visitInsn(int):546:546 -> a
+    207:222:void visitTypeInsn(int,java.lang.String):670:685 -> a
+    223:223:void visitTypeInsn(int,java.lang.String):679:679 -> a
+    224:224:void visitTypeInsn(int,java.lang.String):676:676 -> a
+    225:225:void visitTypeInsn(int,java.lang.String):673:673 -> a
+    226:230:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):691:695 -> a
+    231:231:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):700:700 -> a
+    232:232:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.JarApplicationReader.getMethod(java.lang.String,java.lang.String,java.lang.String):92:92 -> a
+    232:232:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):700 -> a
+    233:233:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):701:701 -> a
+    234:236:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):706:708 -> a
+    237:267:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):713:743 -> a
+    268:272:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):737:741 -> a
+    273:273:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):733:733 -> a
+    274:274:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):777:777 -> a
+    275:298:void visitLdcInsn(java.lang.Object):782:805 -> a
+    299:303:void visitLdcInsn(java.lang.Object):803:807 -> a
+    304:304:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    304:304:void visitLdcInsn(java.lang.Object):807 -> a
+    305:307:void visitLdcInsn(java.lang.Object):807:809 -> a
+    308:308:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    308:308:void visitLdcInsn(java.lang.Object):809 -> a
+    309:309:void visitLdcInsn(java.lang.Object):809:809 -> a
+    310:310:void visitIincInsn(int,int):815:815 -> a
+    311:316:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):820:825 -> a
+    317:321:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):830:834 -> a
+    322:361:void visitMultiANewArrayInsn(java.lang.String,int):839:878 -> a
+    362:362:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):886:886 -> a
+    363:366:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):885:888 -> a
+    367:372:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):894:899 -> a
+    373:379:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):895:901 -> a
+    380:381:void com.android.tools.r8.graph.CfCode$LocalVariableInfo.<init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel):59:60 -> a
+    380:381:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):901 -> a
+    382:382:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):900:900 -> a
+    383:383:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DebugLocalInfo):905:905 -> a
+    1:6:void visitCode():309:314 -> b
+    7:11:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):356:360 -> b
+    12:24:com.android.tools.r8.graph.DexType parseAsmType(java.lang.Object):372:384 -> b
+    12:24:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):363 -> b
+    25:25:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):363:363 -> b
+    26:26:com.android.tools.r8.graph.DexType parseAsmType(java.lang.Object):386:386 -> b
+    26:26:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):363 -> b
+    27:27:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):361:361 -> b
+    28:28:com.android.tools.r8.cf.code.CfLabel getLabel(com.android.tools.r8.org.objectweb.asm.Label):368:368 -> b
+    29:29:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):589:589 -> b
+    30:30:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):587:587 -> b
+    31:31:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):584:584 -> b
+    32:32:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):581:581 -> b
+    33:33:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):578:578 -> b
+    34:34:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):575:575 -> b
+    35:38:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):569:572 -> b
+    39:39:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):566:566 -> b
+    40:40:void visitIntInsn(int,int):601:601 -> b
+    41:41:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):628:628 -> b
+    41:41:void visitIntInsn(int,int):602 -> b
+    42:42:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):626:626 -> b
+    42:42:void visitIntInsn(int,int):602 -> b
+    43:43:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):624:624 -> b
+    43:43:void visitIntInsn(int,int):602 -> b
+    44:44:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):622:622 -> b
+    44:44:void visitIntInsn(int,int):602 -> b
+    45:45:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):620:620 -> b
+    45:45:void visitIntInsn(int,int):602 -> b
+    46:46:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):618:618 -> b
+    46:46:void visitIntInsn(int,int):602 -> b
+    47:47:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):616:616 -> b
+    47:47:void visitIntInsn(int,int):602 -> b
+    48:48:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):614:614 -> b
+    48:48:void visitIntInsn(int,int):602 -> b
+    49:49:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):612:612 -> b
+    49:49:void visitIntInsn(int,int):602 -> b
+    50:50:void visitIntInsn(int,int):602:602 -> b
+    51:55:void visitIntInsn(int,int):601:605 -> b
+    56:56:void visitIntInsn(int,int):598:598 -> b
+    57:57:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):910:910 -> b
+    1:1:void visitEnd():319:319 -> c
+    2:2:com.android.tools.r8.cf.code.CfLabel lambda$getLabel$0(com.android.tools.r8.org.objectweb.asm.Label):368:368 -> c
+    3:3:com.android.tools.r8.ir.code.If$Type ifType(int):771:771 -> c
+    4:4:com.android.tools.r8.ir.code.If$Type ifType(int):769:769 -> c
+    5:5:com.android.tools.r8.ir.code.If$Type ifType(int):766:766 -> c
+    6:6:com.android.tools.r8.ir.code.If$Type ifType(int):763:763 -> c
+    7:7:com.android.tools.r8.ir.code.If$Type ifType(int):760:760 -> c
+    8:8:com.android.tools.r8.ir.code.If$Type ifType(int):757:757 -> c
+    9:9:com.android.tools.r8.ir.code.If$Type ifType(int):753:753 -> c
+    10:13:void visitMaxs(int,int):915:918 -> c
+    1:1:void visitVarInsn(int,int):659:659 -> d
+    2:2:void visitVarInsn(int,int):654:654 -> d
+    3:3:void visitVarInsn(int,int):650:650 -> d
+    4:8:void visitVarInsn(int,int):642:646 -> d
+    9:35:void visitVarInsn(int,int):638:664 -> d
+    36:36:void visitVarInsn(int,int):657:657 -> d
+com.android.tools.r8.graph.LazyLoadedDexApplication -> com.android.tools.r8.graph.E0:
+    com.android.tools.r8.utils.LibraryClassCollection libraryClasses -> k
+    boolean $assertionsDisabled -> l
+    com.android.tools.r8.utils.ClasspathClassCollection classpathClasses -> j
+    com.android.tools.r8.utils.ProgramClassCollection programClasses -> i
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.LazyLoadedDexApplication$1):24:24 -> <init>
+    2:11:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):41:50 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$000(java.util.Map,java.util.Map):24:24 -> a
+    2:2:com.android.tools.r8.utils.ClasspathClassCollection access$100(com.android.tools.r8.graph.LazyLoadedDexApplication):24:24 -> a
+    3:4:com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType):87:88 -> a
+    5:7:void lambda$fillPrioritizedClasses$1(java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):173:175 -> a
+    boolean lambda$programClasses$0(com.android.tools.r8.graph.DexType) -> b
+    1:1:com.android.tools.r8.utils.LibraryClassCollection access$200(com.android.tools.r8.graph.LazyLoadedDexApplication):24:24 -> b
+    2:12:com.android.tools.r8.com.google.common.collect.ImmutableList fillPrioritizedClasses(java.util.Map,java.util.Map):170:180 -> b
+    13:13:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder():243:243 -> b
+    13:13:com.android.tools.r8.graph.DexApplication$Builder builder():24 -> b
+    1:19:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):61:79 -> definitionFor
+    1:2:java.util.List programClasses():55:56 -> f
+    1:1:com.android.tools.r8.graph.DirectMappedDexApplication toDirect():248:248 -> g
+    1:1:com.android.tools.r8.graph.LazyLoadedDexApplication$AllClasses loadAllClasses():188:188 -> h
+    1:1:java.lang.String toString():258:258 -> toString
+com.android.tools.r8.graph.LazyLoadedDexApplication$1 -> com.android.tools.r8.graph.E0$a:
+com.android.tools.r8.graph.LazyLoadedDexApplication$AllClasses -> com.android.tools.r8.graph.E0$b:
+    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableList programClasses -> a
+    boolean $assertionsDisabled -> d
+    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> c
+    1:1:void <clinit>():91:91 -> <clinit>
+    1:44:void <init>(com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.utils.InternalOptions):104:147 -> <init>
+    45:45:void <init>(com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.utils.InternalOptions):146:146 -> <init>
+    boolean lambda$new$0(com.android.tools.r8.graph.DexType) -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getClasspathClasses():159:159 -> a
+    boolean lambda$new$1(com.android.tools.r8.graph.DexType) -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getLibraryClasses():163:163 -> b
+    boolean lambda$new$2(com.android.tools.r8.graph.DexType) -> c
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getProgramClasses():155:155 -> c
+com.android.tools.r8.graph.LazyLoadedDexApplication$Builder -> com.android.tools.r8.graph.E0$c:
+    com.android.tools.r8.utils.LibraryClassCollection libraryClasses -> l
+    com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver resolver -> m
+    com.android.tools.r8.utils.ClasspathClassCollection classpathClasses -> k
+    1:1:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication,com.android.tools.r8.graph.LazyLoadedDexApplication$1):191:191 -> <init>
+    2:5:void <init>(com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):198:201 -> <init>
+    6:9:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication):205:208 -> <init>
+    1:1:com.android.tools.r8.graph.DexApplication build():191:191 -> a
+    2:2:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder setClasspathClassCollection(com.android.tools.r8.utils.ClasspathClassCollection):217:217 -> a
+    3:3:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder setLibraryClassCollection(com.android.tools.r8.utils.LibraryClassCollection):222:222 -> a
+    com.android.tools.r8.graph.DexApplication$Builder self() -> e
+    1:7:com.android.tools.r8.graph.LazyLoadedDexApplication build():228:234 -> f
+com.android.tools.r8.graph.LookupResult -> com.android.tools.r8.graph.F0:
+    1:1:void <init>():11:11 -> <init>
+    com.android.tools.r8.graph.LookupResult$LookupResultSuccess asLookupResultSuccess() -> a
+    boolean isLookupResultFailure() -> b
+    boolean isLookupResultSuccess() -> c
+com.android.tools.r8.graph.LookupResult$1 -> com.android.tools.r8.graph.F0$a:
+com.android.tools.r8.graph.LookupResult$LookupResultFailure -> com.android.tools.r8.graph.F0$b:
+    com.android.tools.r8.graph.LookupResult$LookupResultFailure INSTANCE -> a
+    1:1:void <clinit>():86:86 -> <clinit>
+    1:1:void <init>():88:88 -> <init>
+    boolean isLookupResultFailure() -> b
+    1:1:com.android.tools.r8.graph.LookupResult$LookupResultFailure access$100():84:84 -> d
+com.android.tools.r8.graph.LookupResult$LookupResultSuccess -> com.android.tools.r8.graph.F0$c:
+    java.util.Set methodTargets -> a
+    com.android.tools.r8.graph.LookupResult$LookupResultSuccess EMPTY_INSTANCE -> b
+    1:2:void <clinit>():44:45 -> <clinit>
+    1:1:void <init>(java.util.Set,com.android.tools.r8.graph.LookupResult$LookupResultSuccess$LookupResultCollectionState,com.android.tools.r8.graph.LookupResult$1):42:42 -> <init>
+    2:3:void <init>(java.util.Set,com.android.tools.r8.graph.LookupResult$LookupResultSuccess$LookupResultCollectionState):51:52 -> <init>
+    com.android.tools.r8.graph.LookupResult$LookupResultSuccess asLookupResultSuccess() -> a
+    boolean isLookupResultSuccess() -> c
+    1:1:com.android.tools.r8.graph.LookupResult$LookupResultSuccess access$200():42:42 -> d
+    1:1:java.util.Set getMethodTargets():61:61 -> e
+com.android.tools.r8.graph.LookupResult$LookupResultSuccess$LookupResultCollectionState -> com.android.tools.r8.graph.F0$c$a:
+    com.android.tools.r8.graph.LookupResult$LookupResultSuccess$LookupResultCollectionState Incomplete -> b
+    com.android.tools.r8.graph.LookupResult$LookupResultSuccess$LookupResultCollectionState Complete -> a
+    1:2:void <clinit>():79:80 -> <clinit>
+    1:1:void <init>(java.lang.String,int):78:78 -> <init>
+com.android.tools.r8.graph.MethodAccessFlags -> com.android.tools.r8.graph.G0:
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(int,int):65:65 -> <init>
+    1:1:com.android.tools.r8.graph.MethodAccessFlags copy():70:70 -> D
+    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> E
+    1:1:int getAsCfAccessFlags():100 -> E
+    1:1:int getAsDexAccessFlags():105:105 -> F
+    2:2:boolean isSynchronized():124:124 -> F
+    2:2:int getAsDexAccessFlags():106 -> F
+    3:3:int getAsDexAccessFlags():106:106 -> F
+    4:4:void unsetSynchronized():132:132 -> F
+    4:4:int getAsDexAccessFlags():107 -> F
+    5:5:void setDeclaredSynchronized():202:202 -> F
+    5:5:int getAsDexAccessFlags():108 -> F
+    6:6:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> F
+    6:6:int getAsDexAccessFlags():110 -> F
+    1:12:int com.android.tools.r8.graph.AccessFlags.getAsKotlinFlags():75:86 -> G
+    1:12:int getAsKotlinFlags():115 -> G
+    13:13:boolean com.android.tools.r8.graph.AccessFlags.isOpen():205:205 -> G
+    13:13:int com.android.tools.r8.graph.AccessFlags.getAsKotlinFlags():88 -> G
+    13:13:int getAsKotlinFlags():115 -> G
+    14:16:int com.android.tools.r8.graph.AccessFlags.getAsKotlinFlags():89:91 -> G
+    14:16:int getAsKotlinFlags():115 -> G
+    17:21:int getAsKotlinFlags():116:120 -> G
+    1:1:boolean isAbstract():164:164 -> H
+    1:1:boolean isBridge():136:136 -> I
+    1:1:boolean isConstructor():184:184 -> J
+    1:1:boolean isNative():156:156 -> K
+    1:1:boolean isStrict():176:176 -> L
+    1:1:boolean isSynchronized():124:124 -> M
+    1:1:boolean isVarargs():148:148 -> N
+    1:1:void setAbstract():168:168 -> O
+    1:1:void setBridge():140:140 -> P
+    1:1:void setNative():160:160 -> Q
+    1:1:void unsetAbstract():172:172 -> R
+    1:1:void unsetBridge():144:144 -> S
+    1:1:void unsetConstructor():192:192 -> T
+    1:1:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):85:85 -> a
+    2:2:void <init>(int):61:61 -> a
+    2:2:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):86 -> a
+    1:3:com.android.tools.r8.graph.MethodAccessFlags fromSharedAccessFlags(int,boolean):79:81 -> b
+    1:9:java.util.List getNames():36:44 -> c
+    1:9:java.util.List getPredicates():49:57 -> e
+    1:1:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):90:90 -> f
+    2:2:void <init>(int):61:61 -> f
+    2:2:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):90 -> f
+    3:3:boolean isDeclaredSynchronized():198:198 -> f
+    3:3:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):91 -> f
+    4:4:void setSynchronized():128:128 -> f
+    4:4:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):92 -> f
+    5:5:void unsetDeclaredSynchronized():206:206 -> f
+    5:5:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):93 -> f
+com.android.tools.r8.graph.NestHostClassAttribute -> com.android.tools.r8.graph.H0:
+    com.android.tools.r8.graph.DexType nestHost -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexType):14:15 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getNestHost():19:19 -> a
+    2:3:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):23:24 -> a
+com.android.tools.r8.graph.NestMemberClassAttribute -> com.android.tools.r8.graph.I0:
+    com.android.tools.r8.graph.DexType nestMember -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexType):14:15 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getNestMember():19:19 -> a
+    2:3:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):23:24 -> a
+com.android.tools.r8.graph.ObjectAllocationInfoCollection -> com.android.tools.r8.graph.J0:
+com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl -> com.android.tools.r8.graph.L0:
+    java.util.Map classesWithAllocationSiteTracking -> a
+    java.util.Set classesWithoutAllocationSiteTracking -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:1:void <init>(java.util.Map,java.util.Set,com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl$1):20:20 -> <init>
+    2:4:void <init>(java.util.Map,java.util.Set):27:29 -> <init>
+    1:1:java.util.Map access$100(com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl):20:20 -> a
+    2:2:com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl$Builder builder(boolean,com.android.tools.r8.shaking.GraphReporter):33:33 -> a
+    3:3:com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl$Builder builder(boolean,com.android.tools.r8.shaking.GraphReporter):33:33 -> a
+    3:3:com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl rewrittenWithLens(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):64 -> a
+    4:4:com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl rewrittenWithLens(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):64:64 -> a
+    5:5:void forEachClassWithKnownAllocationSites(java.util.function.BiConsumer):44:44 -> a
+    6:10:boolean isInstantiatedDirectly(com.android.tools.r8.graph.DexProgramClass):54:58 -> a
+    1:1:java.util.Set access$200(com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl):20:20 -> b
+    2:3:void markNoLongerInstantiated(com.android.tools.r8.graph.DexProgramClass):37:38 -> b
+com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl$1 -> com.android.tools.r8.graph.K0:
+com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl$Builder -> com.android.tools.r8.graph.L0$a:
+    java.util.Map classesWithAllocationSiteTracking -> b
+    java.util.Set classesWithoutAllocationSiteTracking -> c
+    com.android.tools.r8.shaking.GraphReporter reporter -> d
+    boolean $assertionsDisabled -> e
+    boolean trackAllocationSites -> a
+    1:1:void <clinit>():67:67 -> <clinit>
+    1:1:void <init>(boolean,com.android.tools.r8.shaking.GraphReporter,com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl$1):67:67 -> <init>
+    2:2:void <init>(boolean,com.android.tools.r8.shaking.GraphReporter):78:78 -> <init>
+    3:12:void <init>(boolean,com.android.tools.r8.shaking.GraphReporter):71:80 -> <init>
+    1:5:boolean isInstantiatedDirectly(com.android.tools.r8.graph.DexProgramClass):101:105 -> a
+    6:8:boolean recordDirectAllocationSite(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):118:120 -> a
+    9:21:boolean shouldTrackAllocationSitesForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.InstantiationReason):85:97 -> a
+    9:21:boolean recordDirectAllocationSite(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):122 -> a
+    22:31:boolean recordDirectAllocationSite(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):123:132 -> a
+    32:43:com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl$Builder rewrittenWithLens(com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):142:153 -> a
+    44:48:void lambda$rewrittenWithLens$1(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexProgramClass,java.util.Set):144:148 -> a
+    49:51:java.util.Set com.android.tools.r8.utils.LensUtils.rewrittenWithRenamedSignature(java.util.Set,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):17:19 -> a
+    49:51:void lambda$rewrittenWithLens$1(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexProgramClass,java.util.Set):150 -> a
+    52:52:void lambda$rewrittenWithLens$1(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexProgramClass,java.util.Set):148:148 -> a
+    53:58:void lambda$rewrittenWithLens$2(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexProgramClass):155:160 -> a
+    59:59:com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl build():166:166 -> a
+    1:1:java.util.Set lambda$recordDirectAllocationSite$0(com.android.tools.r8.graph.DexProgramClass):126:126 -> b
+com.android.tools.r8.graph.ObjectToOffsetMapping -> com.android.tools.r8.graph.M0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap types -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap methods -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap fields -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap strings -> f
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap protos -> b
+    com.android.tools.r8.graph.DexString firstJumboString -> i
+    com.android.tools.r8.graph.DexProgramClass[] classes -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap callSites -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap methodHandles -> h
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:19:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection):43:61 -> <init>
+    1:1:void failOnOverflow(com.android.tools.r8.graph.DexItem):70:70 -> a
+    2:2:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    2:2:void failOnOverflow(com.android.tools.r8.graph.DexItem):70 -> a
+    3:3:void failOnOverflow(com.android.tools.r8.graph.DexItem):70:70 -> a
+    4:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):75:78 -> a
+    8:8:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.<init>(int):167:167 -> a
+    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):78 -> a
+    9:16:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):79:86 -> a
+    17:28:com.android.tools.r8.graph.DexProgramClass[] sortClasses(com.android.tools.r8.graph.DexApplication,java.util.Collection):140:151 -> a
+    29:31:int lambda$sortClasses$0(com.android.tools.r8.graph.ObjectToOffsetMapping$ProgramClassDepthsMemoized,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):146:148 -> a
+    32:210:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):0:178 -> a
+    32:210:int lambda$sortClasses$0(com.android.tools.r8.graph.ObjectToOffsetMapping$ProgramClassDepthsMemoized,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):148 -> a
+    211:211:java.util.Collection keysOrEmpty(java.util.Map):155:155 -> a
+    212:212:java.util.Collection getCallSites():183:183 -> a
+    213:215:int getOffsetFor(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):208:210 -> a
+    216:216:int getOffsetFor(com.android.tools.r8.graph.DexProto):215:215 -> a
+    217:217:int getOffsetFor(com.android.tools.r8.graph.DexField):219:219 -> a
+    218:218:int getOffsetFor(com.android.tools.r8.graph.DexMethod):223:223 -> a
+    219:219:int getOffsetFor(com.android.tools.r8.graph.DexString):227:227 -> a
+    220:220:int getOffsetFor(com.android.tools.r8.graph.DexType):231:231 -> a
+    221:221:int getOffsetFor(com.android.tools.r8.graph.DexCallSite):235:235 -> a
+    222:222:int getOffsetFor(com.android.tools.r8.graph.DexMethodHandle):239:239 -> a
+    1:2:void setFirstJumboString(com.android.tools.r8.graph.DexString):65:66 -> b
+    3:3:com.android.tools.r8.graph.DexProgramClass[] getClasses():163:163 -> b
+    1:1:java.util.Collection getFields():175:175 -> c
+    1:1:com.android.tools.r8.graph.DexString getFirstJumboString():195:195 -> d
+    1:3:com.android.tools.r8.graph.DexString getFirstString():199:201 -> e
+    1:1:java.util.Collection getMethodHandles():187:187 -> f
+    1:1:java.util.Collection getMethods():159:159 -> g
+    1:1:java.util.Collection getProtos():171:171 -> h
+    1:1:java.util.Collection getStrings():179:179 -> i
+    1:1:java.util.Collection getTypes():167:167 -> j
+    1:1:boolean hasJumboStrings():191:191 -> k
+com.android.tools.r8.graph.ObjectToOffsetMapping$ProgramClassDepthsMemoized -> com.android.tools.r8.graph.M0$a:
+    com.android.tools.r8.graph.DexApplication application -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap depthOfClasses -> b
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication):103:103 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.DexApplication):101:105 -> <init>
+    1:22:int getDepth(com.android.tools.r8.graph.DexProgramClass):109:130 -> a
+com.android.tools.r8.graph.OffsetToObjectMapping -> com.android.tools.r8.graph.N0:
+    com.android.tools.r8.graph.DexProto[] protos -> c
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexMethodHandle[] methodHandles -> h
+    com.android.tools.r8.graph.DexMethod[] methods -> b
+    com.android.tools.r8.graph.DexField[] fields -> d
+    com.android.tools.r8.graph.DexString[] strings -> f
+    com.android.tools.r8.graph.DexCallSite[] callSites -> g
+    com.android.tools.r8.graph.DexProgramClass[] classes -> a
+    com.android.tools.r8.graph.DexType[] types -> e
+    1:1:void <clinit>():6:6 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    1:2:com.android.tools.r8.graph.DexCallSite[] getCallSiteMap():88:89 -> a
+    3:4:com.android.tools.r8.graph.DexField getField(int):113:114 -> a
+    5:6:void setProto(int,com.android.tools.r8.graph.DexProto):143:144 -> a
+    7:8:void setMethod(int,com.android.tools.r8.graph.DexMethod):148:149 -> a
+    9:10:void setField(int,com.android.tools.r8.graph.DexField):153:154 -> a
+    11:12:void setType(int,com.android.tools.r8.graph.DexType):158:159 -> a
+    13:14:void setString(int,com.android.tools.r8.graph.DexString):163:164 -> a
+    15:16:void setCallSites(int,com.android.tools.r8.graph.DexCallSite):168:169 -> a
+    17:18:void setMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):173:174 -> a
+    1:2:com.android.tools.r8.graph.DexField[] getFieldMap():73:74 -> b
+    3:4:com.android.tools.r8.graph.DexMethod getMethod(int):103:104 -> b
+    1:2:com.android.tools.r8.graph.DexMethodHandle[] getMethodHandleMap():93:94 -> c
+    3:4:com.android.tools.r8.graph.DexMethodHandle getMethodHandle(int):133:134 -> c
+    1:2:com.android.tools.r8.graph.DexMethod[] getMethodMap():63:64 -> d
+    3:4:com.android.tools.r8.graph.DexProto getProto(int):108:109 -> d
+    1:2:com.android.tools.r8.graph.DexProto[] getProtosMap():68:69 -> e
+    3:4:com.android.tools.r8.graph.DexString getString(int):123:124 -> e
+    1:2:com.android.tools.r8.graph.DexString[] getStringMap():83:84 -> f
+    3:4:com.android.tools.r8.graph.DexType getType(int):118:119 -> f
+    1:2:void initializeCallSites(int):48:49 -> g
+    3:4:com.android.tools.r8.graph.DexType[] getTypeMap():78:79 -> g
+    1:2:void initializeClasses(int):18:19 -> h
+    1:2:void initializeFields(int):33:34 -> i
+    1:2:void initializeMethodHandles(int):53:54 -> j
+    1:2:void initializeMethods(int):23:24 -> k
+    1:2:void initializeProtos(int):28:29 -> l
+    1:2:void initializeStrings(int):43:44 -> m
+    1:2:void initializeTypes(int):38:39 -> n
+com.android.tools.r8.graph.ParameterAnnotationsList -> com.android.tools.r8.graph.O0:
+    com.android.tools.r8.graph.ParameterAnnotationsList EMPTY_PARAMETER_ANNOTATIONS_LIST -> c
+    com.android.tools.r8.graph.DexAnnotationSet[] values -> a
+    int missingParameterAnnotations -> b
+    boolean $assertionsDisabled -> d
+    1:3:void <clinit>():38:40 -> <clinit>
+    1:3:void <init>():50:52 -> <init>
+    4:7:void <init>(com.android.tools.r8.graph.DexAnnotationSet[],int):59:62 -> <init>
+    1:3:void forEachAnnotation(java.util.function.Consumer):104:106 -> a
+    4:4:int countNonMissing():124:124 -> a
+    5:23:com.android.tools.r8.graph.ParameterAnnotationsList keepIf(java.util.function.Predicate):178:196 -> a
+    24:26:com.android.tools.r8.graph.ParameterAnnotationsList rewrite(java.util.function.Function):200:202 -> a
+    1:1:com.android.tools.r8.graph.ParameterAnnotationsList empty():47:47 -> b
+    2:6:com.android.tools.r8.graph.DexAnnotationSet get(int):147:151 -> b
+    1:1:boolean isEmpty():99:99 -> c
+    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):88:88 -> collectIndexedItems
+    1:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):94:95 -> collectMixedSectionItems
+    1:1:int size():116:116 -> d
+    2:3:boolean isMissing(int):134:135 -> d
+    1:13:com.android.tools.r8.graph.ParameterAnnotationsList withParameterCount(int):156:168 -> e
+    1:2:boolean equals(java.lang.Object):79:80 -> equals
+    1:1:int hashCode():71:71 -> hashCode
+com.android.tools.r8.graph.PresortedComparable -> com.android.tools.r8.graph.P0:
+    int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens) -> a
+    int slowCompareTo(java.lang.Object) -> a
+    1:1:boolean isSorted(java.util.List):15:15 -> a
+    2:4:boolean isSorted(java.util.List,java.util.function.Function):25:27 -> a
+    5:5:int slowCompare(com.android.tools.r8.graph.PresortedComparable,com.android.tools.r8.graph.PresortedComparable):44:44 -> a
+com.android.tools.r8.graph.ProgramClassVisitor -> com.android.tools.r8.graph.Q0:
+    com.android.tools.r8.graph.DexApplication application -> a
+    java.util.Set visited -> b
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication):32:32 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.DexApplication):30:33 -> <init>
+    1:10:void accept(com.android.tools.r8.graph.DexType):37:46 -> a
+    11:15:void accept(com.android.tools.r8.graph.DexClass):56:60 -> a
+    16:17:void accept(com.android.tools.r8.graph.DexTypeList):50:51 -> a
+    16:17:void accept(com.android.tools.r8.graph.DexClass):60 -> a
+    18:19:void accept(com.android.tools.r8.graph.DexClass):61:62 -> a
+    20:21:void run(com.android.tools.r8.graph.DexProgramClass[]):66:67 -> a
+    void visit(com.android.tools.r8.graph.DexClass) -> b
+    void visit(com.android.tools.r8.graph.DexType) -> b
+com.android.tools.r8.graph.ProgramMethod -> com.android.tools.r8.graph.R0:
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):10:10 -> <init>
+    1:3:com.android.tools.r8.graph.DexProgramClass getHolder():25:27 -> c
+com.android.tools.r8.graph.ResolutionResult -> com.android.tools.r8.graph.S0:
+    1:1:void <init>():16:16 -> <init>
+    com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult asFailedResolution() -> a
+    boolean isAccessibleForVirtualDispatchFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> a
+    com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo) -> a
+    1:1:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):86:86 -> a
+    com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult asSingleResolution() -> b
+    boolean isAccessibleFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> b
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeDirectTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> c
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getSingleTarget():50:50 -> c
+    boolean isFailedResolution() -> d
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSpecialTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> d
+    boolean isSingleResolution() -> e
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeStaticTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> e
+    boolean isVirtualTarget() -> f
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> f
+com.android.tools.r8.graph.ResolutionResult$1 -> com.android.tools.r8.graph.S0$a:
+com.android.tools.r8.graph.ResolutionResult$ArrayCloneMethodResult -> com.android.tools.r8.graph.S0$b:
+    com.android.tools.r8.graph.ResolutionResult$ArrayCloneMethodResult INSTANCE -> a
+    1:1:void <clinit>():567:567 -> <clinit>
+    1:1:void <init>():569:569 -> <init>
+    boolean isAccessibleForVirtualDispatchFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> a
+    1:1:com.android.tools.r8.graph.LookupResult$LookupResultSuccess com.android.tools.r8.graph.LookupResult.getIncompleteEmptyResult():39:39 -> a
+    1:1:com.android.tools.r8.graph.LookupResult com.android.tools.r8.graph.ResolutionResult$EmptyResult.lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):554 -> a
+    1:1:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):565 -> a
+    boolean isAccessibleFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> b
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeDirectTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> c
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeStaticTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> e
+    boolean isVirtualTarget() -> f
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> f
+com.android.tools.r8.graph.ResolutionResult$ClassNotFoundResult -> com.android.tools.r8.graph.S0$c:
+    com.android.tools.r8.graph.ResolutionResult$ClassNotFoundResult INSTANCE -> a
+    1:1:void <clinit>():625:625 -> <clinit>
+    1:1:void <init>():627:627 -> <init>
+com.android.tools.r8.graph.ResolutionResult$EmptyResult -> com.android.tools.r8.graph.S0$d:
+    1:1:void <init>():523:523 -> <init>
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSpecialTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> d
+com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult -> com.android.tools.r8.graph.S0$e:
+    1:1:void <init>():591:591 -> <init>
+    com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult asFailedResolution() -> a
+    void forEachFailureDependency(java.util.function.Consumer) -> a
+    boolean isAccessibleForVirtualDispatchFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> a
+    1:1:com.android.tools.r8.graph.LookupResult$LookupResultSuccess com.android.tools.r8.graph.LookupResult.getIncompleteEmptyResult():39:39 -> a
+    1:1:com.android.tools.r8.graph.LookupResult com.android.tools.r8.graph.ResolutionResult$EmptyResult.lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):554 -> a
+    1:1:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):591 -> a
+    boolean isAccessibleFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> b
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeDirectTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> c
+    boolean isFailedResolution() -> d
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeStaticTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> e
+    boolean isVirtualTarget() -> f
+    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> f
+com.android.tools.r8.graph.ResolutionResult$FailedResolutionWithCausingMethods -> com.android.tools.r8.graph.S0$f:
+    java.util.Collection methodsCausingError -> a
+    1:1:void <init>(java.util.Collection,com.android.tools.r8.graph.ResolutionResult$1):632:632 -> <init>
+    2:3:void <init>(java.util.Collection):636:637 -> <init>
+    1:1:void forEachFailureDependency(java.util.function.Consumer):642:642 -> a
+com.android.tools.r8.graph.ResolutionResult$IllegalAccessOrNoSuchMethodResult -> com.android.tools.r8.graph.S0$g:
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():666:666 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):669:670 -> <init>
+    1:1:void forEachFailureDependency(java.util.function.Consumer):666:666 -> a
+com.android.tools.r8.graph.ResolutionResult$IncompatibleClassResult -> com.android.tools.r8.graph.S0$h:
+    com.android.tools.r8.graph.ResolutionResult$IncompatibleClassResult INSTANCE -> b
+    1:2:void <clinit>():647:648 -> <clinit>
+    1:1:void <init>(java.util.Collection):651:651 -> <init>
+    1:1:void forEachFailureDependency(java.util.function.Consumer):646:646 -> a
+    2:4:com.android.tools.r8.graph.ResolutionResult$IncompatibleClassResult create(java.util.Collection):655:657 -> a
+com.android.tools.r8.graph.ResolutionResult$NoSuchMethodResult -> com.android.tools.r8.graph.S0$i:
+    com.android.tools.r8.graph.ResolutionResult$NoSuchMethodResult INSTANCE -> a
+    1:1:void <clinit>():663:663 -> <clinit>
+    1:1:void <init>():661:661 -> <init>
+com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult -> com.android.tools.r8.graph.S0$j:
+    com.android.tools.r8.graph.DexClass initialResolutionHolder -> a
+    com.android.tools.r8.graph.DexClass resolvedHolder -> b
+    com.android.tools.r8.graph.DexEncodedMethod resolvedMethod -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():93:93 -> <clinit>
+    1:9:void <init>(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):101:109 -> <init>
+    boolean lambda$lookupInvokeSuperTarget$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass) -> a
+    void lambda$lookupVirtualDispatchTargets$3(com.android.tools.r8.graph.DexCallSite) -> a
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getResolvedMethod():118:118 -> a
+    1:1:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):266 -> a
+    2:22:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):266:286 -> a
+    23:23:com.android.tools.r8.graph.DexEncodedMethod getResolvedMethod():118:118 -> a
+    23:23:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):296 -> a
+    24:49:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):296:321 -> a
+    50:50:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():291:291 -> a
+    50:50:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):327 -> a
+    51:51:boolean isAccessibleForVirtualDispatchFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):140:140 -> a
+    52:52:boolean isSuperclass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):335:335 -> a
+    52:52:boolean lambda$lookupInvokeSpecialTarget$0(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):163 -> a
+    53:53:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):344:344 -> a
+    54:54:com.android.tools.r8.graph.LookupResult$LookupResultFailure com.android.tools.r8.graph.LookupResult.createFailedResult():35:35 -> a
+    54:54:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):345 -> a
+    55:60:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):347:352 -> a
+    61:61:com.android.tools.r8.graph.LookupResult$LookupResultSuccess com.android.tools.r8.graph.LookupResult.createResult(java.util.Set,com.android.tools.r8.graph.LookupResult$LookupResultSuccess$LookupResultCollectionState):31:31 -> a
+    61:61:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):351 -> a
+    62:77:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):354:369 -> a
+    78:78:com.android.tools.r8.graph.LookupResult$LookupResultSuccess com.android.tools.r8.graph.LookupResult.createResult(java.util.Set,com.android.tools.r8.graph.LookupResult$LookupResultSuccess$LookupResultCollectionState):31:31 -> a
+    78:78:com.android.tools.r8.graph.LookupResult lookupVirtualDispatchTargets(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.InstantiatedSubTypeInfo):369 -> a
+    79:81:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):424:426 -> a
+    79:81:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    82:85:com.android.tools.r8.graph.DexEncodedMethod lookupOverrideCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):472:475 -> a
+    82:85:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):428 -> a
+    82:85:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    86:87:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):429:430 -> a
+    86:87:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    88:89:com.android.tools.r8.graph.DexEncodedMethod findWideningOverride(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):485:486 -> a
+    88:89:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):430 -> a
+    88:89:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    90:90:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    90:90:com.android.tools.r8.graph.DexEncodedMethod findWideningOverride(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):487 -> a
+    90:90:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):430 -> a
+    90:90:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    91:95:com.android.tools.r8.graph.DexEncodedMethod findWideningOverride(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):491:495 -> a
+    91:95:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):430 -> a
+    91:95:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    96:104:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):434:442 -> a
+    96:104:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    105:108:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):436:439 -> a
+    105:108:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    109:109:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    109:109:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):439 -> a
+    109:109:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    110:112:com.android.tools.r8.graph.DexEncodedMethod lookupMaximallySpecificDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):457:459 -> a
+    110:112:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):447 -> a
+    110:112:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    113:113:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):450:450 -> a
+    113:113:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    114:114:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    114:114:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):451 -> a
+    114:114:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    115:115:com.android.tools.r8.graph.DexClassAndMethod lookupVirtualDispatchTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppView):450:450 -> a
+    115:115:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):359 -> a
+    116:116:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):362:362 -> a
+    117:152:void addVirtualDispatchTarget(com.android.tools.r8.graph.DexEncodedMethod,boolean,java.util.Set):374:409 -> a
+    117:152:void lambda$lookupVirtualDispatchTargets$2(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.graph.DexProgramClass):361 -> a
+    153:160:boolean isOverriding(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):512:519 -> a
+    com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult asSingleResolution() -> b
+    1:1:boolean isAccessibleFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):133:133 -> b
+    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeDirectTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):251:255 -> c
+    1:12:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSpecialTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):158:169 -> d
+    boolean isSingleResolution() -> e
+    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeStaticTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):230:234 -> e
+    1:1:boolean isVirtualTarget():145:145 -> f
+    2:5:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):195:198 -> f
+    6:6:boolean isSuperclass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):335:335 -> f
+    6:6:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):198 -> f
+    7:16:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):202:211 -> f
+    17:18:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):199:200 -> f
+    19:19:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> f
+    19:19:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):200 -> f
+    20:20:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> f
+    20:20:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> f
+    20:20:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):200 -> f
+    21:21:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):200:200 -> f
+    1:1:com.android.tools.r8.graph.DexClass getResolvedHolder():114:114 -> g
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getResolvedMethod():118:118 -> h
+com.android.tools.r8.graph.RewrittenPrototypeDescription -> com.android.tools.r8.graph.V0:
+    com.android.tools.r8.graph.RewrittenPrototypeDescription none -> d
+    com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection removedArgumentsInfo -> c
+    boolean $assertionsDisabled -> e
+    boolean hasBeenChangedToReturnVoid -> a
+    boolean extraNullParameter -> b
+    1:182:void <clinit>():16:197 -> <clinit>
+    183:183:void <init>():204:204 -> <clinit>
+    183:183:void <clinit>():197 -> <clinit>
+    184:184:void <clinit>():197:197 -> <clinit>
+    1:5:void <init>(boolean,boolean,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):210:214 -> <init>
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription createForUninstantiatedTypes(boolean,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):219:219 -> a
+    2:2:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection getRemovedArgumentInfoCollection():242:242 -> a
+    3:5:com.android.tools.r8.ir.code.ConstInstruction getConstantReturn(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position):255:257 -> a
+    6:14:com.android.tools.r8.graph.DexProto rewriteProto(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):262:270 -> a
+    15:16:com.android.tools.r8.graph.RewrittenPrototypeDescription withRemovedArguments(com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):280:281 -> a
+    1:1:boolean hasBeenChangedToReturnVoid():238:238 -> b
+    1:1:boolean hasExtraNullParameter():234:234 -> c
+    1:1:boolean isEmpty():228:228 -> d
+    2:2:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection getRemovedArgumentInfoCollection():242:242 -> d
+    2:2:boolean isEmpty():230 -> d
+    3:3:boolean isEmpty():230:230 -> d
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription none():224:224 -> e
+    1:2:com.android.tools.r8.graph.RewrittenPrototypeDescription withConstantReturn():274:275 -> f
+    1:2:com.android.tools.r8.graph.RewrittenPrototypeDescription withExtraNullParameter():285:286 -> g
+com.android.tools.r8.graph.RewrittenPrototypeDescription$1 -> com.android.tools.r8.graph.T0:
+com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo -> com.android.tools.r8.graph.V0$a:
+    com.android.tools.r8.graph.DexType type -> b
+    boolean isAlwaysNull -> a
+    1:1:void <init>(boolean,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.RewrittenPrototypeDescription$1):18:18 -> <init>
+    2:4:void <init>(boolean,com.android.tools.r8.graph.DexType):44:46 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getType():54:54 -> a
+    1:1:boolean isAlwaysNull():58:58 -> b
+    1:1:boolean isNeverUsed():62:62 -> c
+com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo$Builder -> com.android.tools.r8.graph.U0:
+    com.android.tools.r8.graph.DexType type -> b
+    boolean isAlwaysNull -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:4:void <init>():20:23 -> <init>
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setType(com.android.tools.r8.graph.DexType):31:31 -> a
+    2:3:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo build():36:37 -> a
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setIsAlwaysNull():26:26 -> b
+com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection -> com.android.tools.r8.graph.V0$b:
+    com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection EMPTY -> b
+    boolean $assertionsDisabled -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap removedArguments -> a
+    1:3:void <clinit>():66:68 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap,com.android.tools.r8.graph.RewrittenPrototypeDescription$1):66:66 -> <init>
+    2:3:void <init>():73:74 -> <init>
+    4:7:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap):78:81 -> <init>
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection access$100():66:66 -> a
+    2:2:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo getArgumentInfo(int):89:89 -> a
+    3:3:boolean isArgumentRemoved(int):97:97 -> a
+    3:3:boolean lambda$createParameterAnnotationsRemover$0(int,int):166 -> a
+    4:17:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection combine(com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):124:137 -> a
+    18:20:int peekNextOrMax(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator):152:154 -> a
+    18:20:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection combine(com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):138 -> a
+    21:21:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection combine(com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):140:140 -> a
+    22:24:int peekNextOrMax(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator):152:154 -> a
+    22:24:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection combine(com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):141 -> a
+    25:27:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection combine(com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):144:146 -> a
+    28:31:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection combine(com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):145:148 -> a
+    32:33:java.util.function.Consumer createParameterAnnotationsRemover(com.android.tools.r8.graph.DexEncodedMethod):162:163 -> a
+    34:35:void lambda$createParameterAnnotationsRemover$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$Builder):164:165 -> a
+    1:1:boolean isArgumentRemoved(int):97:97 -> b
+    2:2:com.android.tools.r8.graph.DexType[] rewriteParameters(com.android.tools.r8.graph.DexEncodedMethod):103:103 -> b
+    3:3:boolean isArgumentRemoved(int):97:97 -> b
+    3:3:com.android.tools.r8.graph.DexType[] rewriteParameters(com.android.tools.r8.graph.DexEncodedMethod):103 -> b
+    4:12:com.android.tools.r8.graph.DexType[] rewriteParameters(com.android.tools.r8.graph.DexEncodedMethod):103:111 -> b
+    13:13:boolean isArgumentRemoved(int):97:97 -> b
+    13:13:com.android.tools.r8.graph.DexType[] rewriteParameters(com.android.tools.r8.graph.DexEncodedMethod):112 -> b
+    14:14:com.android.tools.r8.graph.DexType[] rewriteParameters(com.android.tools.r8.graph.DexEncodedMethod):113:113 -> b
+    15:15:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection$Builder builder():173:173 -> b
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection empty():85:85 -> c
+    1:1:boolean hasRemovedArguments():93:93 -> d
+    1:1:int numberOfRemovedArguments():120:120 -> e
+com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection$Builder -> com.android.tools.r8.graph.W0:
+    boolean $assertionsDisabled -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap removedArguments -> a
+    1:1:void <clinit>():176:176 -> <clinit>
+    1:1:void <init>():176:176 -> <init>
+    1:5:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection$Builder addRemovedArgument(int,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo):180:184 -> a
+    6:9:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection build():189:192 -> a
+    10:10:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection build():190:190 -> a
+com.android.tools.r8.graph.SmaliWriter -> com.android.tools.r8.graph.X0:
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):22:22 -> <init>
+    java.lang.String getFileEnding() -> a
+    void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream) -> a
+    1:10:java.lang.String smali(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):27:36 -> a
+    11:17:java.lang.String smali(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):28:34 -> a
+    18:20:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):72:74 -> a
+    1:3:void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):65:67 -> b
+    1:13:void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):46:58 -> c
+com.android.tools.r8.graph.TopDownClassHierarchyTraversal -> com.android.tools.r8.graph.Y0:
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):14:14 -> <init>
+    1:1:void visit(java.lang.Iterable,java.util.function.Consumer):9:9 -> a
+    2:2:com.android.tools.r8.graph.TopDownClassHierarchyTraversal forAllClasses(com.android.tools.r8.graph.AppView):23:23 -> a
+    3:4:com.android.tools.r8.graph.ClassHierarchyTraversal com.android.tools.r8.graph.ClassHierarchyTraversal.excludeInterfaces():60:61 -> a
+    3:4:com.android.tools.r8.graph.ClassHierarchyTraversal excludeInterfaces():0 -> a
+    5:13:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):61:69 -> a
+    14:28:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):25:39 -> a
+    14:28:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
+    29:29:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):36:36 -> a
+    29:29:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
+    30:30:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):33:33 -> a
+    30:30:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
+    31:31:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):30:30 -> a
+    31:31:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
+    32:37:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):72:77 -> a
+    38:38:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    38:38:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):77 -> a
+    39:48:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):95:104 -> a
+    39:48:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):78 -> a
+    49:49:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):101:101 -> a
+    49:49:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):78 -> a
+    50:57:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):79:86 -> a
+    58:58:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    58:58:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):86 -> a
+    59:68:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):95:104 -> a
+    59:68:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):87 -> a
+    69:69:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):101:101 -> a
+    69:69:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):87 -> a
+    70:70:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):88:88 -> a
+    com.android.tools.r8.graph.ClassHierarchyTraversal self() -> b
+    1:1:com.android.tools.r8.graph.TopDownClassHierarchyTraversal forProgramClasses(com.android.tools.r8.graph.AppView):50:50 -> b
+com.android.tools.r8.graph.UseRegistry -> com.android.tools.r8.graph.Z0:
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory):24:25 -> <init>
+    1:27:void registerCallSite(com.android.tools.r8.graph.DexCallSite):99:125 -> registerCallSite
+    1:1:boolean registerCheckCast(com.android.tools.r8.graph.DexType):55:55 -> registerCheckCast
+    1:1:boolean registerConstClass(com.android.tools.r8.graph.DexType):51:51 -> registerConstClass
+    1:35:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):60:94 -> registerMethodHandle
+    36:36:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):91:91 -> registerMethodHandle
+    37:37:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):88:88 -> registerMethodHandle
+    38:38:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):85:85 -> registerMethodHandle
+    39:41:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):80:82 -> registerMethodHandle
+    42:42:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):77:77 -> registerMethodHandle
+    43:43:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):74:74 -> registerMethodHandle
+    44:44:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):71:71 -> registerMethodHandle
+    45:45:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):68:68 -> registerMethodHandle
+    46:46:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):65:65 -> registerMethodHandle
+    47:47:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):62:62 -> registerMethodHandle
+    1:3:void registerProto(com.android.tools.r8.graph.DexProto):135:137 -> registerProto
+com.android.tools.r8.graph.UseRegistry$MethodHandleUse -> com.android.tools.r8.graph.Z0$a:
+    com.android.tools.r8.graph.UseRegistry$MethodHandleUse ARGUMENT_TO_LAMBDA_METAFACTORY -> a
+    com.android.tools.r8.graph.UseRegistry$MethodHandleUse NOT_ARGUMENT_TO_LAMBDA_METAFACTORY -> b
+    1:2:void <clinit>():20:21 -> <clinit>
+    1:1:void <init>(java.lang.String,int):19:19 -> <init>
+com.android.tools.r8.graph.analysis.ClassInitializerAssertionEnablingAnalysis -> com.android.tools.r8.graph.a1.a:
+    com.android.tools.r8.ir.optimize.info.OptimizationFeedback feedback -> b
+    com.android.tools.r8.graph.DexString kotlinAssertionsEnabled -> c
+    java.util.List r8InstructionSequence -> e
+    java.util.List javacInstructionSequence -> d
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
+    1:8:void <clinit>():92:99 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):29:32 -> <init>
+    1:3:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):37:39 -> a
+    4:12:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):102:110 -> a
+    4:12:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):39 -> a
+    13:30:com.android.tools.r8.cf.code.CfFieldInstruction isJavacInstructionSequence(com.android.tools.r8.graph.CfCode,int):160:177 -> a
+    13:30:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):111 -> a
+    13:30:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):39 -> a
+    31:48:com.android.tools.r8.cf.code.CfFieldInstruction isR8InstructionSequence(com.android.tools.r8.graph.CfCode,int):182:199 -> a
+    31:48:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):113 -> a
+    31:48:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):39 -> a
+    49:55:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):116:122 -> a
+    49:55:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):39 -> a
+    56:77:boolean hasKotlincClinitAssertionCode(com.android.tools.r8.graph.DexEncodedMethod):130:151 -> a
+    56:77:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):40 -> a
+    78:78:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):41:41 -> a
+com.android.tools.r8.graph.analysis.DesugaredLibraryConversionWrapperAnalysis -> com.android.tools.r8.graph.a1.b:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map wrappersToReverseMap -> d
+    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter converter -> b
+    boolean $assertionsDisabled -> e
+    boolean callbackGenerated -> c
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):31:31 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.AppView):28:33 -> <init>
+    1:1:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):39:39 -> a
+    2:2:void traceInvoke(com.android.tools.r8.graph.DexMethod):43:43 -> a
+    2:2:void traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):53 -> a
+    3:8:com.android.tools.r8.graph.analysis.DesugaredLibraryConversionWrapperAnalysis registerReads(com.android.tools.r8.graph.DexProgramClass,java.util.function.Consumer):120:125 -> a
+    9:11:com.android.tools.r8.graph.DexEncodedMethod getConvertMethod(com.android.tools.r8.graph.DexProgramClass):138:140 -> a
+    1:1:void traceInvoke(com.android.tools.r8.graph.DexMethod):43:43 -> b
+    1:1:void traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):58 -> b
+    2:4:java.util.List generateCallbackMethods():72:74 -> b
+    5:5:com.android.tools.r8.graph.analysis.DesugaredLibraryConversionWrapperAnalysis registerWrite(com.android.tools.r8.graph.DexProgramClass,java.util.function.Consumer):112:112 -> b
+    6:8:com.android.tools.r8.graph.DexEncodedMethod getInitializer(com.android.tools.r8.graph.DexProgramClass):131:133 -> b
+    1:1:void traceInvoke(com.android.tools.r8.graph.DexMethod):43:43 -> c
+    1:1:void traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):48 -> c
+    2:4:java.util.Set generateWrappers():78:80 -> c
+    1:1:void traceInvoke(com.android.tools.r8.graph.DexMethod):43:43 -> d
+    1:1:void traceInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):63 -> d
+    2:6:java.util.List generateWrappersSuperTypeMock():86:90 -> d
+    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> d
+    7:7:java.util.List generateWrappersSuperTypeMock():90 -> d
+    8:11:java.util.List generateWrappersSuperTypeMock():91:94 -> d
+    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> d
+    12:12:java.util.List generateWrappersSuperTypeMock():94 -> d
+    13:21:java.util.List generateWrappersSuperTypeMock():95:103 -> d
+    1:1:void traceInvoke(com.android.tools.r8.graph.DexMethod):43:43 -> e
+    1:1:void traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):68 -> e
+com.android.tools.r8.graph.analysis.EnqueuerAnalysis -> com.android.tools.r8.graph.a1.c:
+    1:1:void <init>():13:13 -> <init>
+    void done() -> a
+    void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist) -> a
+    void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod) -> a
+    void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod) -> a
+com.android.tools.r8.graph.analysis.EnqueuerInvokeAnalysis -> com.android.tools.r8.graph.a1.d:
+com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis -> com.android.tools.r8.graph.a1.f:
+    java.util.Map mapping -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    1:1:void <init>(com.android.tools.r8.graph.AppView):60:60 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.AppView):57:61 -> <init>
+    1:17:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):66:82 -> a
+    18:18:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):80:80 -> a
+    19:19:void done():88:88 -> a
+com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$1 -> com.android.tools.r8.graph.a1.e:
+com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods -> com.android.tools.r8.graph.a1.f$a:
+    java.util.Map mapping -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$1):20:20 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):26:28 -> <init>
+    1:15:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):34:48 -> a
+    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    16:16:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):48 -> a
+    17:17:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):49:49 -> a
+com.android.tools.r8.graph.classmerging.HorizontallyMergedLambdaClasses -> com.android.tools.r8.graph.b1.a:
+    java.util.Set sources -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:2:void <init>(java.util.Set):16:17 -> <init>
+    1:4:boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView):22:25 -> a
+com.android.tools.r8.graph.classmerging.MergedClasses -> com.android.tools.r8.graph.b1.b:
+    boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView) -> a
+com.android.tools.r8.graph.classmerging.MergedClassesCollection -> com.android.tools.r8.graph.b1.c:
+    java.util.List collection -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:3:void <init>():12:14 -> <init>
+    1:1:void add(com.android.tools.r8.graph.classmerging.MergedClasses):17:17 -> a
+    2:3:boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView):22:23 -> a
+com.android.tools.r8.graph.classmerging.VerticallyMergedClasses -> com.android.tools.r8.graph.b1.d:
+    java.util.Map mergedClasses -> a
+    java.util.Map sources -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:6:void <init>(java.util.Map):21:26 -> <init>
+    1:1:void lambda$new$1(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):24:24 -> a
+    2:2:java.util.List getSourcesFor(com.android.tools.r8.graph.DexType):30:30 -> a
+    3:6:boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView):44:47 -> a
+    1:2:com.android.tools.r8.graph.DexType getTargetFor(com.android.tools.r8.graph.DexType):34:35 -> b
+    1:1:boolean hasBeenMergedIntoSubtype(com.android.tools.r8.graph.DexType):39:39 -> c
+    1:1:java.util.List lambda$new$0(com.android.tools.r8.graph.DexType):24:24 -> d
+com.android.tools.r8.ir.analysis.AbstractError -> com.android.tools.r8.t.a.a:
+    com.android.tools.r8.graph.DexType simulatedError -> a
+    com.android.tools.r8.ir.analysis.AbstractError TOP -> b
+    com.android.tools.r8.ir.analysis.AbstractError BOTTOM -> c
+    boolean $assertionsDisabled -> d
+    1:4:void <clinit>():18:21 -> <clinit>
+    1:1:void <init>():25:25 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexType):27:28 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.AbstractError bottom():36:36 -> a
+    2:2:com.android.tools.r8.ir.analysis.AbstractError specific(com.android.tools.r8.graph.DexType):40:40 -> a
+    3:8:com.android.tools.r8.graph.DexType getSpecificError(com.android.tools.r8.graph.DexItemFactory):52:57 -> a
+    1:1:boolean cannotThrow():44:44 -> b
+    1:1:boolean isThrowing():48:48 -> c
+    1:1:com.android.tools.r8.ir.analysis.AbstractError top():32:32 -> d
+com.android.tools.r8.ir.analysis.ClassInitializationAnalysis -> com.android.tools.r8.t.a.c:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.code.DominatorTree dominatorTree -> d
+    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis TRIVIAL -> f
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.ir.code.IRCode code -> b
+    int markingColor -> e
+    1:13:void <clinit>():48:60 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$1):48:48 -> <init>
+    2:2:void <init>():77:77 -> <init>
+    3:9:void <init>():74:80 -> <init>
+    10:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):83:83 -> <init>
+    11:23:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):74:86 -> <init>
+    1:26:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):95:120 -> a
+    27:76:com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption getAssumptionForDominator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):179:228 -> a
+    27:76:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):121 -> a
+    77:88:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):122:133 -> a
+    89:89:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):132:132 -> a
+    90:92:void returnMarkingColor():247:249 -> a
+    90:92:void finish():243 -> a
+    1:1:void notifyCodeHasChanged():237:237 -> b
+    2:4:void returnMarkingColor():247:249 -> b
+    2:4:void notifyCodeHasChanged():238 -> b
+    1:1:com.android.tools.r8.ir.analysis.ClassInitializationAnalysis trivial():91:91 -> c
+com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$1 -> com.android.tools.r8.t.a.b:
+    1:1:void <init>():61:61 -> <init>
+    boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction) -> a
+com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption -> com.android.tools.r8.t.a.c$a:
+    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption NONE -> b
+    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption INSTRUCTION_DOES_NOT_THROW -> a
+    1:2:void <clinit>():51:52 -> <clinit>
+    1:1:void <init>(java.lang.String,int):50:50 -> <init>
+com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$InstructionUtils -> com.android.tools.r8.t.a.c$b:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():253:253 -> <clinit>
+    1:1:boolean forInstanceGet(com.android.tools.r8.ir.code.InstanceGet,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):261:261 -> a
+    2:2:boolean forInstancePut(com.android.tools.r8.ir.code.InstancePut,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):270:270 -> a
+    3:15:boolean forInstanceGetOrPut(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):279:291 -> a
+    16:22:boolean forInvokeDirect(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):300:306 -> a
+    23:23:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    23:23:boolean forInvokeDirect(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):306 -> a
+    24:24:boolean forInvokeDirect(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):307:307 -> a
+    25:51:boolean forInvokeInterface(com.android.tools.r8.ir.code.InvokeInterface,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):317:343 -> a
+    52:56:boolean forInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):352:356 -> a
+    57:57:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    57:57:boolean forInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):356 -> a
+    58:58:boolean forInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):357:357 -> a
+    59:79:boolean forInvokeSuper(com.android.tools.r8.ir.code.InvokeSuper,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):367:387 -> a
+    80:80:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    80:80:boolean forInvokeSuper(com.android.tools.r8.ir.code.InvokeSuper,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):387 -> a
+    81:91:boolean forInvokeSuper(com.android.tools.r8.ir.code.InvokeSuper,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):391:401 -> a
+    92:118:boolean forInvokeVirtual(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):411:437 -> a
+    119:123:boolean forNewInstance(com.android.tools.r8.ir.code.NewInstance,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):446:450 -> a
+    124:124:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    124:124:boolean forNewInstance(com.android.tools.r8.ir.code.NewInstance,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):450 -> a
+    125:125:boolean forNewInstance(com.android.tools.r8.ir.code.NewInstance,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):451:451 -> a
+    126:126:boolean forStaticGet(com.android.tools.r8.ir.code.StaticGet,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):460:460 -> a
+    127:127:boolean forStaticPut(com.android.tools.r8.ir.code.StaticPut,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):469:469 -> a
+    128:153:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):489:514 -> a
+    154:155:void enqueueInitializedClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.Deque):548:549 -> a
+    154:155:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):515 -> a
+    156:163:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):517:524 -> a
+    164:164:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    164:164:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):528 -> a
+    165:165:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):530:530 -> a
+    166:167:void enqueueInitializedClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.Deque):548:549 -> a
+    166:167:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):532 -> a
+    168:168:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):517:517 -> a
+    169:170:void enqueue(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Deque):541:542 -> a
+    1:7:boolean forStaticGetOrPut(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):478:484 -> b
+com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query -> com.android.tools.r8.t.a.c$c:
+    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query DIRECTLY_OR_INDIRECTLY -> b
+    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query DIRECTLY -> a
+    1:2:void <clinit>():56:57 -> <clinit>
+    1:1:void <init>(java.lang.String,int):55:55 -> <init>
+com.android.tools.r8.ir.analysis.DeterminismAnalysis -> com.android.tools.r8.t.a.d:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:47:boolean returnValueOnlyDependsOnArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):22:68 -> a
+    48:48:boolean returnValueOnlyDependsOnArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58:58 -> a
+com.android.tools.r8.ir.analysis.InitializedClassesOnNormalExitAnalysis -> com.android.tools.r8.t.a.f:
+    1:15:java.util.Set computeInitializedClassesOnNormalExit(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):38:52 -> a
+com.android.tools.r8.ir.analysis.InitializedClassesOnNormalExitAnalysis$Visitor -> com.android.tools.r8.t.a.e:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set initializedClassesOnNormalExit -> c
+    com.android.tools.r8.graph.DexType context -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():55:55 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):61:61 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):59:63 -> <init>
+    1:1:java.util.Set build():67:67 -> a
+    2:2:void markInitializedOnNormalExit(java.lang.Iterable):71:71 -> a
+    3:8:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):75:80 -> a
+    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    9:9:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):80 -> a
+    10:36:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):84:110 -> a
+    37:42:java.lang.Void handleFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction):116:121 -> a
+    37:42:java.lang.Object handleFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction):55 -> a
+    43:51:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):129:137 -> a
+    43:51:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):55 -> a
+    52:55:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):136:139 -> a
+    52:55:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):55 -> a
+    56:56:java.lang.Void visit(com.android.tools.r8.ir.code.NewInstance):148:148 -> a
+    56:56:java.lang.Object visit(com.android.tools.r8.ir.code.NewInstance):55 -> a
+com.android.tools.r8.ir.analysis.TypeChecker -> com.android.tools.r8.t.a.g:
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView):35:36 -> <init>
+    1:3:boolean check(com.android.tools.r8.ir.code.IRCode):40:42 -> a
+    4:4:boolean check(com.android.tools.r8.ir.code.InstancePut):63:63 -> a
+    4:4:boolean check(com.android.tools.r8.ir.code.IRCode):42 -> a
+    5:6:boolean check(com.android.tools.r8.ir.code.IRCode):45:46 -> a
+    7:13:boolean check(com.android.tools.r8.ir.code.Return,com.android.tools.r8.graph.DexEncodedMethod):67:73 -> a
+    7:13:boolean check(com.android.tools.r8.ir.code.IRCode):46 -> a
+    14:23:boolean check(com.android.tools.r8.ir.code.Return,com.android.tools.r8.graph.DexEncodedMethod):72:81 -> a
+    14:23:boolean check(com.android.tools.r8.ir.code.IRCode):46 -> a
+    24:24:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    24:24:boolean check(com.android.tools.r8.ir.code.Return,com.android.tools.r8.graph.DexEncodedMethod):81 -> a
+    24:24:boolean check(com.android.tools.r8.ir.code.IRCode):46 -> a
+    25:25:boolean check(com.android.tools.r8.ir.code.Return,com.android.tools.r8.graph.DexEncodedMethod):82:82 -> a
+    25:25:boolean check(com.android.tools.r8.ir.code.IRCode):46 -> a
+    26:27:boolean check(com.android.tools.r8.ir.code.IRCode):49:50 -> a
+    28:28:boolean check(com.android.tools.r8.ir.code.StaticPut):89:89 -> a
+    28:28:boolean check(com.android.tools.r8.ir.code.IRCode):50 -> a
+    29:30:boolean check(com.android.tools.r8.ir.code.IRCode):53:54 -> a
+    31:34:boolean check(com.android.tools.r8.ir.code.Throw):113:116 -> a
+    31:34:boolean check(com.android.tools.r8.ir.code.IRCode):54 -> a
+    35:37:boolean check(com.android.tools.r8.ir.code.Throw):115:117 -> a
+    35:37:boolean check(com.android.tools.r8.ir.code.IRCode):54 -> a
+    38:42:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):93:97 -> a
+    43:52:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):96:105 -> a
+    53:53:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    53:53:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):105 -> a
+    54:54:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):106:106 -> a
+    55:57:boolean isSubtypeOf(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):122:124 -> a
+com.android.tools.r8.ir.analysis.ValueMayDependOnEnvironmentAnalysis -> com.android.tools.r8.t.a.h:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set knownNotToDependOnEnvironment -> d
+    java.util.Set visited -> e
+    com.android.tools.r8.graph.DexType context -> c
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.ir.code.IRCode code -> b
+    java.util.Map finalFieldPuts -> f
+    1:1:void <clinit>():71:71 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):84:84 -> <init>
+    2:12:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):77:87 -> <init>
+    1:11:boolean valueMayNotDependOnEnvironmentAssumingArrayDoesNotDependOnEnvironment(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.Set):134:144 -> a
+    12:13:boolean isConstantArrayThroughoutMethod(com.android.tools.r8.ir.code.Value):154:155 -> a
+    14:55:boolean valueMayBeMutatedBeforeMethodExit(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Set):363:404 -> a
+    56:67:boolean isAliasOfValueThatIsIndependentOfEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):427:438 -> a
+    68:68:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> a
+    68:68:boolean isAliasOfValueThatIsIndependentOfEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):441 -> a
+    69:70:boolean isAliasOfValueThatIsIndependentOfEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):441:442 -> a
+    71:76:java.util.Map computeFinalFieldPuts():450:455 -> a
+    77:77:boolean com.android.tools.r8.graph.DexEncodedField.isFinal():129:129 -> a
+    77:77:java.util.Map computeFinalFieldPuts():455 -> a
+    78:82:java.util.Map computeFinalFieldPuts():456:460 -> a
+    83:83:java.util.List lambda$computeFinalFieldPuts$0(com.android.tools.r8.graph.DexEncodedField):456:456 -> a
+    1:2:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value):91:92 -> b
+    3:119:boolean isConstantArrayThroughoutMethod(com.android.tools.r8.ir.code.Value,java.util.Set):161:277 -> b
+    1:8:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):285:292 -> c
+    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    9:9:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):292 -> c
+    10:45:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):292:327 -> c
+    46:46:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> c
+    46:46:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):327 -> c
+    47:64:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):332:349 -> c
+    65:72:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):348:355 -> c
+    1:31:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):98:128 -> d
+    32:47:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):113:128 -> d
+    48:60:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):116:128 -> d
+    61:70:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):119:128 -> d
+    71:77:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):122:128 -> d
+    78:80:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):127:127 -> d
+    81:82:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):128:129 -> d
+com.android.tools.r8.ir.analysis.constant.Bottom -> com.android.tools.r8.t.a.i.a:
+    com.android.tools.r8.ir.analysis.constant.Bottom INSTANCE -> a
+    1:1:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>():9:9 -> <init>
+    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
+    boolean isBottom() -> c
+    1:1:com.android.tools.r8.ir.analysis.constant.Bottom getInstance():13:13 -> g
+com.android.tools.r8.ir.analysis.constant.ConstLatticeElement -> com.android.tools.r8.t.a.i.b:
+    com.android.tools.r8.ir.code.ConstNumber value -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.ConstNumber):11:12 -> <init>
+    com.android.tools.r8.ir.analysis.constant.ConstLatticeElement asConst() -> a
+    1:12:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):17:28 -> a
+    boolean isConst() -> d
+    1:1:com.android.tools.r8.ir.code.ConstNumber getConstNumber():47:47 -> g
+    1:1:int getIntValue():51:51 -> h
+    1:1:java.lang.String toString():43:43 -> toString
+com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement -> com.android.tools.r8.t.a.i.c:
+    com.android.tools.r8.ir.code.Value value -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.Value):11:13 -> <init>
+    1:8:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):18:25 -> a
+    9:9:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> a
+    9:9:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26 -> a
+    10:10:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26:26 -> a
+    11:11:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> a
+    11:11:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26 -> a
+    12:16:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26:30 -> a
+    com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement asConstRange() -> b
+    boolean isValueRange() -> f
+    1:1:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> g
+    1:1:java.lang.String toString():40:40 -> toString
+com.android.tools.r8.ir.analysis.constant.LatticeElement -> com.android.tools.r8.t.a.i.d:
+    1:1:void <init>():6:6 -> <init>
+    com.android.tools.r8.ir.analysis.constant.ConstLatticeElement asConst() -> a
+    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
+    com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement asConstRange() -> b
+    boolean isBottom() -> c
+    boolean isConst() -> d
+    boolean isTop() -> e
+    boolean isValueRange() -> f
+com.android.tools.r8.ir.analysis.constant.SparseConditionalConstantPropagation -> com.android.tools.r8.t.a.i.e:
+    java.util.Deque flowEdges -> d
+    java.util.BitSet visitedBlocks -> g
+    java.util.Map mapping -> b
+    java.util.Deque ssaEdges -> c
+    java.util.BitSet[] executableFlowEdges -> f
+    com.android.tools.r8.ir.code.IRCode code -> a
+    boolean $assertionsDisabled -> h
+    int nextBlockNumber -> e
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.IRCode):40:40 -> <init>
+    2:13:void <init>(com.android.tools.r8.ir.code.IRCode):33:44 -> <init>
+    1:41:void rewriteCode():80:120 -> a
+    42:42:boolean lambda$rewriteCode$0(java.util.Map$Entry):83:83 -> a
+    43:68:void lambda$rewriteCode$3(java.util.List,java.util.Map$Entry):86:111 -> a
+    69:69:boolean lambda$rewriteCode$1(com.android.tools.r8.ir.code.Instruction):99:99 -> a
+    70:70:boolean lambda$rewriteCode$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):110:110 -> a
+    71:71:com.android.tools.r8.ir.analysis.constant.LatticeElement getLatticeElement(com.android.tools.r8.ir.code.Value):124:124 -> a
+    72:87:void visitPhi(com.android.tools.r8.ir.code.Phi):132:147 -> a
+    88:88:com.android.tools.r8.ir.analysis.constant.LatticeElement getLatticeElement(com.android.tools.r8.ir.code.Value):124:124 -> a
+    88:88:void visitPhi(com.android.tools.r8.ir.code.Phi):148 -> a
+    89:90:void visitPhi(com.android.tools.r8.ir.code.Phi):149:150 -> a
+    91:91:void setLatticeElement(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.constant.LatticeElement):128:128 -> a
+    91:91:void visitPhi(com.android.tools.r8.ir.code.Phi):151 -> a
+    92:95:void visitInstructions(com.android.tools.r8.ir.code.BasicBlock):157:160 -> a
+    96:100:boolean isExecutableEdge(int,int):250:254 -> a
+    1:28:void run():49:76 -> b
+    29:46:void run():53:70 -> b
+    47:51:void visitInstruction(com.android.tools.r8.ir.code.Instruction):164:168 -> b
+    52:52:void setLatticeElement(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.constant.LatticeElement):128:128 -> b
+    52:52:void visitInstruction(com.android.tools.r8.ir.code.Instruction):168 -> b
+    53:57:void visitInstruction(com.android.tools.r8.ir.code.Instruction):169:173 -> b
+    58:115:void addFlowEdgesForJumpInstruction(com.android.tools.r8.ir.code.JumpInstruction):178:235 -> b
+    58:115:void visitInstruction(com.android.tools.r8.ir.code.Instruction):173 -> b
+    116:121:void setExecutableEdge(int,int):241:246 -> b
+com.android.tools.r8.ir.analysis.constant.Top -> com.android.tools.r8.t.a.i.f:
+    com.android.tools.r8.ir.analysis.constant.Top INSTANCE -> a
+    1:1:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>():9:9 -> <init>
+    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
+    boolean isTop() -> e
+    1:1:com.android.tools.r8.ir.analysis.constant.Top getInstance():13:13 -> g
+com.android.tools.r8.ir.analysis.equivalence.BasicBlockBehavioralSubsumption -> com.android.tools.r8.t.a.j.a:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.DexType context -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):38:40 -> <init>
+    1:1:boolean isSubsumedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):44:44 -> a
+    2:5:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):51:54 -> a
+    6:6:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):53:53 -> a
+    7:22:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):52:67 -> a
+    23:35:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):66:78 -> a
+    36:57:boolean passesIdenticalValuesForPhis(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):245:266 -> a
+    36:57:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):77 -> a
+    58:58:boolean passesIdenticalValuesForPhis(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):265:265 -> a
+    58:58:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):77 -> a
+    59:75:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):80:96 -> a
+    76:77:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> a
+    76:77:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):96 -> a
+    78:104:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):98:124 -> a
+    105:110:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):123:128 -> a
+    111:112:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> a
+    111:112:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):129 -> a
+    113:122:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):133:142 -> a
+    123:123:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):141:141 -> a
+    124:130:boolean definesValueWithNonLocalUsages(com.android.tools.r8.ir.code.Instruction):159:165 -> a
+    131:139:boolean valuesAreIdentical(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):178:186 -> a
+    140:182:boolean instructionsDefineIdenticalValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):190:232 -> a
+    140:182:boolean valuesAreIdentical(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):186 -> a
+    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.ir.code.Instruction):174:174 -> b
+    1:1:boolean definesBlockLocalValue(com.android.tools.r8.ir.code.Instruction):155:155 -> c
+    1:1:boolean isBlockLocalInstructionWithoutSideEffects(com.android.tools.r8.ir.code.Instruction):151 -> c
+    2:2:boolean instructionMayHaveSideEffects(com.android.tools.r8.ir.code.Instruction):174:174 -> c
+    2:2:boolean isBlockLocalInstructionWithoutSideEffects(com.android.tools.r8.ir.code.Instruction):151 -> c
+com.android.tools.r8.ir.analysis.escape.EscapeAnalysis -> com.android.tools.r8.t.a.k.a:
+    java.util.Deque valuesToTrack -> d
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set trackedValues -> c
+    com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration configuration -> b
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration):43:43 -> <init>
+    2:13:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration):34:45 -> <init>
+    1:1:boolean lambda$isEscaping$0(com.android.tools.r8.utils.Box,com.android.tools.r8.ir.code.Instruction):60:60 -> a
+    2:10:java.util.Set computeEscapeRoutes(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):73:81 -> a
+    11:11:boolean lambda$computeEscapeRoutes$1(com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder,com.android.tools.r8.ir.code.Instruction):78:78 -> a
+    12:31:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):86:105 -> a
+    32:47:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):125:140 -> a
+    32:47:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
+    48:76:boolean isDirectlyEscaping(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod,java.util.List):178:206 -> a
+    48:76:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):141 -> a
+    48:76:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
+    77:92:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):142:157 -> a
+    77:92:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
+    93:97:com.android.tools.r8.ir.code.Value getPropagatedSubject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):216:220 -> a
+    93:97:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):160 -> a
+    93:97:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
+    98:99:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):162:163 -> a
+    98:99:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
+    100:101:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):114:115 -> a
+    102:104:void addToWorklist(com.android.tools.r8.ir.code.Value):170:172 -> a
+    1:9:boolean isEscaping(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):55:63 -> b
+    10:10:boolean isValueOfInterestOrAlias(com.android.tools.r8.ir.code.Value):212:212 -> b
+com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration -> com.android.tools.r8.t.a.k.b:
+com.android.tools.r8.ir.analysis.fieldaccess.FieldAccessAnalysis -> com.android.tools.r8.t.a.l.a:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.analysis.fieldaccess.FieldAssignmentTracker fieldAssignmentTracker -> b
+    com.android.tools.r8.ir.analysis.fieldaccess.FieldBitAccessAnalysis fieldBitAccessAnalysis -> c
+    1:7:void <init>(com.android.tools.r8.graph.AppView):28:34 -> <init>
+    8:11:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.fieldaccess.FieldAssignmentTracker,com.android.tools.r8.ir.analysis.fieldaccess.FieldBitAccessAnalysis):40:43 -> <init>
+    1:1:boolean enable(com.android.tools.r8.utils.InternalOptions):47:47 -> a
+    2:2:com.android.tools.r8.ir.analysis.fieldaccess.FieldAssignmentTracker fieldAssignmentTracker():51:51 -> a
+    3:4:void acceptClassInitializerDefaultsResult(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):56:57 -> a
+    5:27:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):63:85 -> a
+    28:28:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    28:28:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):85 -> a
+    29:32:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):85:88 -> a
+com.android.tools.r8.ir.analysis.fieldaccess.FieldAssignmentTracker -> com.android.tools.r8.t.a.l.b:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set nonZeroFields -> d
+    com.android.tools.r8.ir.analysis.fieldaccess.FieldAssignmentTracker$FieldAccessGraph fieldAccessGraph -> b
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.ir.analysis.fieldaccess.FieldAssignmentTracker$ObjectAllocationGraph objectAllocationGraph -> c
+    java.util.Map abstractInstanceFieldValues -> e
+    1:1:void <clinit>():40:40 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):60:60 -> <init>
+    2:11:void <init>(com.android.tools.r8.graph.AppView):55:64 -> <init>
+    1:3:void initializeAbstractInstanceFieldValues():75:77 -> a
+    4:18:void lambda$initializeAbstractInstanceFieldValues$0(com.android.tools.r8.graph.DexProgramClass,java.util.Set):79:93 -> a
+    19:19:boolean isAlwaysZero(com.android.tools.r8.graph.DexEncodedField):98:98 -> a
+    19:19:void recordAllFieldPutsProcessed(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed):185 -> a
+    19:19:void lambda$waveDone$3(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.graph.DexEncodedField):215 -> a
+    20:22:void recordAllFieldPutsProcessed(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed):186:186 -> a
+    20:22:void lambda$waveDone$3(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.graph.DexEncodedField):215 -> a
+    23:23:void acceptClassInitializerDefaultsResult(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):103:103 -> a
+    24:25:void lambda$acceptClassInitializerDefaultsResult$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexValue):105:106 -> a
+    26:27:void recordFieldAccess(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):113:114 -> a
+    28:29:void recordFieldPut(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexEncodedMethod):119:120 -> a
+    28:29:void recordFieldAccess(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):114 -> a
+    30:34:boolean verifyValueIsConsistentWithFieldOptimizationInfo(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo,com.android.tools.r8.graph.DexEncodedMethod):223:227 -> a
+    30:34:void recordFieldPut(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexEncodedMethod):119 -> a
+    30:34:void recordFieldAccess(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):114 -> a
+    35:36:void recordFieldPut(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexEncodedMethod):121:122 -> a
+    35:36:void recordFieldAccess(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):114 -> a
+    37:89:void recordAllocationSite(com.android.tools.r8.ir.code.NewInstance,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):128:180 -> a
+    90:106:void recordAllAllocationsSitesProcessed(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed):193:209 -> a
+    107:107:void lambda$recordAllAllocationsSitesProcessed$2(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.AppInfoWithLivenessModifier):203:203 -> a
+    108:110:void waveDone(java.util.Collection,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed):214:216 -> a
+    111:111:void lambda$waveDone$4(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.graph.DexProgramClass):217:217 -> a
+com.android.tools.r8.ir.analysis.fieldaccess.FieldAssignmentTracker$FieldAccessGraph -> com.android.tools.r8.t.a.l.b$a:
+    java.util.Map fieldWrites -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap pendingFieldWrites -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():231:231 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):241:241 -> <init>
+    2:13:void <init>(com.android.tools.r8.graph.AppView):234:245 -> <init>
+    1:10:void lambda$new$2(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.FieldAccessInfo):247:256 -> a
+    11:11:java.util.List lambda$new$0(com.android.tools.r8.graph.DexEncodedMethod):255:255 -> a
+    12:12:void lambda$new$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):255:255 -> a
+    13:20:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer):262:269 -> a
+com.android.tools.r8.ir.analysis.fieldaccess.FieldAssignmentTracker$ObjectAllocationGraph -> com.android.tools.r8.t.a.l.b$b:
+    java.util.Map objectAllocations -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap pendingObjectAllocations -> b
+    1:1:void <init>(com.android.tools.r8.graph.AppView):286:286 -> <init>
+    2:12:void <init>(com.android.tools.r8.graph.AppView):279:289 -> <init>
+    1:4:void lambda$new$1(com.android.tools.r8.graph.DexProgramClass,java.util.Set):291:294 -> a
+    5:5:java.util.List lambda$new$0(com.android.tools.r8.graph.DexEncodedMethod):292:292 -> a
+    6:13:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer):300:307 -> a
+com.android.tools.r8.ir.analysis.fieldaccess.FieldBitAccessAnalysis -> com.android.tools.r8.t.a.l.c:
+    1:1:void <init>():16:16 -> <init>
+    1:9:void recordFieldAccess(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):20:28 -> a
+    10:32:int computeBitsRead(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField):34:56 -> a
+    10:32:void recordFieldAccess(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):29 -> a
+    33:33:void recordFieldAccess(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):29:29 -> a
+    34:50:boolean isOnlyUsedToUpdateFieldValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexEncodedField):66:82 -> a
+com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet -> com.android.tools.r8.t.a.m.a:
+    1:1:void <clinit>():25:25 -> <clinit>
+    1:1:void <init>():25:25 -> <init>
+    boolean contains(com.android.tools.r8.graph.DexEncodedField) -> a
+    boolean isConcreteFieldSet() -> a
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet asConcreteFieldSet() -> b
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet asKnownFieldSet() -> c
+    boolean isBottom() -> d
+    boolean isKnownFieldSet() -> e
+    boolean isTop() -> f
+com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet -> com.android.tools.r8.t.a.m.b:
+    java.util.Set fields -> a
+    1:2:void <init>():18:19 -> <init>
+    3:4:void <init>(com.android.tools.r8.graph.DexEncodedField):22:23 -> <init>
+    boolean isConcreteFieldSet() -> a
+    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet addAll(com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet):31:31 -> a
+    2:2:boolean contains(com.android.tools.r8.graph.DexEncodedField):64:64 -> a
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet asConcreteFieldSet() -> b
+    1:1:void add(com.android.tools.r8.graph.DexEncodedField):27:27 -> b
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet asKnownFieldSet() -> c
+    boolean isKnownFieldSet() -> e
+    1:5:boolean equals(java.lang.Object):82:86 -> equals
+    1:4:java.util.Set getFields():36:39 -> g
+    1:1:int hashCode():74:74 -> hashCode
+    1:1:int size():69:69 -> size
+com.android.tools.r8.ir.analysis.fieldvalueanalysis.EmptyFieldSet -> com.android.tools.r8.t.a.m.c:
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.EmptyFieldSet INSTANCE -> a
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:1:void <init>():13:13 -> <init>
+    boolean contains(com.android.tools.r8.graph.DexEncodedField) -> a
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet asKnownFieldSet() -> c
+    boolean isBottom() -> d
+    boolean isKnownFieldSet() -> e
+    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.EmptyFieldSet getInstance():16:16 -> g
+com.android.tools.r8.ir.analysis.fieldvalueanalysis.FieldValueAnalysis -> com.android.tools.r8.t.a.m.d:
+    com.android.tools.r8.ir.optimize.info.OptimizationFeedback feedback -> d
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.DexProgramClass clazz -> b
+    com.android.tools.r8.graph.DexEncodedMethod method -> e
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.ir.code.IRCode code -> c
+    java.util.Map fieldsMaybeReadBeforeBlockInclusiveCache -> f
+    1:1:void <clinit>():46:46 -> <clinit>
+    1:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):61:68 -> <init>
+    1:19:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):80:98 -> a
+    20:20:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    20:20:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):100 -> a
+    21:41:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):100:120 -> a
+    42:43:boolean com.android.tools.r8.ir.code.DominatorTree.dominatesAllOf(com.android.tools.r8.ir.code.BasicBlock,java.lang.Iterable):118:119 -> a
+    42:43:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):120 -> a
+    44:44:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):125:125 -> a
+    45:45:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):135:135 -> a
+    45:45:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):126 -> a
+    46:46:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):161:161 -> a
+    46:46:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):138 -> a
+    46:46:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):126 -> a
+    47:50:java.util.Map getOrCreateFieldsMaybeReadBeforeBlockInclusive():72:75 -> a
+    47:50:boolean fieldMaybeReadBeforeBlockInclusive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):171 -> a
+    47:50:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):162 -> a
+    47:50:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):138 -> a
+    47:50:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):126 -> a
+    51:51:boolean fieldMaybeReadBeforeBlockInclusive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):171:171 -> a
+    51:51:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):162 -> a
+    51:51:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):138 -> a
+    51:51:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):126 -> a
+    52:59:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):144:151 -> a
+    52:59:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):126 -> a
+    60:60:void computeFieldOptimizationInfo(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult):129:129 -> a
+    61:61:java.util.LinkedList lambda$computeFieldOptimizationInfo$0(com.android.tools.r8.graph.DexEncodedField):102:102 -> a
+    62:104:java.util.Map createFieldsMaybeReadBeforeBlockInclusive():179:221 -> a
+    105:112:boolean verifyFieldSetContainsAllFieldReadsInBlock(com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):265:272 -> a
+    105:112:java.util.Map createFieldsMaybeReadBeforeBlockInclusive():221 -> a
+    113:147:java.util.Map createFieldsMaybeReadBeforeBlockInclusive():223:257 -> a
+    148:148:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet lambda$createFieldsMaybeReadBeforeBlockInclusive$1(com.android.tools.r8.ir.code.BasicBlock):186:186 -> a
+    149:149:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):280:280 -> a
+    150:151:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):308:309 -> a
+    150:151:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):281 -> a
+    152:189:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):331:368 -> a
+    152:189:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):310 -> a
+    152:189:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):281 -> a
+    190:192:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):359:361 -> a
+    190:192:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):310 -> a
+    190:192:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):281 -> a
+    193:194:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):351:352 -> a
+    193:194:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):310 -> a
+    193:194:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):281 -> a
+    195:200:boolean isEnumValuesArray(com.android.tools.r8.ir.code.Value):389:394 -> a
+    195:200:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):352 -> a
+    195:200:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):310 -> a
+    195:200:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):281 -> a
+    201:219:boolean isEnumValuesArray(com.android.tools.r8.ir.code.Value):392:410 -> a
+    201:219:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):352 -> a
+    201:219:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):310 -> a
+    201:219:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):281 -> a
+    220:220:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):385:385 -> a
+    220:220:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):310 -> a
+    220:220:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):281 -> a
+    221:224:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):315:318 -> a
+    221:224:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):281 -> a
+    225:225:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):282:282 -> a
+    226:226:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    226:226:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):283 -> a
+    227:229:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):284:284 -> a
+    233:248:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):288:303 -> a
+com.android.tools.r8.ir.analysis.fieldvalueanalysis.InstanceFieldValueAnalysis -> com.android.tools.r8.t.a.m.e:
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection$Builder builder -> h
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoFactory factory -> i
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):37:37 -> <init>
+    2:13:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):27:38 -> <init>
+    1:4:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):51:54 -> a
+    5:5:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    5:5:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):54 -> a
+    6:20:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):54:68 -> a
+    21:21:boolean lambda$run$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):59:59 -> a
+    22:30:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):73:81 -> a
+    31:31:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):80:80 -> a
+com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet -> com.android.tools.r8.t.a.m.f:
+    boolean contains(com.android.tools.r8.graph.DexEncodedField) -> a
+    boolean isConcreteFieldSet() -> a
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet asConcreteFieldSet() -> b
+com.android.tools.r8.ir.analysis.fieldvalueanalysis.StaticFieldValueAnalysis -> com.android.tools.r8.t.a.m.g:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):23:23 -> <init>
+    1:4:void run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):32:35 -> a
+    5:5:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    5:5:void run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):35 -> a
+    6:8:void run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):35:37 -> a
+com.android.tools.r8.ir.analysis.fieldvalueanalysis.UnknownFieldSet -> com.android.tools.r8.t.a.m.h:
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.UnknownFieldSet INSTANCE -> a
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:1:void <init>():13:13 -> <init>
+    boolean contains(com.android.tools.r8.graph.DexEncodedField) -> a
+    boolean isTop() -> f
+    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.UnknownFieldSet getInstance():16:16 -> g
+com.android.tools.r8.ir.analysis.modeling.LibraryMethodReadSetModeling -> com.android.tools.r8.t.a.n.a:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:23:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet getModeledReadSetOrUnknown(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexItemFactory):21:43 -> a
+com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker -> com.android.tools.r8.t.a.o.c:
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set classesWithRemovedExtensionFields -> c
+    java.util.Set removedExtensionFields -> d
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():75:75 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.ProtoReferences):84:84 -> <init>
+    2:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.ProtoReferences):80:87 -> <init>
+    1:2:com.android.tools.r8.shaking.TreePrunerConfiguration run(com.android.tools.r8.shaking.Enqueuer$Mode):101:102 -> a
+    3:13:com.android.tools.r8.shaking.TreePrunerConfiguration createTreePrunerConfiguration(com.android.tools.r8.shaking.Enqueuer$Mode):112:122 -> a
+    3:13:com.android.tools.r8.shaking.TreePrunerConfiguration run(com.android.tools.r8.shaking.Enqueuer$Mode):103 -> a
+    14:17:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):131:134 -> a
+    18:29:void rewriteClassInitializer(com.android.tools.r8.ir.code.IRCode):139:150 -> a
+    30:30:boolean wasRemoved(com.android.tools.r8.graph.DexField):155:155 -> a
+    30:30:boolean lambda$run$0(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):102 -> a
+    31:31:void postOptimizeGeneratedExtensionRegistry(com.android.tools.r8.ir.conversion.IRConverter):159:159 -> a
+    32:33:void lambda$postOptimizeGeneratedExtensionRegistry$1(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):163:164 -> a
+    34:34:void lambda$postOptimizeGeneratedExtensionRegistry$1(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):161:161 -> a
+    35:39:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexField):182:186 -> a
+    40:40:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexField):185:185 -> a
+    41:50:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection,java.util.Set):195:204 -> a
+    51:51:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    51:51:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection,java.util.Set):204 -> a
+    52:63:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection,java.util.Set):205:216 -> a
+    64:66:void forEachDeadProtoExtensionField(java.util.function.Consumer):220:222 -> a
+    67:69:void lambda$forEachDeadProtoExtensionField$2(java.util.function.Consumer,com.android.tools.r8.graph.FieldAccessInfo):224:226 -> a
+    70:100:void logRemainingProtoExtensionFields():233:263 -> a
+    101:117:void logRemainingProtoExtensionFields():260:276 -> a
+    118:122:void lambda$logRemainingProtoExtensionFields$3(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):238:238 -> a
+    127:132:void lambda$logRemainingProtoExtensionFields$3(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):243:248 -> a
+    133:133:void lambda$logRemainingProtoExtensionFields$3(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):246:246 -> a
+    134:136:void lambda$logRemainingProtoExtensionFields$4(java.lang.StringBuilder,com.android.tools.r8.graph.DexEncodedMethod):273:275 -> a
+    137:137:java.util.function.Predicate getSkipPredicate(java.nio.file.Path):317:317 -> a
+    1:2:void recordDeadProtoExtensionField(com.android.tools.r8.graph.DexField):107:108 -> b
+    3:10:void forEachFindLiteExtensionByNumberMethod(java.util.function.Consumer):168:175 -> b
+    1:1:boolean wasRemoved(com.android.tools.r8.graph.DexField):155:155 -> c
+com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker$1 -> com.android.tools.r8.t.a.o.a:
+    com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker this$0 -> a
+    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):113:113 -> <init>
+    1:1:boolean isReachableOrReferencedField(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedField):118:118 -> isReachableOrReferencedField
+com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker$2 -> com.android.tools.r8.t.a.o.b:
+    java.util.function.Predicate val$skip -> a
+    java.util.Set val$remainingProtoExtensionFieldReads -> b
+    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker,com.android.tools.r8.graph.DexItemFactory,java.util.function.Predicate,java.util.Set):248:248 -> <init>
+    1:2:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):252:253 -> registerStaticFieldRead
+com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker -> com.android.tools.r8.t.a.o.e:
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():39:39 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.ProtoReferences):45:47 -> <init>
+    1:2:boolean deferDeadProtoBuilders(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BooleanSupplier):53:54 -> a
+    3:10:void addInliningHeuristicsForBuilderInlining(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,java.util.Set):66:73 -> a
+    11:20:void preprocessCallGraphBeforeCycleElimination(java.util.Map):77:86 -> a
+    21:30:void inlineCallsToDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner):98:107 -> a
+    31:31:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):141:141 -> a
+    32:1004:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():0:972 -> a
+    32:1004:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):142 -> a
+    1005:1015:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):144:154 -> a
+    1016:1016:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences.isDynamicMethodBridge(com.android.tools.r8.graph.DexMethod):118:118 -> a
+    1016:1016:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):155 -> a
+    1017:1019:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):158:160 -> a
+    1020:1319:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isNewMutableInstanceEnum(com.android.tools.r8.ir.code.Value):0:299 -> a
+    1020:1319:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):160 -> a
+    1320:1320:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isNewMutableInstanceEnum(com.android.tools.r8.graph.DexField):292:292 -> a
+    1320:1320:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isNewMutableInstanceEnum(com.android.tools.r8.ir.code.Value):299 -> a
+    1320:1320:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):160 -> a
+    1321:1325:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):164:168 -> a
+    1326:1326:com.android.tools.r8.ir.analysis.type.TypeLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement.asMaybeNull():87:87 -> a
+    1326:1326:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):169 -> a
+    1327:1334:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):169:176 -> a
+    1335:1335:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    1335:1335:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):176 -> a
+    1336:1336:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):176:176 -> a
+com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker$RootSetExtension -> com.android.tools.r8.t.a.o.d:
+    java.util.Set bypassClinitforInlining -> g
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set neverMerge -> d
+    java.util.Set alwaysInline -> e
+    java.util.Set neverInline -> f
+    com.android.tools.r8.utils.PredicateSet alwaysClassInline -> c
+    1:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,java.util.Set):198:205 -> <init>
+    1:1:void alwaysClassInlineGeneratedMessageLiteBuilders():224:224 -> a
+    2:3:boolean lambda$alwaysClassInlineGeneratedMessageLiteBuilders$0(com.android.tools.r8.graph.DexType):227:228 -> a
+    4:4:boolean lambda$bypassClinitforInliningNewBuilderMethods$1(com.android.tools.r8.graph.DexEncodedMethod):237:237 -> a
+    1:2:void bypassClinitforInliningNewBuilderMethods():232:233 -> b
+    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    3:3:void bypassClinitforInliningNewBuilderMethods():233 -> b
+    4:10:void bypassClinitforInliningNewBuilderMethods():233:239 -> b
+    1:1:void extend():209:209 -> c
+    2:2:void alwaysInlineCreateBuilderFromGeneratedMessageLite():250:250 -> c
+    2:2:void extend():212 -> c
+    3:3:void neverInlineIsInitializedFromGeneratedMessageLite():266:266 -> c
+    3:3:void extend():213 -> c
+    4:4:void extend():216:216 -> c
+    5:5:void alwaysInlineBuildPartialFromGeneratedMessageLiteExtendableBuilder():246:246 -> c
+    5:5:void extend():219 -> c
+    6:7:void neverMergeGeneratedMessageLiteBuilder():257:258 -> c
+    6:7:void extend():220 -> c
+com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker -> com.android.tools.r8.t.a.o.f:
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement objectArrayType -> f
+    com.android.tools.r8.ir.analysis.proto.RawMessageInfoEncoder encoder -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> d
+    com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder decoder -> b
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> e
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement stringType -> g
+    1:1:void <clinit>():38:38 -> <clinit>
+    1:11:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder,com.android.tools.r8.ir.analysis.proto.ProtoReferences):52:62 -> <init>
+    12:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder,com.android.tools.r8.ir.analysis.proto.ProtoReferences):61:63 -> <init>
+    1:1:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):67:67 -> a
+    2:2:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):99:99 -> a
+    2:2:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    3:3:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):99 -> a
+    3:3:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    4:16:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):100:112 -> a
+    4:16:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    17:17:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):139:139 -> a
+    17:17:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
+    17:17:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    17:17:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    18:18:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    18:18:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):141 -> a
+    18:18:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
+    18:18:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    18:18:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    19:19:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):141:141 -> a
+    19:19:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
+    19:19:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    19:19:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    20:20:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
+    20:20:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):139 -> a
+    20:20:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
+    20:20:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    20:20:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    21:21:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    21:21:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
+    21:21:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):139 -> a
+    21:21:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
+    21:21:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    21:21:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    22:24:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):151:153 -> a
+    22:24:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    22:24:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    22:24:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    25:25:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> a
+    25:25:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):153 -> a
+    25:25:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    25:25:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    25:25:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    26:33:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):154:161 -> a
+    26:33:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    26:33:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    26:33:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    34:34:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    34:34:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):161 -> a
+    34:34:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    34:34:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    34:34:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    35:36:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):162:163 -> a
+    35:36:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    35:36:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    35:36:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    37:37:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
+    37:37:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):162 -> a
+    37:37:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    37:37:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    37:37:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    38:40:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):166:168 -> a
+    38:40:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    38:40:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    38:40:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    41:41:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
+    41:41:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):169 -> a
+    41:41:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    41:41:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    41:41:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    42:44:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):170:172 -> a
+    42:44:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    42:44:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    42:44:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    45:45:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
+    45:45:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):170 -> a
+    45:45:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    45:45:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    45:45:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    46:46:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):177:177 -> a
+    46:46:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    46:46:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    46:46:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    47:49:void com.android.tools.r8.ir.analysis.proto.ProtoUtils.setObjectsValueForMessageInfoConstructionInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.ProtoReferences):31:33 -> a
+    47:49:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):177 -> a
+    47:49:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
+    47:49:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
+    47:49:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    50:53:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):119:122 -> a
+    50:53:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
+    54:54:void postOptimizeDynamicMethods(com.android.tools.r8.ir.conversion.IRConverter):73:73 -> a
+    55:56:void lambda$postOptimizeDynamicMethods$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):77:78 -> a
+    57:57:void lambda$postOptimizeDynamicMethods$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):75:75 -> a
+    58:61:void forEachDynamicMethod(java.util.function.Consumer):82:85 -> a
+    62:65:com.android.tools.r8.ir.code.InvokeMethod getNewMessageInfoInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.proto.ProtoReferences):182:185 -> a
+com.android.tools.r8.ir.analysis.proto.ProtoEnqueuerUseRegistry -> com.android.tools.r8.t.a.o.g:
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> a
+    com.android.tools.r8.shaking.EnqueuerUseRegistryFactory FACTORY -> b
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer):28:29 -> <init>
+    1:1:com.android.tools.r8.shaking.EnqueuerUseRegistryFactory getFactory():33:33 -> a
+    1:4:boolean registerConstClass(com.android.tools.r8.graph.DexType):45:48 -> registerConstClass
+    1:4:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):60:63 -> registerStaticFieldRead
+com.android.tools.r8.ir.analysis.proto.ProtoInliningReasonStrategy -> com.android.tools.r8.t.a.o.h:
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy parent -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):30:33 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):39:39 -> a
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    2:2:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):39 -> a
+    3:4:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):39:40 -> a
+    5:110:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences.isAbstractGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):0:105 -> a
+    5:110:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):40 -> a
+    111:119:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):41:49 -> a
+    120:133:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):55:68 -> a
+    120:133:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
+    134:134:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isMethodToInvokeWithSimpleBody(com.android.tools.r8.graph.DexField):303:303 -> a
+    134:134:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):69 -> a
+    134:134:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
+    135:138:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):70:73 -> a
+    135:138:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
+    139:139:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isMethodToInvokeWithNonSimpleBody(com.android.tools.r8.graph.DexField):311:311 -> a
+    139:139:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):74 -> a
+    139:139:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
+    140:143:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):73:76 -> a
+    140:143:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
+com.android.tools.r8.ir.analysis.proto.ProtoReferences -> com.android.tools.r8.t.a.o.i:
+    com.android.tools.r8.graph.DexType wireFormatFieldType -> l
+    com.android.tools.r8.graph.DexType methodToInvokeType -> k
+    com.android.tools.r8.graph.DexType messageLiteType -> j
+    com.android.tools.r8.graph.DexString dynamicMethodName -> r
+    com.android.tools.r8.graph.DexType rawMessageInfoType -> i
+    com.android.tools.r8.graph.DexString findLiteExtensionByNumberName -> s
+    com.android.tools.r8.graph.DexString newBuilderMethodName -> t
+    com.android.tools.r8.graph.DexProto dynamicMethodProto -> u
+    com.android.tools.r8.graph.DexProto findLiteExtensionByNumberProto -> v
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteExtendableBuilderMethods generatedMessageLiteExtendableBuilderMethods -> p
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers methodToInvokeMembers -> q
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedExtensionMethods generatedExtensionMethods -> m
+    com.android.tools.r8.graph.DexMethod rawMessageInfoConstructor -> x
+    com.android.tools.r8.graph.DexType extensionRegistryLiteType -> d
+    com.android.tools.r8.graph.DexMethod newMessageInfoMethod -> w
+    com.android.tools.r8.graph.DexType extensionDescriptorType -> c
+    com.android.tools.r8.graph.DexType extendableMessageType -> b
+    com.android.tools.r8.graph.DexType enumLiteMapType -> a
+    com.android.tools.r8.graph.DexType generatedMessageLiteExtendableBuilderType -> h
+    com.android.tools.r8.graph.DexType generatedMessageLiteBuilderType -> g
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteBuilderMethods generatedMessageLiteBuilderMethods -> o
+    com.android.tools.r8.graph.DexType generatedMessageLiteType -> f
+    com.android.tools.r8.graph.DexType generatedExtensionType -> e
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteMethods generatedMessageLiteMethods -> n
+    1:40:void <init>(com.android.tools.r8.graph.DexItemFactory):49:88 -> <init>
+    41:49:void <init>(com.android.tools.r8.graph.DexItemFactory):84:92 -> <init>
+    50:61:void <init>(com.android.tools.r8.graph.DexItemFactory):90:101 -> <init>
+    1:1:boolean isDynamicMethod(com.android.tools.r8.graph.DexMethod):110:110 -> a
+    2:2:boolean isDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod):114:114 -> a
+    3:3:boolean isGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):132:132 -> a
+    4:4:boolean isAbstractGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):105:105 -> a
+    4:4:boolean isGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):134 -> a
+    1:1:boolean isDynamicMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):122:122 -> b
+    2:2:boolean isDynamicMethodBridge(com.android.tools.r8.graph.DexMethod):118:118 -> b
+    2:2:boolean isDynamicMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):122 -> b
+    3:4:boolean isFindLiteExtensionByNumberMethod(com.android.tools.r8.graph.DexMethod):126:127 -> b
+    1:1:boolean isMessageInfoConstructionMethod(com.android.tools.r8.graph.DexMethod):138:138 -> c
+com.android.tools.r8.ir.analysis.proto.ProtoReferences$1 -> com.android.tools.r8.t.a.o.i$a:
+com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedExtensionMethods -> com.android.tools.r8.t.a.o.i$b:
+    com.android.tools.r8.graph.DexMethod constructorWithClass -> b
+    com.android.tools.r8.graph.DexMethod constructor -> a
+    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):141:141 -> <init>
+    2:6:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):146:150 -> <init>
+    7:19:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):148:160 -> <init>
+    20:20:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):158:158 -> <init>
+com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteBuilderMethods -> com.android.tools.r8.t.a.o.i$c:
+    com.android.tools.r8.graph.DexMethod constructorMethod -> a
+    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):228:228 -> <init>
+    2:6:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):233:237 -> <init>
+    7:14:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):235:242 -> <init>
+    15:15:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):240:240 -> <init>
+com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteExtendableBuilderMethods -> com.android.tools.r8.t.a.o.i$d:
+    com.android.tools.r8.graph.DexMethod buildPartialMethod -> a
+    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):247:247 -> <init>
+    2:6:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):251:255 -> <init>
+    7:7:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):253:253 -> <init>
+com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteMethods -> com.android.tools.r8.t.a.o.i$e:
+    com.android.tools.r8.graph.DexMethod newSingularGeneratedExtension -> e
+    com.android.tools.r8.graph.DexMethod newRepeatedGeneratedExtension -> d
+    com.android.tools.r8.graph.DexMethod isInitializedMethod -> c
+    com.android.tools.r8.graph.DexMethod dynamicMethodBridgeMethod -> b
+    com.android.tools.r8.graph.DexMethod createBuilderMethod -> a
+    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):175:175 -> <init>
+    2:6:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):183:187 -> <init>
+    7:14:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):185:192 -> <init>
+    15:22:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):190:197 -> <init>
+    23:30:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):195:202 -> <init>
+    31:46:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):200:215 -> <init>
+    47:47:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):213:213 -> <init>
+com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers -> com.android.tools.r8.t.a.o.i$f:
+    com.android.tools.r8.graph.DexField newMutableInstanceField -> f
+    com.android.tools.r8.graph.DexField newBuilderField -> e
+    com.android.tools.r8.graph.DexField setMemoizedIsInitializedField -> g
+    com.android.tools.r8.graph.DexField getDefaultInstanceField -> b
+    com.android.tools.r8.graph.DexField buildMessageInfoField -> a
+    com.android.tools.r8.graph.DexField getParserField -> d
+    com.android.tools.r8.graph.DexField getMemoizedIsInitializedField -> c
+    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):260:260 -> <init>
+    2:19:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):270:287 -> <init>
+com.android.tools.r8.ir.analysis.proto.ProtoShrinker -> com.android.tools.r8.t.a.o.j:
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory factory -> b
+    com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker generatedMessageLiteBuilderShrinker -> e
+    com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder decoder -> a
+    com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker generatedExtensionRegistryShrinker -> c
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> f
+    com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker generatedMessageLiteShrinker -> d
+    1:18:void <init>(com.android.tools.r8.graph.AppView):20:37 -> <init>
+com.android.tools.r8.ir.analysis.proto.ProtoUtils -> com.android.tools.r8.t.a.o.k:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():11:11 -> <clinit>
+    boolean isProto2(int) -> a
+    1:3:com.android.tools.r8.ir.code.Value getInfoValueFromMessageInfoConstructionInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.ProtoReferences):17:19 -> a
+    1:3:com.android.tools.r8.ir.code.Value getObjectsValueFromMessageInfoConstructionInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.ProtoReferences):24:26 -> b
+com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder -> com.android.tools.r8.t.a.o.m:
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory factory -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():69:69 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences):74:76 -> <init>
+    boolean lambda$createObjectIterator$0(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
+    1:4:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.InvokeMethod):81:84 -> a
+    5:43:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):90:128 -> a
+    44:51:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):127:134 -> a
+    52:58:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):133:139 -> a
+    59:59:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):138:138 -> a
+    60:60:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):136:136 -> a
+    61:76:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):130:145 -> a
+    77:82:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):144:149 -> a
+    83:120:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):147:184 -> a
+    121:127:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):181:187 -> a
+    128:136:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):194:202 -> a
+    137:138:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.DexClass.lookupUniqueInstanceFieldWithName(com.android.tools.r8.graph.DexString):539:540 -> a
+    137:138:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):202 -> a
+    139:150:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):204:215 -> a
+    151:151:boolean com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo.isForFieldName():0:0 -> a
+    151:151:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):215 -> a
+    152:171:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):216:235 -> a
+    172:172:int invalidInfoFailure():239:239 -> a
+    173:174:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):248:249 -> a
+    175:175:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.graph.DexString):257:257 -> a
+    175:175:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):249 -> a
+    176:176:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):251:251 -> a
+    1:1:com.android.tools.r8.ir.code.Value invalidObjectsFailure():243:243 -> b
+    2:21:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):303:322 -> b
+    22:22:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):315:315 -> b
+    23:23:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):304:304 -> b
+com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$1 -> com.android.tools.r8.t.a.o.l:
+    com.android.tools.r8.graph.DexString val$info -> b
+    com.android.tools.r8.utils.ThrowingCharIterator charIterator -> a
+    1:3:void <init>(com.android.tools.r8.graph.DexString):257:259 -> <init>
+    1:1:boolean hasNext():263:263 -> a
+    1:1:boolean hasNext():263:263 -> b
+    1:1:int nextInt():268 -> b
+    2:7:int nextInt():276:281 -> b
+    8:8:boolean hasNext():263:263 -> b
+    8:8:int nextInt():288 -> b
+    9:9:int nextInt():289:289 -> b
+    10:10:int nextInt():278:278 -> b
+    11:11:int nextInt():269:269 -> b
+com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$2 -> com.android.tools.r8.t.a.o.m$a:
+    com.android.tools.r8.ir.code.Value val$objectsValue -> c
+    com.android.tools.r8.ir.code.InstructionIterator val$instructionIterator -> b
+    int expectedNextIndex -> a
+    1:3:void <init>(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.Value):322:324 -> <init>
+    1:2:boolean hasNext():328:329 -> a
+    3:4:boolean isArrayPutOfInterest(com.android.tools.r8.ir.code.Instruction):361:362 -> a
+    3:4:boolean hasNext():330 -> a
+    5:8:boolean hasNext():333:336 -> a
+    1:15:com.android.tools.r8.ir.code.Value next():343:357 -> b
+    1:15:java.lang.Object next():322 -> b
+    16:16:com.android.tools.r8.ir.code.Value next():353:353 -> b
+    16:16:java.lang.Object next():322 -> b
+    17:17:com.android.tools.r8.ir.code.Value next():344:344 -> b
+    17:17:java.lang.Object next():322 -> b
+com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$InvalidRawMessageInfoException -> com.android.tools.r8.t.a.o.m$b:
+    1:1:void <init>():367:367 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$1):367:367 -> <init>
+com.android.tools.r8.ir.analysis.proto.RawMessageInfoEncoder -> com.android.tools.r8.t.a.o.n:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory):24:25 -> <init>
+    1:1:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):29:29 -> a
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> a
+    2:2:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):29 -> a
+    3:45:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):30:72 -> a
+    46:54:int countBytes(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):120:128 -> a
+    46:54:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):81 -> a
+    46:54:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):77 -> a
+    55:70:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):81:96 -> a
+    55:70:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):77 -> a
+    1:12:java.util.List encodeObjects(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):100:111 -> b
+com.android.tools.r8.ir.analysis.proto.schema.DeadProtoFieldObject -> com.android.tools.r8.t.a.o.o.a:
+    com.android.tools.r8.graph.DexString name -> b
+    com.android.tools.r8.graph.DexType holder -> a
+    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):20:22 -> <init>
+    1:1:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):27:27 -> a
+    boolean isDeadProtoFieldObject() -> e
+    1:1:java.lang.String toString():37:37 -> toString
+com.android.tools.r8.ir.analysis.proto.schema.LiveProtoFieldObject -> com.android.tools.r8.t.a.o.o.b:
+    com.android.tools.r8.graph.DexField field -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexField):23:24 -> <init>
+    com.android.tools.r8.ir.analysis.proto.schema.LiveProtoFieldObject asLiveProtoFieldObject() -> a
+    1:1:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):35:35 -> a
+    2:2:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    2:2:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):34 -> a
+    3:8:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):36:41 -> a
+    boolean isLiveProtoFieldObject() -> f
+    1:1:com.android.tools.r8.graph.DexField getField():28:28 -> j
+    1:1:java.lang.String toString():56:56 -> toString
+com.android.tools.r8.ir.analysis.proto.schema.ProtoEnqueuerExtension -> com.android.tools.r8.t.a.o.o.c:
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory factory -> c
+    java.util.Set dynamicMethodsWithTracedProtoObjects -> h
+    java.util.Set findLiteExtensionByNumberMethods -> i
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> d
+    boolean $assertionsDisabled -> k
+    com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder decoder -> b
+    java.util.Map extensionGraph -> j
+    java.util.Map liveProtos -> e
+    java.util.Map seenButNotLiveProtos -> f
+    java.util.Map reachesMapOrRequiredFieldFromMessageCache -> g
+    1:1:void <clinit>():53:53 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):84:84 -> <init>
+    2:30:void <init>(com.android.tools.r8.graph.AppView):61:89 -> <init>
+    boolean lambda$markMapOrRequiredFieldsAsReachable$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod) -> a
+    1:20:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):98:117 -> a
+    21:24:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):122:125 -> a
+    25:25:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    25:25:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):125 -> a
+    26:40:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):126:140 -> a
+    41:41:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):129:129 -> a
+    42:53:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):145:156 -> a
+    54:79:void tracePendingInstructionsInDynamicMethods(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):432:457 -> a
+    54:79:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):157 -> a
+    80:84:void tracePendingInstructionsInDynamicMethods(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):456:460 -> a
+    80:84:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):157 -> a
+    85:85:void tracePendingInstructionsInDynamicMethods(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):459:459 -> a
+    85:85:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):157 -> a
+    86:110:void populateExtensionGraph(com.android.tools.r8.shaking.Enqueuer):188:212 -> a
+    111:127:void lambda$populateExtensionGraph$0(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,java.util.Set):191:207 -> a
+    128:128:java.util.Set lambda$collectExtensionFields$1(com.android.tools.r8.graph.DexProgramClass):252:252 -> a
+    129:156:void populateExtensionGraphWithExtensionFieldDefinition(com.android.tools.r8.ir.code.StaticPut):271:298 -> a
+    157:157:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedExtensionMethods.isConstructor(com.android.tools.r8.graph.DexMethod):171:171 -> a
+    157:157:void populateExtensionGraphWithExtensionFieldDefinition(com.android.tools.r8.ir.code.StaticPut):298 -> a
+    158:175:void populateExtensionGraphWithExtensionFieldDefinition(com.android.tools.r8.ir.code.StaticPut):299:316 -> a
+    176:179:void populateExtensionGraphWithExtensionFieldDefinition(com.android.tools.r8.ir.code.StaticPut):315:318 -> a
+    180:180:void populateExtensionGraphWithExtensionFieldDefinition(com.android.tools.r8.ir.code.StaticPut):310:310 -> a
+    181:194:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):483:496 -> a
+    195:195:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    195:195:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):496 -> a
+    196:231:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):497:532 -> a
+    232:232:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):531:531 -> a
+    233:233:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):498:498 -> a
+    234:252:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):542:560 -> a
+    253:257:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):571:575 -> a
+    258:258:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> a
+    258:258:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):577 -> a
+    259:285:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):576:602 -> a
+    286:294:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):611:619 -> a
+    295:295:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    295:295:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):619 -> a
+    296:309:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):620:633 -> a
+    310:310:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):621:621 -> a
+    1:5:java.util.Map collectExtensionFields():220:224 -> b
+    6:28:java.util.Map collectExtensionFields():223:245 -> b
+    29:29:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    29:29:java.util.Map collectExtensionFields():245 -> b
+    30:44:java.util.Map collectExtensionFields():245:259 -> b
+    45:45:java.util.Map collectExtensionFields():258:258 -> b
+    46:46:java.util.Map collectExtensionFields():257:257 -> b
+    47:47:java.util.Set lambda$populateExtensionGraphWithExtensionFieldDefinition$2(com.android.tools.r8.graph.DexType):317:317 -> b
+    48:54:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):330:336 -> b
+    55:55:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    55:55:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):336 -> b
+    56:81:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):336:361 -> b
+    82:116:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):360:394 -> b
+    117:118:int com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo.getHazzerBitFieldIndex(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):135:136 -> b
+    117:118:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):395 -> b
+    119:119:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):396:396 -> b
+    120:853:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():0:733 -> b
+    120:853:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):408 -> b
+    854:866:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):409:421 -> b
+    867:867:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):420:420 -> b
+    868:873:void registerWriteToOneOfObjectsWithLiveOneOfCaseObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):471:476 -> b
+    868:873:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):426 -> b
+com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo -> com.android.tools.r8.t.a.o.o.d:
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType type -> b
+    java.util.List objects -> d
+    boolean $assertionsDisabled -> e
+    java.util.OptionalInt auxData -> c
+    int number -> a
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:5:void <init>(int,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType,java.util.OptionalInt,java.util.List):34:38 -> <init>
+    1:1:int getAuxData():46:46 -> a
+    2:2:boolean hasAuxData():42:42 -> a
+    2:2:int getAuxData():46 -> a
+    3:4:int getAuxData():46:47 -> a
+    5:5:void setAuxData(int):51:51 -> a
+    6:6:boolean hasAuxData():42:42 -> a
+    6:6:void setAuxData(int):51 -> a
+    7:8:void setAuxData(int):51:52 -> a
+    9:10:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):76:77 -> a
+    11:11:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType.getActualFieldType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):22:22 -> a
+    11:11:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):77 -> a
+    12:27:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):78:93 -> a
+    28:30:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):86:88 -> a
+    31:31:boolean hasHazzerBitField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):120:120 -> a
+    32:39:com.android.tools.r8.graph.DexEncodedField getHazzerBitField(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):124:131 -> a
+    1:1:int getNumber():56:56 -> b
+    2:6:com.android.tools.r8.graph.DexEncodedField getOneOfCaseField(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):166:170 -> b
+    1:1:java.util.List getObjects():60:60 -> c
+    2:6:com.android.tools.r8.graph.DexEncodedField getValueStorage(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):181:185 -> c
+    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType getType():64:64 -> d
+    1:1:boolean hasAuxData():42:42 -> e
+    1:15:java.lang.String toString():190:204 -> toString
+com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject -> com.android.tools.r8.t.a.o.o.e:
+    1:1:void <init>():7:7 -> <init>
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject asProtoFieldObject() -> b
+    boolean isProtoFieldObject() -> g
+com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType -> com.android.tools.r8.t.a.o.o.f:
+    boolean $assertionsDisabled -> e
+    boolean isRequired -> b
+    boolean needsIsInitializedCheck -> c
+    int id -> a
+    boolean isMapFieldWithProto2EnumValue -> d
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:6:void <init>(int,boolean,boolean,boolean):37:42 -> <init>
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType asOneOf() -> a
+    1:11:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType fromFieldIdWithExtraBits(int):48:58 -> a
+    12:12:boolean hasAuxData(boolean):63:63 -> a
+    13:22:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):124:133 -> a
+    23:23:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):131:131 -> a
+    1:1:int id():67:67 -> b
+    1:1:boolean isGroup():71:71 -> c
+    1:1:boolean isGroupList():75:75 -> d
+    1:1:boolean isMap():79:79 -> e
+    1:1:boolean isMessage():87:87 -> f
+    1:1:boolean isMessageList():91:91 -> g
+    boolean isOneOf() -> h
+    1:1:boolean isRepeated():103:103 -> i
+    2:2:boolean isMap():79:79 -> i
+    2:2:boolean isRepeated():103 -> i
+    1:1:boolean isRequired():107:107 -> j
+    1:1:boolean isSingular():111:111 -> k
+    1:1:boolean isValid():115:115 -> l
+    1:1:boolean needsIsInitializedCheck():120:120 -> m
+    1:8:int serialize():140:147 -> n
+com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory -> com.android.tools.r8.t.a.o.o.g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap fieldTypes -> a
+    1:3:void <init>():10:12 -> <init>
+    1:4:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType createField(int):15:18 -> a
+com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo -> com.android.tools.r8.t.a.o.o.i:
+    com.android.tools.r8.graph.DexEncodedMethod dynamicMethod -> a
+    java.util.LinkedList hasBitsObjects -> d
+    java.util.LinkedList oneOfObjects -> e
+    int flags -> b
+    java.util.LinkedList fields -> c
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,int,java.util.LinkedList,java.util.LinkedList,java.util.LinkedList,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$1):19:19 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.DexEncodedMethod,int,java.util.LinkedList,java.util.LinkedList,java.util.LinkedList):186:191 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$Builder builder(com.android.tools.r8.graph.DexEncodedMethod):195:195 -> a
+    2:2:com.android.tools.r8.graph.DexEncodedMethod getDynamicMethod():203:203 -> a
+    1:1:java.util.List getFields():207:207 -> b
+    1:1:int getFlags():211:211 -> c
+    1:1:java.util.List getHasBitsObjects():215:215 -> d
+    1:1:java.util.List getOneOfObjects():219:219 -> e
+    1:1:com.android.tools.r8.graph.DexType getType():223:223 -> f
+    1:1:boolean hasFields():227:227 -> g
+    1:1:boolean isProto2():199:199 -> h
+    1:1:int numberOfFields():231:231 -> i
+    1:1:int numberOfHasBitsObjects():235:235 -> j
+    1:1:int numberOfOneOfObjects():239:239 -> k
+    1:9:java.lang.String toString():244:252 -> toString
+com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$1 -> com.android.tools.r8.t.a.o.o.h:
+com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$Builder -> com.android.tools.r8.t.a.o.o.i$a:
+    com.android.tools.r8.graph.DexEncodedMethod dynamicMethod -> a
+    java.util.LinkedList hasBitsObjects -> d
+    boolean $assertionsDisabled -> f
+    java.util.LinkedList oneOfObjects -> e
+    int flags -> b
+    java.util.LinkedList fields -> c
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$1):23:23 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod):33:34 -> <init>
+    1:1:void setFlags(int):38:38 -> a
+    2:5:void addField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):42:45 -> a
+    6:9:void addHasBitsObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject):49:52 -> a
+    10:13:void addOneOfObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject):56:59 -> a
+    14:16:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo build():63:65 -> a
+    17:17:boolean lambda$removeUnusedSharedData$1(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair):132:132 -> a
+    1:10:void removeDeadFields():69:78 -> b
+    11:14:boolean lambda$removeDeadFields$0(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):73:76 -> b
+    1:48:void removeUnusedSharedData():83:130 -> c
+    49:86:void removeUnusedSharedData():129:166 -> c
+    87:87:void removeUnusedSharedData():165:165 -> c
+    88:89:void removeUnusedSharedData():84:85 -> c
+com.android.tools.r8.ir.analysis.proto.schema.ProtoObject -> com.android.tools.r8.t.a.o.o.j:
+    1:1:void <init>():11:11 -> <init>
+    com.android.tools.r8.ir.analysis.proto.schema.LiveProtoFieldObject asLiveProtoFieldObject() -> a
+    com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject asProtoFieldObject() -> b
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromStaticGet asProtoObjectFromStaticGet() -> c
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoTypeObject asProtoTypeObject() -> d
+    boolean isDeadProtoFieldObject() -> e
+    boolean isLiveProtoFieldObject() -> f
+    boolean isProtoFieldObject() -> g
+    boolean isProtoObjectFromStaticGet() -> h
+    boolean isProtoTypeObject() -> i
+com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromInvokeStatic -> com.android.tools.r8.t.a.o.o.k:
+    com.android.tools.r8.graph.DexMethod method -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod):21:22 -> <init>
+    1:4:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):27:30 -> a
+    5:5:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):29:29 -> a
+    6:6:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    6:6:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):28 -> a
+    7:7:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):31:31 -> a
+com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromStaticGet -> com.android.tools.r8.t.a.o.o.l:
+    com.android.tools.r8.graph.DexField field -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexField):20:21 -> <init>
+    1:3:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):30:32 -> a
+    4:4:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    4:4:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):31 -> a
+    5:5:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):33:33 -> a
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromStaticGet asProtoObjectFromStaticGet() -> c
+    boolean isProtoObjectFromStaticGet() -> h
+    1:1:com.android.tools.r8.graph.DexField getField():25:25 -> j
+com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType -> com.android.tools.r8.t.a.o.o.m:
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>(int,boolean,boolean,boolean):18:18 -> <init>
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType asOneOf() -> a
+    boolean hasAuxData(boolean) -> a
+    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType getActualFieldType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):22:22 -> a
+    1:1:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):58 -> a
+    2:7:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):59:64 -> a
+    boolean isOneOf() -> h
+    boolean isRepeated() -> i
+    boolean isSingular() -> k
+    1:1:boolean isValid():52:52 -> l
+com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair -> com.android.tools.r8.t.a.o.o.n:
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject oneOfCaseObject -> b
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject oneOfObject -> a
+    1:3:void <init>(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject):15:17 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject getOneOfCaseObject():25:25 -> a
+    2:3:void forEach(java.util.function.Consumer):29:30 -> a
+    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject getOneOfObject():21:21 -> b
+    1:1:java.util.stream.Stream stream():34:34 -> c
+com.android.tools.r8.ir.analysis.proto.schema.ProtoTypeObject -> com.android.tools.r8.t.a.o.o.o:
+    com.android.tools.r8.graph.DexType type -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexType):16:17 -> <init>
+    1:1:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):26:26 -> a
+    2:2:com.android.tools.r8.ir.code.ConstClass com.android.tools.r8.ir.code.IRCode.createConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1089:1089 -> a
+    2:2:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):26 -> a
+    3:3:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    3:3:com.android.tools.r8.ir.code.ConstClass com.android.tools.r8.ir.code.IRCode.createConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1089 -> a
+    3:3:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):26 -> a
+    4:4:com.android.tools.r8.ir.code.ConstClass com.android.tools.r8.ir.code.IRCode.createConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1090:1090 -> a
+    4:4:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):26 -> a
+    com.android.tools.r8.ir.analysis.proto.schema.ProtoTypeObject asProtoTypeObject() -> d
+    boolean isProtoTypeObject() -> i
+    1:1:com.android.tools.r8.graph.DexType getType():21:21 -> j
+com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect -> com.android.tools.r8.t.a.p.a:
+    com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect SIDE_EFFECTS_THAT_CANNOT_BE_POSTPONED -> a
+    com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect SIDE_EFFECTS_THAT_CAN_BE_POSTPONED -> b
+    com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect NONE -> c
+    1:3:void <clinit>():23:25 -> <clinit>
+    1:1:void <init>(java.lang.String,int):22:22 -> <init>
+com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.a:
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement memberTypeLattice -> e
+    com.android.tools.r8.ir.analysis.type.NullabilityVariants variants -> f
+    boolean $assertionsDisabled -> g
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.NullabilityVariants):33:36 -> <init>
+    1:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayBaseTypeLattice():70:72 -> T
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayMemberTypeAsMemberType():62:62 -> U
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayMemberTypeAsValueType():66:66 -> V
+    1:4:int getNesting():53:56 -> W
+    com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement asArrayTypeLatticeElement() -> a
+    1:1:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement create(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.Nullability):24:24 -> a
+    2:2:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement lambda$create$0(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.NullabilityVariants):26:26 -> a
+    3:11:com.android.tools.r8.graph.DexType getArrayType(com.android.tools.r8.graph.DexItemFactory):40:48 -> a
+    12:13:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement createVariant(com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.NullabilityVariants):79:80 -> a
+    14:18:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):85:89 -> a
+    19:19:boolean isBasedOnMissingClass(com.android.tools.r8.graph.AppView):94:94 -> a
+    20:24:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):135:139 -> a
+    20:24:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):15 -> a
+    25:36:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement,com.android.tools.r8.graph.AppView):146:157 -> a
+    37:47:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):167:177 -> a
+    48:60:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):173:185 -> a
+    61:63:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectArrayType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):385:387 -> a
+    61:63:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):188 -> a
+    64:66:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectArrayType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):386:388 -> a
+    64:66:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):188 -> a
+    67:68:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):380:381 -> a
+    67:68:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):186 -> a
+    1:8:boolean equals(java.lang.Object):117:124 -> equals
+    1:1:int hashCode():129:129 -> hashCode
+    boolean isArrayType() -> r
+    1:1:java.lang.String toString():109:109 -> toString
+com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.b:
+    com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement INSTANCE -> d
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement getInstance():11:11 -> R
+    1:1:int hashCode():31:31 -> hashCode
+    boolean isBoolean() -> s
+com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.c:
+    com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement INSTANCE -> b
+    1:1:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():11:11 -> N
+    1:1:com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement getInstance():15:15 -> P
+    1:1:int hashCode():35:35 -> hashCode
+    boolean isBottom() -> t
+com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.d:
+    com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement INSTANCE -> d
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement getInstance():11:11 -> R
+    1:1:int hashCode():31:31 -> hashCode
+    boolean isByte() -> u
+com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.e:
+    com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement INSTANCE -> d
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement getInstance():11:11 -> R
+    1:1:int hashCode():31:31 -> hashCode
+    boolean isChar() -> v
+com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.f:
+    boolean $assertionsDisabled -> i
+    java.util.Set lazyInterfaces -> e
+    com.android.tools.r8.graph.AppView appView -> f
+    com.android.tools.r8.ir.analysis.type.NullabilityVariants variants -> g
+    com.android.tools.r8.graph.DexType type -> h
+    1:1:void <clinit>():26:26 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,java.util.Set,com.android.tools.r8.ir.analysis.type.NullabilityVariants,com.android.tools.r8.graph.AppView):59:65 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement asMeetWithNotNull():123:123 -> R
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asMeetWithNotNull():26 -> R
+    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement asMeetWithNotNull():123:123 -> T
+    1:1:com.android.tools.r8.graph.DexType getClassType():69:69 -> U
+    1:8:java.util.Set getInterfaces():73:80 -> V
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):26:26 -> a
+    2:2:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):26:26 -> a
+    3:4:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,java.util.Set):38:39 -> a
+    5:5:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement lambda$create$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,java.util.Set,com.android.tools.r8.ir.analysis.type.NullabilityVariants):42:42 -> a
+    6:6:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement lambda$create$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.NullabilityVariants):50:50 -> a
+    7:8:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement createVariant(com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.NullabilityVariants):85:86 -> a
+    9:11:boolean isBasedOnMissingClass(com.android.tools.r8.graph.AppView):106:108 -> a
+    12:12:boolean lambda$isBasedOnMissingClass$2(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):108:108 -> a
+    13:22:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):197:206 -> a
+    23:32:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):201:210 -> a
+    33:44:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):209:220 -> a
+    45:74:com.android.tools.r8.graph.DexType computeLeastUpperBoundOfClasses(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):245:274 -> a
+    75:78:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):284:287 -> a
+    79:134:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):0:55 -> a
+    79:134:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):287 -> a
+    135:139:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):287:291 -> a
+    140:195:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):0:55 -> a
+    140:195:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):291 -> a
+    196:223:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):291:318 -> a
+    224:224:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    224:224:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):320 -> a
+    225:264:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):322:361 -> a
+    265:265:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):285:285 -> a
+    266:266:java.util.Set lambda$computeLeastUpperBoundOfInterfaces$3(com.android.tools.r8.graph.DexType):307:307 -> a
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement asClassTypeLatticeElement() -> b
+    1:2:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView):47:48 -> b
+    3:7:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):96:100 -> b
+    8:22:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):150:164 -> b
+    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    23:23:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):167 -> b
+    24:26:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):168:170 -> b
+    27:27:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
+    27:27:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):170 -> b
+    28:48:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):170:190 -> b
+    49:49:java.util.Set lambda$computeLeastUpperBoundOfInterfaces$4(com.android.tools.r8.graph.DexType):323:323 -> b
+    1:19:boolean equals(java.lang.Object):371:389 -> equals
+    1:1:int hashCode():144:144 -> hashCode
+    1:11:java.lang.String toString():128:138 -> toString
+    boolean isClassType() -> w
+com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker -> com.android.tools.r8.ir.analysis.type.f$a:
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker RIGHT -> b
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker LEFT -> a
+    1:2:void <clinit>():224:225 -> <clinit>
+    1:1:void <init>(java.lang.String,int):223:223 -> <init>
+com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceWithMarker -> com.android.tools.r8.ir.analysis.type.f$b:
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker marker -> b
+    com.android.tools.r8.graph.DexType itf -> a
+    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker):232:234 -> <init>
+com.android.tools.r8.ir.analysis.type.DestructivePhiTypeUpdater -> com.android.tools.r8.ir.analysis.type.g:
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> c
+    java.util.function.Function mapping -> b
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):27:27 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Function):31:33 -> <init>
+    1:11:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):40:50 -> a
+    12:18:boolean verifyAllChangedPhisAreScheduled(com.android.tools.r8.ir.code.IRCode,java.util.Set):94:100 -> a
+    12:18:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):50 -> a
+    19:19:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):53:53 -> a
+    20:30:boolean verifyAllPhiOperandsAreBottom(java.util.Set):76:86 -> a
+    20:30:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):53 -> a
+    31:31:boolean verifyAllPhiOperandsAreBottom(java.util.Set):82:82 -> a
+    31:31:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):53 -> a
+    32:44:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):55:67 -> a
+    45:45:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    45:45:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):67 -> a
+    46:50:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):67:71 -> a
+    51:51:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    51:51:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):71 -> a
+    52:52:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):71:71 -> a
+com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.h:
+    com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement INSTANCE -> d
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement getInstance():11:11 -> R
+    1:1:int hashCode():26:26 -> hashCode
+    boolean isDouble() -> z
+com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.i:
+    com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement INSTANCE -> d
+    1:1:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    boolean isFloat() -> B
+    1:1:com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement getInstance():10:10 -> R
+    1:1:int hashCode():25:25 -> hashCode
+com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.j:
+    com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement INSTANCE -> d
+    1:1:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    boolean isInt() -> C
+    1:1:com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement getInstance():10:10 -> R
+    1:1:int hashCode():25:25 -> hashCode
+com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.k:
+    com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement INSTANCE -> d
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    boolean isLong() -> D
+    1:1:com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement getInstance():11:11 -> R
+    1:1:int hashCode():26:26 -> hashCode
+com.android.tools.r8.ir.analysis.type.Nullability -> com.android.tools.r8.ir.analysis.type.l:
+    com.android.tools.r8.ir.analysis.type.Nullability DEFINITELY_NULL -> a
+    com.android.tools.r8.ir.analysis.type.Nullability BOTTOM -> d
+    com.android.tools.r8.ir.analysis.type.Nullability MAYBE_NULL -> c
+    com.android.tools.r8.ir.analysis.type.Nullability DEFINITELY_NOT_NULL -> b
+    1:4:void <clinit>():25:28 -> <clinit>
+    1:1:void <init>():30:30 -> <init>
+    1:10:com.android.tools.r8.ir.analysis.type.Nullability join(com.android.tools.r8.ir.analysis.type.Nullability):49:58 -> a
+    11:11:com.android.tools.r8.ir.analysis.type.Nullability bottom():91:91 -> a
+    1:1:boolean lessThanOrEqual(com.android.tools.r8.ir.analysis.type.Nullability):75:75 -> b
+    2:2:com.android.tools.r8.ir.analysis.type.Nullability definitelyNotNull():83:83 -> b
+    1:10:com.android.tools.r8.ir.analysis.type.Nullability meet(com.android.tools.r8.ir.analysis.type.Nullability):62:71 -> c
+    11:11:com.android.tools.r8.ir.analysis.type.Nullability definitelyNull():79:79 -> c
+    1:1:boolean isDefinitelyNotNull():37:37 -> d
+    1:1:boolean isDefinitelyNull():33:33 -> e
+    1:1:boolean isMaybeNull():41:41 -> f
+    1:1:boolean isMaybeNull():41:41 -> g
+    1:1:boolean isNullable():45 -> g
+    2:2:boolean isNullable():45:45 -> g
+    1:1:com.android.tools.r8.ir.analysis.type.Nullability maybeNull():87:87 -> h
+    1:13:java.lang.String toString():96:108 -> toString
+com.android.tools.r8.ir.analysis.type.NullabilityVariants -> com.android.tools.r8.ir.analysis.type.m:
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement definitelyNotNullVariant -> c
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement definitelyNullVariant -> b
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement bottomVariant -> d
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement maybeNullVariant -> a
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:1:void <init>():10:10 -> <init>
+    1:3:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement create(com.android.tools.r8.ir.analysis.type.Nullability,java.util.function.Function):19:21 -> a
+    4:12:void set(com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement):26:34 -> a
+    13:21:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement get(com.android.tools.r8.ir.analysis.type.Nullability):39:47 -> a
+    22:35:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateElement(com.android.tools.r8.ir.analysis.type.Nullability,java.util.function.BiFunction):53:66 -> a
+com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.n:
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>():15:15 -> <init>
+    boolean isPrimitive() -> H
+    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():19:19 -> N
+    1:8:boolean hasDexType():66:73 -> P
+    1:25:com.android.tools.r8.graph.DexType toDexType(com.android.tools.r8.graph.DexItemFactory):38:62 -> a
+    26:39:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):115:128 -> a
+    40:40:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):126:126 -> a
+    41:41:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):124:124 -> a
+    42:42:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):122:122 -> a
+    43:43:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):120:120 -> a
+    com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement asPrimitiveTypeLatticeElement() -> c
+com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.o:
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL_INSTANCE -> c
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL_BOTTOM_INSTANCE -> d
+    com.android.tools.r8.ir.analysis.type.Nullability nullability -> b
+    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement.create():23:23 -> <clinit>
+    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement.access$200():11 -> <clinit>
+    1:1:void <clinit>():57 -> <clinit>
+    2:2:void <clinit>():57:57 -> <clinit>
+    3:3:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement.createBottom():27:27 -> <clinit>
+    3:3:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement.access$300():11 -> <clinit>
+    3:3:void <clinit>():59 -> <clinit>
+    4:4:void <clinit>():59:59 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.analysis.type.Nullability):63:64 -> <init>
+    boolean isReference() -> I
+    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():69:69 -> N
+    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement access$000():9:9 -> P
+    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement access$100():9:9 -> Q
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asMeetWithNotNull():79:79 -> R
+    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getNullTypeLatticeElement():73:73 -> S
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability) -> a
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement asReferenceTypeLatticeElement() -> d
+    1:1:boolean equals(java.lang.Object):102:102 -> equals
+    1:1:int hashCode():107:107 -> hashCode
+com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement -> com.android.tools.r8.ir.analysis.type.o$a:
+    1:1:void <init>(com.android.tools.r8.ir.analysis.type.Nullability):14:14 -> <init>
+    boolean isNullType() -> E
+    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):19:19 -> a
+    1:1:boolean equals(java.lang.Object):50:50 -> equals
+    1:1:int hashCode():42:42 -> hashCode
+    1:1:java.lang.String toString():37:37 -> toString
+com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.p:
+    com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement INSTANCE -> d
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    boolean isShort() -> J
+    1:1:com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement getInstance():11:11 -> R
+    1:1:int hashCode():31:31 -> hashCode
+com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.q:
+    com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement INSTANCE -> c
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>():13:13 -> <init>
+    boolean isSinglePrimitive() -> K
+    1:1:com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement getInstance():17:17 -> Q
+    1:1:int hashCode():37:37 -> hashCode
+com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.r:
+    com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement INSTANCE -> b
+    1:1:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>():6:6 -> <init>
+    boolean isTop() -> L
+    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():11:11 -> N
+    1:1:com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement getInstance():15:15 -> P
+    1:1:int hashCode():35:35 -> hashCode
+com.android.tools.r8.ir.analysis.type.TypeAnalysis -> com.android.tools.r8.ir.analysis.type.t:
+    java.util.Deque worklist -> d
+    com.android.tools.r8.graph.AppView appView -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode mode -> b
+    boolean mayHaveImpreciseTypes -> a
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,boolean):45:45 -> <init>
+    2:14:void <init>(com.android.tools.r8.graph.AppView,boolean):35:47 -> <init>
+    1:2:void analyze():51:52 -> a
+    3:8:void analyzeValue(com.android.tools.r8.ir.code.Value):116:121 -> a
+    3:8:void analyze():52 -> a
+    9:12:void widening(com.android.tools.r8.ir.code.IRCode):57:60 -> a
+    13:15:void narrowing(java.lang.Iterable):70:72 -> a
+    16:19:void analyzeValues(java.lang.Iterable,com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode):81:84 -> a
+    20:22:void enqueue(com.android.tools.r8.ir.code.Value):88:90 -> a
+    23:39:void analyzeBasicBlock(com.android.tools.r8.ir.code.BasicBlock):95:111 -> a
+    40:69:void updateTypeOfValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):125:154 -> a
+    70:82:com.android.tools.r8.graph.DexType getRefinedReceiverType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethodWithReceiver):160:172 -> a
+    1:1:boolean verifyValuesUpToDate(java.lang.Iterable):76:76 -> b
+    1:1:void widening(java.lang.Iterable):64:64 -> c
+com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode -> com.android.tools.r8.ir.analysis.type.s:
+    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode NO_CHANGE -> d
+    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode UNSET -> a
+    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode WIDENING -> b
+    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode NARROWING -> c
+    1:5:void <clinit>():26:30 -> <clinit>
+    1:1:void <init>(java.lang.String,int):25:25 -> <init>
+com.android.tools.r8.ir.analysis.type.TypeLatticeElement -> com.android.tools.r8.ir.analysis.type.u:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:1:void <init>():18:18 -> <init>
+    1:4:boolean isFineGrainedType():342:345 -> A
+    boolean isFloat() -> B
+    boolean isInt() -> C
+    boolean isLong() -> D
+    boolean isNullType() -> E
+    1:1:boolean isNullable():78:78 -> F
+    1:8:boolean isPreciseType():331:338 -> G
+    boolean isPrimitive() -> H
+    boolean isReference() -> I
+    boolean isShort() -> J
+    boolean isSinglePrimitive() -> K
+    boolean isTop() -> L
+    boolean isWidePrimitive() -> M
+    com.android.tools.r8.ir.analysis.type.Nullability nullability() -> N
+    1:1:int requiredRegisters():374:374 -> O
+    com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement asArrayTypeLatticeElement() -> a
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView) -> a
+    boolean isBasedOnMissingClass(com.android.tools.r8.graph.AppView) -> a
+    1:12:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):94:105 -> a
+    13:161:com.android.tools.r8.ir.analysis.type.TypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.join(com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement):0:148 -> a
+    13:161:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):105 -> a
+    162:178:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):106:122 -> a
+    179:180:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement objectClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):380:381 -> a
+    179:180:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):123 -> a
+    181:189:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):126:134 -> a
+    190:190:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):101:101 -> a
+    191:193:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(java.lang.Iterable,com.android.tools.r8.graph.AppView):139:141 -> a
+    194:202:boolean equalUpToNullability(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):219:227 -> a
+    203:204:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement classClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):393:394 -> a
+    205:205:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView):405:405 -> a
+    206:210:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):410:414 -> a
+    211:212:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):33:34 -> a
+    211:212:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):415 -> a
+    213:213:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):110:110 -> a
+    213:213:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
+    213:213:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):415 -> a
+    214:241:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):81:108 -> a
+    214:241:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
+    214:241:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):415 -> a
+    242:242:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):104:104 -> a
+    242:242:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
+    242:242:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):415 -> a
+    243:247:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):102:106 -> a
+    243:247:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
+    243:247:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):415 -> a
+    248:262:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):86:100 -> a
+    248:262:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
+    248:262:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):415 -> a
+    263:263:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):417:417 -> a
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement asClassTypeLatticeElement() -> b
+    1:1:boolean lessThanOrEqual(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):171:171 -> b
+    2:3:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement objectClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):380:381 -> b
+    com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement asPrimitiveTypeLatticeElement() -> c
+    1:22:boolean lessThanOrEqualUpToNullability(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):185:206 -> c
+    23:24:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement stringClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):399:400 -> c
+    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement asReferenceTypeLatticeElement() -> d
+    1:5:boolean strictlyLessThan(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):155:159 -> d
+    1:1:com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement getBoolean():29:29 -> e
+    1:1:com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement getBottom():21:21 -> f
+    1:1:com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement getByte():33:33 -> g
+    1:1:com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement getChar():41:41 -> h
+    1:1:com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement getDouble():61:61 -> i
+    1:1:com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement getFloat():49:49 -> j
+    1:1:com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement getInt():45:45 -> k
+    1:1:com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement getLong():57:57 -> l
+    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getNull():69:69 -> m
+    1:1:com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement getShort():37:37 -> n
+    1:1:com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement getSingle():53:53 -> o
+    1:1:com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement getTop():25:25 -> p
+    1:1:com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement getWide():65:65 -> q
+    boolean isArrayType() -> r
+    boolean isBoolean() -> s
+    boolean isBottom() -> t
+    boolean isByte() -> u
+    boolean isChar() -> v
+    boolean isClassType() -> w
+    1:1:boolean isDefinitelyNotNull():370:370 -> x
+    1:1:boolean isDefinitelyNull():366:366 -> y
+    boolean isDouble() -> z
+com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.v:
+    com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement INSTANCE -> c
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>():13:13 -> <init>
+    boolean isWidePrimitive() -> M
+    int requiredRegisters() -> O
+    1:1:com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement getInstance():17:17 -> Q
+    1:1:int hashCode():42:42 -> hashCode
+com.android.tools.r8.ir.analysis.value.AbstractValue -> com.android.tools.r8.t.a.q.a:
+    1:1:void <init>():7:7 -> <init>
+    com.android.tools.r8.ir.analysis.value.SingleFieldValue asSingleFieldValue() -> a
+    1:10:com.android.tools.r8.ir.analysis.value.AbstractValue join(com.android.tools.r8.ir.analysis.value.AbstractValue):76:85 -> a
+    com.android.tools.r8.ir.analysis.value.SingleNumberValue asSingleNumberValue() -> b
+    com.android.tools.r8.ir.analysis.value.SingleStringValue asSingleStringValue() -> c
+    com.android.tools.r8.ir.analysis.value.SingleValue asSingleValue() -> d
+    boolean isBottom() -> e
+    boolean isNonTrivial() -> f
+    boolean isSingleConstClassValue() -> g
+    boolean isSingleEnumValue() -> h
+    boolean isSingleFieldValue() -> i
+    boolean isSingleNumberValue() -> j
+    boolean isSingleStringValue() -> k
+    boolean isSingleValue() -> l
+    boolean isUnknown() -> m
+com.android.tools.r8.ir.analysis.value.AbstractValueFactory -> com.android.tools.r8.t.a.q.b:
+    java.util.concurrent.ConcurrentHashMap singleStringValues -> e
+    java.util.concurrent.ConcurrentHashMap singleNumberValues -> d
+    java.util.concurrent.ConcurrentHashMap singleFieldValues -> c
+    java.util.concurrent.ConcurrentHashMap singleEnumValues -> b
+    java.util.concurrent.ConcurrentHashMap singleConstClassValues -> a
+    1:9:void <init>():12:20 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.value.SingleConstClassValue createSingleConstClassValue(com.android.tools.r8.graph.DexType):24:24 -> a
+    2:2:com.android.tools.r8.ir.analysis.value.SingleEnumValue createSingleEnumValue(com.android.tools.r8.graph.DexField):28:28 -> a
+    3:3:com.android.tools.r8.ir.analysis.value.SingleNumberValue createSingleNumberValue(long):36:36 -> a
+    4:4:com.android.tools.r8.ir.analysis.value.SingleStringValue createSingleStringValue(com.android.tools.r8.graph.DexString):40:40 -> a
+    1:1:com.android.tools.r8.ir.analysis.value.SingleFieldValue createSingleFieldValue(com.android.tools.r8.graph.DexField):32:32 -> b
+com.android.tools.r8.ir.analysis.value.BottomValue -> com.android.tools.r8.t.a.q.c:
+    com.android.tools.r8.ir.analysis.value.BottomValue INSTANCE -> a
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>():11:11 -> <init>
+    boolean isBottom() -> e
+    boolean isNonTrivial() -> f
+    1:1:int hashCode():34:34 -> hashCode
+    1:1:com.android.tools.r8.ir.analysis.value.BottomValue getInstance():14:14 -> n
+com.android.tools.r8.ir.analysis.value.SingleConstClassValue -> com.android.tools.r8.t.a.q.d:
+    com.android.tools.r8.graph.DexType type -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexType):28:29 -> <init>
+    1:7:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):64:70 -> a
+    8:11:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):68:71 -> a
+    12:20:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):67:75 -> a
+    21:21:boolean com.android.tools.r8.ir.code.ConstClass.instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):139:139 -> a
+    21:21:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):75 -> a
+    22:22:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):75:75 -> a
+    23:25:boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):81:83 -> a
+    26:26:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    26:26:boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):83 -> a
+    27:30:boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):85:88 -> a
+    boolean isSingleConstClassValue() -> g
+    1:1:int hashCode():53:53 -> hashCode
+    1:1:java.lang.String toString():58:58 -> toString
+com.android.tools.r8.ir.analysis.value.SingleEnumValue -> com.android.tools.r8.t.a.q.e:
+    1:1:void <init>(com.android.tools.r8.graph.DexField):13:13 -> <init>
+    boolean isSingleEnumValue() -> h
+    1:1:java.lang.String toString():28:28 -> toString
+com.android.tools.r8.ir.analysis.value.SingleFieldValue -> com.android.tools.r8.t.a.q.f:
+    com.android.tools.r8.graph.DexField field -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexField):27:28 -> <init>
+    com.android.tools.r8.ir.analysis.value.SingleFieldValue asSingleFieldValue() -> a
+    1:4:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):63:66 -> a
+    5:6:boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):71:72 -> a
+    1:1:int hashCode():52:52 -> hashCode
+    boolean isSingleFieldValue() -> i
+    1:1:com.android.tools.r8.graph.DexField getField():32:32 -> n
+    1:1:java.lang.String toString():57:57 -> toString
+com.android.tools.r8.ir.analysis.value.SingleNumberValue -> com.android.tools.r8.t.a.q.g:
+    long value -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:2:void <init>(long):23:24 -> <init>
+    boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> a
+    1:6:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):69:74 -> a
+    7:9:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):73:75 -> a
+    com.android.tools.r8.ir.analysis.value.SingleNumberValue asSingleNumberValue() -> b
+    1:1:int hashCode():58:58 -> hashCode
+    boolean isSingleNumberValue() -> j
+    1:2:boolean getBooleanValue():43:44 -> n
+    1:1:java.lang.String toString():63:63 -> toString
+com.android.tools.r8.ir.analysis.value.SingleStringValue -> com.android.tools.r8.t.a.q.h:
+    com.android.tools.r8.graph.DexString string -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexString):28:29 -> <init>
+    boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> a
+    1:7:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):66:72 -> a
+    8:11:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):70:73 -> a
+    12:22:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):69:79 -> a
+    com.android.tools.r8.ir.analysis.value.SingleStringValue asSingleStringValue() -> c
+    1:1:int hashCode():53:53 -> hashCode
+    boolean isSingleStringValue() -> k
+    1:1:com.android.tools.r8.graph.DexString getDexString():43:43 -> n
+    1:1:java.lang.String toString():58:58 -> toString
+com.android.tools.r8.ir.analysis.value.SingleValue -> com.android.tools.r8.t.a.q.i:
+    1:1:void <init>():14:14 -> <init>
+    com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier) -> a
+    boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> a
+    com.android.tools.r8.ir.analysis.value.SingleValue asSingleValue() -> d
+    boolean isNonTrivial() -> f
+    boolean isSingleValue() -> l
+com.android.tools.r8.ir.analysis.value.UnknownValue -> com.android.tools.r8.t.a.q.j:
+    com.android.tools.r8.ir.analysis.value.UnknownValue INSTANCE -> a
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>():11:11 -> <init>
+    boolean isNonTrivial() -> f
+    1:1:int hashCode():34:34 -> hashCode
+    boolean isUnknown() -> m
+    1:1:com.android.tools.r8.ir.analysis.value.UnknownValue getInstance():14:14 -> n
+com.android.tools.r8.ir.code.Add -> com.android.tools.r8.t.b.a:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):22:22 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():127:127 -> K2
+    boolean isAdd() -> R0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    double foldDouble(double,double) -> a
+    float foldFloat(float,float) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):57:57 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):52:52 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):77:77 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):92:92 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):42:42 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):72:72 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):62:62 -> d
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):87:87 -> d
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):67:67 -> e
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):82:82 -> e
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):47:47 -> f
+    com.android.tools.r8.ir.code.Add asAdd() -> h
+com.android.tools.r8.ir.code.AliasedValueConfiguration -> com.android.tools.r8.t.b.b:
+    com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction) -> a
+    boolean isIntroducingAnAlias(com.android.tools.r8.ir.code.Instruction) -> b
+com.android.tools.r8.ir.code.AlwaysMaterializingDefinition -> com.android.tools.r8.t.b.c:
+    1:1:void <init>(com.android.tools.r8.ir.code.Value):18:18 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:41 -> a
+    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):40:40 -> a
+    5:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):46:46 -> a
+    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):66:66 -> a
+    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
+    1:1:int maxInValueRegister():56:56 -> z2
+com.android.tools.r8.ir.code.AlwaysMaterializingNop -> com.android.tools.r8.t.b.d:
+    1:1:void <init>():19:19 -> <init>
+    1:1:int maxOutValueRegister():59:59 -> A2
+    int opcode() -> B2
+    boolean hasInvariantOutType() -> K0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:39 -> a
+    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):44:44 -> a
+    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):65:65 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):49:49 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:int maxInValueRegister():54:54 -> z2
+com.android.tools.r8.ir.code.AlwaysMaterializingUser -> com.android.tools.r8.t.b.e:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value):18:18 -> <init>
+    1:1:int maxOutValueRegister():60:60 -> A2
+    int opcode() -> B2
+    boolean hasInvariantOutType() -> K0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:71:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forAlwaysMaterializingUser():0:70 -> a
+    1:71:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):66 -> a
+    72:72:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:39 -> a
+    73:73:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):44:44 -> a
+    74:74:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):71:71 -> a
+    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:2:int maxInValueRegister():54:55 -> z2
+com.android.tools.r8.ir.code.And -> com.android.tools.r8.t.b.f:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):19:19 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():94:94 -> K2
+    boolean isAnd() -> T0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):49:49 -> a
+    2:2:boolean outTypeKnownToBeBoolean(java.util.Set):99:99 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):59:59 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):74:74 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):79:79 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):64:64 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):69:69 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):54:54 -> d
+    com.android.tools.r8.ir.code.And asAnd() -> i
+com.android.tools.r8.ir.code.Argument -> com.android.tools.r8.t.b.g:
+    boolean knownToBeBoolean -> i
+    boolean $assertionsDisabled -> j
+    int index -> h
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.Value,int,boolean):28:30 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:int getIndex():34:34 -> F2
+    2:7:boolean verifyIndex():40:45 -> F2
+    2:7:int getIndex():34 -> F2
+    8:9:int getIndex():34:35 -> F2
+    boolean hasInvariantOutType() -> K0
+    boolean isArgument() -> U0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:75:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArgument():0:74 -> a
+    1:75:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):105 -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    76:76:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):84:84 -> a
+    77:77:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):115:115 -> a
+    78:78:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):125:125 -> a
+    79:79:boolean outTypeKnownToBeBoolean(java.util.Set):135:135 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):89:89 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    com.android.tools.r8.ir.code.Argument asArgument() -> j
+    1:1:int maxInValueRegister():73:73 -> z2
+com.android.tools.r8.ir.code.ArithmeticBinop -> com.android.tools.r8.t.b.h:
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):20:20 -> <init>
+    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode() -> K2
+    boolean isArithmeticBinop() -> V0
+    com.android.tools.r8.code.Instruction CreateDouble(int,int,int) -> a
+    1:25:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:89 -> a
+    26:26:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
+    27:27:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:83 -> a
+    28:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:80 -> a
+    29:69:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:117 -> a
+    70:70:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):114:114 -> a
+    71:71:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:111 -> a
+    72:72:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):108:108 -> a
+    73:88:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):105:120 -> a
+    89:115:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):135:161 -> a
+    116:116:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):168:168 -> a
+    com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int) -> b
+    com.android.tools.r8.code.Instruction CreateFloat(int,int,int) -> b
+    com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int) -> c
+    com.android.tools.r8.code.Instruction CreateInt(int,int,int) -> c
+    1:8:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):52:59 -> c
+    com.android.tools.r8.code.Instruction CreateInt2Addr(int,int) -> d
+    com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int) -> d
+    com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int) -> e
+    com.android.tools.r8.code.Instruction CreateLong2Addr(int,int) -> e
+    com.android.tools.r8.code.Instruction CreateLong(int,int,int) -> f
+    com.android.tools.r8.ir.code.ArithmeticBinop asArithmeticBinop() -> k
+com.android.tools.r8.ir.code.ArrayGet -> com.android.tools.r8.t.b.i:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.ir.code.MemberType type -> h
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):38:39 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():265:265 -> D0
+    boolean throwsOnNullInput() -> E2
+    1:1:com.android.tools.r8.ir.code.Value array():57:57 -> F2
+    1:1:com.android.tools.r8.ir.code.Value index():61:61 -> G2
+    boolean hasInvariantOutType() -> K0
+    boolean instructionTypeCanThrow() -> Q0
+    boolean isArrayGet() -> W0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator) -> a
+    1:79:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayGet():0:78 -> a
+    1:79:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):164 -> a
+    80:80:com.android.tools.r8.ir.code.Value dest():53:53 -> a
+    80:80:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78 -> a
+    81:82:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78:79 -> a
+    83:83:com.android.tools.r8.ir.code.Value index():61:61 -> a
+    83:83:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80 -> a
+    84:121:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:117 -> a
+    122:122:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):115:115 -> a
+    123:123:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:111 -> a
+    124:124:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):108:108 -> a
+    125:131:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):97:103 -> a
+    132:134:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):102:104 -> a
+    135:135:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):94:94 -> a
+    136:138:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):89:91 -> a
+    139:173:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):85:119 -> a
+    174:176:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):71:73 -> a
+    177:183:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):175:181 -> a
+    184:185:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):186:187 -> a
+    186:186:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):192:192 -> a
+    187:188:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):197:198 -> a
+    189:189:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> a
+    189:189:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):200 -> a
+    190:230:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):200:240 -> a
+    231:233:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):236:236 -> a
+    234:234:com.android.tools.r8.ir.code.Value dest():53:53 -> a
+    234:234:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):238 -> a
+    235:235:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):238:238 -> a
+    236:238:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):232:232 -> a
+    239:239:com.android.tools.r8.ir.code.Value dest():53:53 -> a
+    239:239:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):234 -> a
+    240:240:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):234:234 -> a
+    241:262:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):208:229 -> a
+    263:265:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):228:230 -> a
+    266:268:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):224:224 -> a
+    270:270:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):226:226 -> a
+    271:273:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):220:220 -> a
+    275:275:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):222:222 -> a
+    276:278:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):216:216 -> a
+    280:280:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):218:218 -> a
+    281:281:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> a
+    281:281:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):240 -> a
+    282:282:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):240:240 -> a
+    283:287:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):245:249 -> a
+    288:288:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    288:288:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):249 -> a
+    289:289:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    289:289:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    289:289:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):249 -> a
+    290:290:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):249:249 -> a
+    291:291:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):255:255 -> a
+    292:294:boolean outTypeKnownToBeBoolean(java.util.Set):270:272 -> a
+    295:295:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):277:277 -> a
+    296:296:com.android.tools.r8.ir.code.Value dest():53:53 -> a
+    296:296:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):277 -> a
+    297:297:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):277:277 -> a
+    298:298:void lambda$constrainType$0(com.android.tools.r8.ir.code.MemberType):277:277 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):132:132 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> e
+    com.android.tools.r8.ir.code.ArrayGet asArrayGet() -> l
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.ArrayLength -> com.android.tools.r8.t.b.j:
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():154:154 -> D0
+    boolean throwsOnNullInput() -> E2
+    1:1:com.android.tools.r8.ir.code.Value array():42:42 -> F2
+    boolean hasInvariantOutType() -> K0
+    boolean instructionTypeCanThrow() -> Q0
+    boolean isArrayLength() -> X0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:83:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayLength():0:82 -> a
+    1:83:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):118 -> a
+    84:84:com.android.tools.r8.ir.code.Value dest():38:38 -> a
+    84:84:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57 -> a
+    85:87:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:59 -> a
+    88:88:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):93:93 -> a
+    89:89:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88:88 -> a
+    89:89:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):93 -> a
+    90:97:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):98:105 -> a
+    98:99:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):123:124 -> a
+    100:100:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):129:129 -> a
+    101:101:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):134:134 -> a
+    102:102:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):144:144 -> a
+    1:5:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):79:83 -> b
+    6:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):112:112 -> b
+    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88:88 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    com.android.tools.r8.ir.code.ArrayLength asArrayLength() -> m
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.ArrayPut -> com.android.tools.r8.t.b.k:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.ir.code.MemberType type -> h
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):40:44 -> <init>
+    1:1:int maxOutValueRegister():125:125 -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():266:266 -> D0
+    boolean throwsOnNullInput() -> E2
+    1:1:com.android.tools.r8.ir.code.Value array():58:58 -> F2
+    1:1:com.android.tools.r8.ir.code.Value index():62:62 -> G2
+    1:1:com.android.tools.r8.ir.code.Value value():66:66 -> H2
+    boolean hasInvariantOutType() -> K0
+    1:5:boolean instructionInstanceCanThrow():136:140 -> O0
+    boolean instructionTypeCanThrow() -> Q0
+    boolean isArrayPut() -> Y0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator) -> a
+    1:87:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayPut():0:86 -> a
+    1:87:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):236 -> a
+    88:125:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:113 -> a
+    126:126:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:111 -> a
+    127:127:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):107:107 -> a
+    128:128:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):104:104 -> a
+    129:135:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):93:99 -> a
+    136:138:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):98:100 -> a
+    139:139:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):90:90 -> a
+    140:140:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):87:87 -> a
+    141:173:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:115 -> a
+    174:174:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):207:207 -> a
+    175:175:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):241:241 -> a
+    176:176:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):251:251 -> a
+    177:177:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):256:256 -> a
+    178:178:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):271:271 -> a
+    179:179:void lambda$constrainType$0(com.android.tools.r8.ir.code.MemberType):271:271 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):220:220 -> b
+    1:48:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):150:197 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:com.android.tools.r8.ir.code.MemberType getMemberType():71:71 -> e
+    com.android.tools.r8.ir.code.ArrayPut asArrayPut() -> n
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Assume -> com.android.tools.r8.t.b.l:
+    com.android.tools.r8.ir.code.Instruction origin -> i
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.ir.code.Assume$Assumption assumption -> h
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.ir.code.Assume$Assumption,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):31:36 -> <init>
+    1:1:int maxOutValueRegister():219:219 -> A2
+    int opcode() -> B2
+    1:1:boolean isAssumeNone():124:124 -> C0
+    1:1:java.lang.String getInstructionName():100 -> C0
+    2:2:boolean isAssumeDynamicType():137:137 -> C0
+    2:2:java.lang.String getInstructionName():103 -> C0
+    3:6:java.lang.String getInstructionName():106:109 -> C0
+    1:1:com.android.tools.r8.ir.code.Assume$Assumption getAssumption():82:82 -> F2
+    1:1:com.android.tools.r8.ir.code.Instruction origin():90:90 -> G2
+    1:1:com.android.tools.r8.ir.code.Value src():86:86 -> H2
+    boolean hasInvariantOutType() -> K0
+    boolean isAssume() -> Z0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:294:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forAssume():0:293 -> a
+    1:294:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):239 -> a
+    295:295:com.android.tools.r8.ir.code.Assume createAssumeNonNullInstruction(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):46:46 -> a
+    296:296:com.android.tools.r8.ir.code.Assume createAssumeDynamicTypeInstruction(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):56:56 -> a
+    297:297:boolean outTypeKnownToBeBoolean(java.util.Set):95:95 -> a
+    298:316:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):167:185 -> a
+    317:323:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):183:189 -> a
+    324:324:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):204:204 -> a
+    325:325:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):209:209 -> a
+    326:333:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):244:251 -> a
+    334:334:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):245:245 -> a
+    335:335:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):256:256 -> a
+    336:336:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):266:266 -> a
+    1:1:boolean isAssumeDynamicType():137:137 -> a1
+    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):229:233 -> b
+    6:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):276:279 -> b
+    10:10:boolean isAssumeNone():124:124 -> b
+    10:10:boolean verifyTypes(com.android.tools.r8.graph.AppView):280 -> b
+    11:11:boolean isAssumeDynamicType():137:137 -> b
+    11:11:boolean verifyTypes(com.android.tools.r8.graph.AppView):280 -> b
+    12:15:boolean verifyTypes(com.android.tools.r8.graph.AppView):285:288 -> b
+    16:18:boolean verifyTypes(com.android.tools.r8.graph.AppView):287:289 -> b
+    19:21:boolean verifyTypes(com.android.tools.r8.graph.AppView):281:283 -> b
+    1:1:boolean isAssumeNonNull():150:150 -> b1
+    1:1:boolean isAssumeDynamicType():137:137 -> c
+    1:1:boolean verifyInstructionIsNeeded(com.android.tools.r8.graph.AppView):70 -> c
+    2:2:boolean verifyInstructionIsNeeded(com.android.tools.r8.graph.AppView):71:71 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isOutConstant() -> i2
+    com.android.tools.r8.ir.code.Assume asAssume() -> o
+    1:1:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142:142 -> p
+    2:2:boolean isAssumeDynamicType():137:137 -> p
+    2:2:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142 -> p
+    3:3:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142:142 -> p
+    1:1:com.android.tools.r8.ir.code.Assume asAssumeNonNull():155:155 -> q
+    1:1:java.lang.String toString():302:302 -> toString
+    2:2:boolean isAssumeNone():124:124 -> toString
+    2:2:java.lang.String toString():303 -> toString
+    3:3:java.lang.String toString():303:303 -> toString
+    4:4:boolean isAssumeDynamicType():137:137 -> toString
+    4:4:java.lang.String toString():306 -> toString
+    5:5:java.lang.String toString():307:307 -> toString
+    6:6:com.android.tools.r8.ir.code.Assume$Assumption getAssumption():82:82 -> toString
+    6:6:java.lang.String toString():307 -> toString
+    7:16:java.lang.String toString():307:316 -> toString
+    17:17:java.lang.String toString():304:304 -> toString
+    1:1:int maxInValueRegister():214:214 -> z2
+com.android.tools.r8.ir.code.Assume$1 -> com.android.tools.r8.t.b.l$a:
+com.android.tools.r8.ir.code.Assume$Assumption -> com.android.tools.r8.t.b.l$b:
+    1:1:void <init>():319:319 -> <init>
+    boolean isAssumeDynamicType() -> a
+    boolean verifyCorrectnessOfValues(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView) -> a
+    boolean isAssumeNonNull() -> b
+    boolean isAssumeNone() -> c
+com.android.tools.r8.ir.code.Assume$DynamicTypeAssumption -> com.android.tools.r8.t.b.l$c:
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement dynamicLowerBoundType -> b
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement dynamicUpperBoundType -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():359:359 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.ir.code.Assume$1):359:359 -> <init>
+    2:4:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):365:367 -> <init>
+    boolean isAssumeDynamicType() -> a
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement access$100(com.android.tools.r8.ir.code.Assume$DynamicTypeAssumption):359:359 -> a
+    2:2:boolean verifyCorrectnessOfValues(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):385:385 -> a
+    boolean isAssumeNonNull() -> b
+    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement access$200(com.android.tools.r8.ir.code.Assume$DynamicTypeAssumption):359:359 -> b
+    boolean isAssumeNone() -> c
+    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():375:375 -> d
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType():371:371 -> e
+    1:5:boolean equals(java.lang.Object):394:398 -> equals
+    1:1:int hashCode():404:404 -> hashCode
+com.android.tools.r8.ir.code.Assume$NonNullAssumption -> com.android.tools.r8.t.b.l$d:
+    com.android.tools.r8.ir.code.Assume$NonNullAssumption instance -> a
+    boolean $assertionsDisabled -> b
+    1:3:void <clinit>():408:410 -> <clinit>
+    1:1:void <init>():412:412 -> <init>
+    boolean isAssumeDynamicType() -> a
+    1:1:boolean verifyCorrectnessOfValues(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):425:425 -> a
+    boolean isAssumeNonNull() -> b
+    boolean isAssumeNone() -> c
+    1:1:com.android.tools.r8.ir.code.Assume$NonNullAssumption get():415:415 -> d
+com.android.tools.r8.ir.code.AssumeAndCheckCastAliasedValueConfiguration -> com.android.tools.r8.t.b.m:
+    com.android.tools.r8.ir.code.AssumeAndCheckCastAliasedValueConfiguration INSTANCE -> a
+    boolean $assertionsDisabled -> b
+    1:3:void <clinit>():9:11 -> <clinit>
+    1:1:void <init>():14:14 -> <init>
+    1:1:com.android.tools.r8.ir.code.AssumeAndCheckCastAliasedValueConfiguration getInstance():17:17 -> a
+    2:2:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):27:27 -> a
+    3:3:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    3:3:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):28 -> a
+    4:4:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> a
+    4:4:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):28 -> a
+    5:5:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):28:28 -> a
+    1:1:boolean isIntroducingAnAlias(com.android.tools.r8.ir.code.Instruction):22:22 -> b
+com.android.tools.r8.ir.code.BasicBlock -> com.android.tools.r8.t.b.n:
+    int color -> n
+    int estimatedPredecessorsCount -> l
+    boolean $assertionsDisabled -> p
+    int unfilledPredecessorsCount -> m
+    boolean filled -> i
+    boolean sealed -> j
+    java.util.Map currentDefinitions -> o
+    int number -> g
+    com.android.tools.r8.ir.code.CatchHandlers catchHandlers -> e
+    java.util.List successors -> b
+    java.util.Set onControlFlowEdgesMayChangeListeners -> d
+    java.util.List predecessors -> c
+    java.util.LinkedList instructions -> f
+    java.util.List phis -> h
+    java.util.Map incompletePhis -> k
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtEntry -> a
+    1:1:void <clinit>():54:54 -> <clinit>
+    1:124:void <init>():54:177 -> <init>
+    1:2:com.android.tools.r8.ir.code.BasicBlock getUniquePredecessor():229:230 -> A
+    1:2:boolean hasCatchHandlers():552:553 -> B
+    1:1:boolean hasIncompletePhis():1149:1149 -> C
+    1:1:boolean hasOneNormalExit():1535:1535 -> D
+    1:1:boolean hasPhis():527:527 -> E
+    1:1:boolean hasUniquePredecessor():225:225 -> F
+    1:2:void incrementUnfilledPredecessorCount():684:685 -> G
+    1:1:boolean isEmpty():621:621 -> H
+    1:1:boolean isFilled():544:544 -> I
+    1:1:boolean isReturnBlock():629:629 -> J
+    1:1:boolean isSealed():1137:1137 -> K
+    1:11:boolean isSimpleAlwaysThrowingPath():1512:1522 -> L
+    1:1:boolean isTrivialGoto():1467:1467 -> M
+    1:1:com.android.tools.r8.ir.code.InstructionIterator iterator():1611:1611 -> N
+    1:2:boolean notifyPredecessorsMayChangeListeners():243:244 -> O
+    1:2:boolean notifySuccessorsMayChangeListeners():197:198 -> P
+    1:1:int numberOfCatchHandlers():1560:1560 -> Q
+    1:2:int numberOfThrowingInstructions():1565:1566 -> R
+    1:2:void removeAllNormalSuccessors():290:291 -> S
+    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> S
+    3:3:void removeAllNormalSuccessors():291 -> S
+    4:12:void removeAllNormalSuccessors():292:300 -> S
+    1:1:void setFilledForTesting():548:548 -> T
+    1:1:int size():625:625 -> U
+    1:9:java.lang.String toDetailedString():1190:1198 -> V
+    10:10:boolean isFilled():544:544 -> V
+    10:10:java.lang.String toDetailedString():1198 -> V
+    11:12:java.lang.String toDetailedString():1198:1199 -> V
+    13:13:boolean isSealed():1137:1137 -> V
+    13:13:java.lang.String toDetailedString():1199 -> V
+    14:51:java.lang.String toDetailedString():1199:1236 -> V
+    52:52:int digits(int):1186:1186 -> V
+    52:52:java.lang.String toDetailedString():1236 -> V
+    53:88:java.lang.String toDetailedString():1236:1271 -> V
+    1:3:void unlinkCatchHandler():798:800 -> W
+    1:5:com.android.tools.r8.ir.code.BasicBlock unlinkSinglePredecessor():759:763 -> X
+    1:5:void unlinkSinglePredecessorSiblingsAllowed():769:773 -> Y
+    1:6:com.android.tools.r8.ir.code.BasicBlock unlinkSingleSuccessor():782:787 -> Z
+    1:1:boolean lambda$verifyTypes$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Instruction):85:85 -> a
+    2:2:boolean verifyTypes(com.android.tools.r8.graph.AppView):85:85 -> a
+    3:3:void setLocalsAtEntry(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):90:90 -> a
+    4:8:void addControlFlowEdgesMayChangeListener(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):180:184 -> a
+    9:27:void removePredecessor(com.android.tools.r8.ir.code.BasicBlock,java.util.Set):266:284 -> a
+    28:45:void swapSuccessorsByIndex(int,int):313:330 -> a
+    46:53:void replacePredecessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):445:452 -> a
+    54:57:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):456:459 -> a
+    58:59:boolean com.android.tools.r8.utils.ListUtils.verifyListIsOrdered(java.util.List):41:42 -> a
+    58:59:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):459 -> a
+    60:65:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):459:464 -> a
+    66:66:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> a
+    66:66:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):464 -> a
+    67:85:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):464:482 -> a
+    86:86:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> a
+    86:86:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):484 -> a
+    87:103:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):484:500 -> a
+    104:105:boolean hasDeadPhi(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):531:532 -> a
+    106:106:java.lang.Iterable instructionsAfter(com.android.tools.r8.ir.code.Instruction):583:583 -> a
+    107:108:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):660:661 -> a
+    109:111:void clearMark(int):673:675 -> a
+    112:112:void addPhi(com.android.tools.r8.ir.code.Phi):705:705 -> a
+    113:113:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):719:719 -> a
+    114:114:boolean isFilled():544:544 -> a
+    114:114:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):719 -> a
+    115:118:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):719:722 -> a
+    119:119:void close(com.android.tools.r8.ir.conversion.IRBuilder):726:726 -> a
+    120:120:boolean isFilled():544:544 -> a
+    120:120:void close(com.android.tools.r8.ir.conversion.IRBuilder):726 -> a
+    121:125:void close(com.android.tools.r8.ir.conversion.IRBuilder):726:730 -> a
+    126:126:boolean com.android.tools.r8.ir.code.JumpInstruction.isJumpInstruction():0:0 -> a
+    126:126:void close(com.android.tools.r8.ir.conversion.IRBuilder):730 -> a
+    127:127:void close(com.android.tools.r8.ir.conversion.IRBuilder):731:731 -> a
+    128:129:boolean verifyNoValuesAfterThrowingInstruction():1597:1598 -> a
+    128:129:void close(com.android.tools.r8.ir.conversion.IRBuilder):731 -> a
+    130:130:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1615:1615 -> a
+    130:130:boolean verifyNoValuesAfterThrowingInstruction():1598 -> a
+    130:130:void close(com.android.tools.r8.ir.conversion.IRBuilder):731 -> a
+    131:136:boolean verifyNoValuesAfterThrowingInstruction():1599:1604 -> a
+    131:136:void close(com.android.tools.r8.ir.conversion.IRBuilder):731 -> a
+    137:137:void close(com.android.tools.r8.ir.conversion.IRBuilder):732:732 -> a
+    138:149:void filledPredecessor(com.android.tools.r8.ir.conversion.IRBuilder):1096:1107 -> a
+    138:149:void close(com.android.tools.r8.ir.conversion.IRBuilder):733 -> a
+    150:150:boolean blocksClean(java.util.List):745:745 -> a
+    151:160:void removeCatchHandlerWithGuard(com.android.tools.r8.graph.DexType):825:834 -> a
+    161:161:boolean lambda$removeCatchHandlerWithGuard$6(int,com.android.tools.r8.ir.code.BasicBlock):831:831 -> a
+    162:171:java.util.List unlink(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree,java.util.Set):860:869 -> a
+    172:181:void linkCatchSuccessors(java.util.List,java.util.List):908:917 -> a
+    182:194:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):921:933 -> a
+    195:198:int numberOfNormalSuccessors():218:221 -> a
+    195:198:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):934 -> a
+    199:212:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):939:952 -> a
+    213:223:boolean renameGuardsInCatchHandlers(com.android.tools.r8.graph.GraphLense):963:973 -> a
+    224:225:com.android.tools.r8.ir.code.Value readOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1023:1024 -> a
+    224:225:boolean isOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1030 -> a
+    226:244:void updateCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1061:1079 -> a
+    245:249:void writeCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):1086:1090 -> a
+    250:253:void writeCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):1089:1092 -> a
+    254:258:void addIncompletePhi(int,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1141:1145 -> a
+    259:266:void appendBasicBlockList(java.lang.StringBuilder,java.util.List,java.util.function.Function):1158:1165 -> a
+    267:270:void printDebugValueSet(java.lang.String,java.util.List,java.lang.StringBuilder):1275:1278 -> a
+    271:303:void print(com.android.tools.r8.utils.CfgPrinter):1283:1315 -> a
+    304:305:void printBlockList(com.android.tools.r8.utils.CfgPrinter,java.util.List):1319:1320 -> a
+    306:307:com.android.tools.r8.ir.code.BasicBlock createGotoBlock(int,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock):1378:1379 -> a
+    308:312:com.android.tools.r8.ir.code.BasicBlock createGotoBlock(int,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRMetadata):1392:1396 -> a
+    313:319:com.android.tools.r8.ir.code.BasicBlock createIfBlock(int,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.Instruction[]):1427:1433 -> a
+    320:329:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1449:1458 -> a
+    330:330:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):715:715 -> a
+    330:330:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1459 -> a
+    331:331:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):715:715 -> a
+    331:331:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1460 -> a
+    332:333:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1461:1462 -> a
+    334:335:boolean canThrow():1574:1575 -> a
+    336:336:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode):1623:1623 -> a
+    337:337:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRMetadata):1627:1627 -> a
+    337:337:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode):1623 -> a
+    338:338:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRMetadata):1627:1627 -> a
+    339:339:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode,int):1631:1631 -> a
+    340:340:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):1642:1642 -> a
+    341:352:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1660:1671 -> a
+    353:358:void moveCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1692:1697 -> a
+    353:358:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1675 -> a
+    359:363:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1679:1683 -> a
+    364:380:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1708:1724 -> a
+    381:2154:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):0:1773 -> a
+    381:2154:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2155:2155:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):715:715 -> a
+    2155:2155:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1774 -> a
+    2155:2155:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2156:2159:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1775:1778 -> a
+    2156:2159:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2160:2160:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):715:715 -> a
+    2160:2160:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1779 -> a
+    2160:2160:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2161:2166:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1780:1785 -> a
+    2161:2166:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2167:2167:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1763:1763 -> a
+    2167:2167:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2168:2168:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    2168:2168:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1763 -> a
+    2168:2168:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2169:2203:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1763:1797 -> a
+    2169:2203:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2204:2204:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):142:142 -> a
+    2204:2204:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1799 -> a
+    2204:2204:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2205:2205:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1800:1800 -> a
+    2205:2205:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1724 -> a
+    2206:2280:java.util.List appendCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1817:1891 -> a
+    1:2:boolean verifyFilledPredecessors():699:700 -> a0
+    1:1:void lambda$notifyPredecessorsMayChangeListeners$2(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):244:244 -> b
+    2:32:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):335:365 -> b
+    33:33:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> b
+    33:33:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):367 -> b
+    34:34:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):367:367 -> b
+    35:35:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> b
+    35:35:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):368 -> b
+    36:39:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):368:371 -> b
+    40:44:boolean hasLinearFlow(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):432:436 -> b
+    40:44:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):371 -> b
+    45:97:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):371:423 -> b
+    98:98:java.lang.Iterable instructionsBefore(com.android.tools.r8.ir.code.Instruction):587:587 -> b
+    99:100:void decrementUnfilledPredecessorCount(int):689:690 -> b
+    101:102:void removePhi(com.android.tools.r8.ir.code.Phi):709:710 -> b
+    103:103:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):813:813 -> b
+    104:108:boolean isCatchHandlerForSingleGuard():839:843 -> b
+    104:108:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):814 -> b
+    109:113:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):816:820 -> b
+    114:141:java.util.Set cleanForRemoval():874:901 -> b
+    142:143:com.android.tools.r8.ir.code.Value readOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1023:1024 -> b
+    142:143:com.android.tools.r8.ir.code.Value readCurrentDefinition(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1036 -> b
+    144:146:com.android.tools.r8.ir.code.Value readCurrentDefinition(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1038:1040 -> b
+    147:148:com.android.tools.r8.ir.code.BasicBlock$EdgeType getEdgeType(com.android.tools.r8.ir.code.BasicBlock):1112:1113 -> b
+    149:161:void removeInstructions(java.util.List):1341:1353 -> b
+    162:162:void setInstructions(java.util.LinkedList):1333:1333 -> b
+    162:162:void removeInstructions(java.util.List):1354 -> b
+    1:1:void lambda$notifySuccessorsMayChangeListeners$1(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):198:198 -> c
+    2:6:void swapSuccessors(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):305:309 -> c
+    7:8:void removePhisByIndex(java.util.List):521:522 -> c
+    9:10:boolean isMarked(int):679:680 -> c
+    11:14:boolean hasCatchSuccessor(com.android.tools.r8.ir.code.BasicBlock):1117:1120 -> c
+    15:15:void clearCatchHandlers():1551:1551 -> c
+    16:16:com.android.tools.r8.ir.code.InstructionIterator iterator(com.android.tools.r8.ir.code.Instruction):1619:1619 -> c
+    1:2:void lambda$blocksClean$5(com.android.tools.r8.ir.code.BasicBlock):747:748 -> d
+    3:5:void clearCurrentDefinitions():1009:1011 -> d
+    6:6:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1615:1615 -> d
+    7:7:com.android.tools.r8.ir.code.InstructionIterator iterator(com.android.tools.r8.ir.code.Instruction):1619:1619 -> d
+    7:7:java.util.Iterator lambda$instructionsAfter$3(com.android.tools.r8.ir.code.Instruction):583 -> d
+    java.lang.String lambda$toDetailedString$7(com.android.tools.r8.ir.code.BasicBlock) -> e
+    1:1:java.util.Iterator lambda$instructionsBefore$4(com.android.tools.r8.ir.code.Instruction):588:588 -> e
+    2:3:void clearUserInfo():655:656 -> e
+    4:7:void mark(int):666:669 -> e
+    1:2:int numberInstructions(int):571:572 -> f
+    3:6:void link(com.android.tools.r8.ir.code.BasicBlock):738:741 -> f
+    7:8:boolean consistentCatchHandlers():980:981 -> f
+    9:9:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlersWithSuccessorIndexes():1547:1547 -> f
+    9:9:boolean consistentCatchHandlers():982 -> f
+    10:12:boolean consistentCatchHandlers():984:984 -> f
+    15:31:boolean consistentCatchHandlers():987:1003 -> f
+    32:34:void removeInstruction(com.android.tools.r8.ir.code.Instruction):1362:1364 -> f
+    int onThrowValueRegister(int) -> g
+    1:2:void decrementUnfilledPredecessorCount():694:695 -> g
+    3:4:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1179:1180 -> g
+    5:13:int guardsForCatchSuccessor(com.android.tools.r8.ir.code.BasicBlock):1124:1132 -> g
+    5:13:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1180 -> g
+    14:14:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1180:1180 -> g
+    1:3:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):260:262 -> h
+    4:4:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>(int[]):135:135 -> h
+    4:4:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):262 -> h
+    5:5:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):262:262 -> h
+    6:7:void setNumber(int):562:563 -> h
+    8:22:void deduplicatePhis():1944:1958 -> h
+    1:4:void detachAllSuccessors():852:855 -> i
+    5:6:void transferCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1555:1556 -> i
+    7:8:boolean verifyOnThrowWrite(int):1587:1588 -> i
+    1:3:com.android.tools.r8.ir.code.BasicBlock endOfGotoChain():1495:1497 -> j
+    1:1:com.android.tools.r8.ir.code.Instruction entry():633:633 -> k
+    1:2:com.android.tools.r8.ir.code.Instruction exceptionalExit():643:644 -> l
+    3:3:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1615:1615 -> l
+    3:3:com.android.tools.r8.ir.code.Instruction exceptionalExit():644 -> l
+    4:6:com.android.tools.r8.ir.code.Instruction exceptionalExit():645:647 -> l
+    1:3:com.android.tools.r8.ir.code.JumpInstruction exit():637:639 -> m
+    1:5:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlers():1539:1543 -> n
+    1:1:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlersWithSuccessorIndexes():1547:1547 -> o
+    1:1:java.util.LinkedList getInstructions():579:579 -> p
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getLocalsAtEntry():94:94 -> q
+    1:2:java.util.List getMutablePredecessors():238:239 -> r
+    1:2:java.util.List getMutableSuccessors():192:193 -> s
+    1:7:java.util.List getNormalPredecessors():250:256 -> t
+    1:1:java.lang.String toString():1171:1171 -> toString
+    1:11:java.util.List getNormalSuccessors():204:214 -> u
+    1:2:int getNumber():557:558 -> v
+    1:1:java.lang.String getNumberAsString():567:567 -> w
+    1:1:java.util.List getPhis():540:540 -> x
+    1:1:java.util.List getPredecessors():234:234 -> y
+    1:1:java.util.List getSuccessors():188:188 -> z
+com.android.tools.r8.ir.code.BasicBlock$1 -> com.android.tools.r8.t.b.n$a:
+    com.android.tools.r8.ir.code.Instruction next -> b
+    com.android.tools.r8.ir.code.Instruction val$instruction -> c
+    com.android.tools.r8.ir.code.BasicBlock this$0 -> d
+    com.android.tools.r8.ir.code.InstructionIterator iterator -> a
+    1:4:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):588:591 -> <init>
+    1:1:boolean hasNext():605:605 -> hasNext
+    1:3:com.android.tools.r8.ir.code.Instruction advance():594:596 -> k
+    1:5:com.android.tools.r8.ir.code.Instruction next():610:614 -> next
+    1:5:java.lang.Object next():588 -> next
+    6:6:com.android.tools.r8.ir.code.Instruction next():612:612 -> next
+    6:6:java.lang.Object next():588 -> next
+com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener -> com.android.tools.r8.t.b.n$b:
+com.android.tools.r8.ir.code.BasicBlock$EdgeType -> com.android.tools.r8.t.b.n$c:
+    com.android.tools.r8.ir.code.BasicBlock$EdgeType NORMAL -> b
+    com.android.tools.r8.ir.code.BasicBlock$EdgeType EXCEPTIONAL -> c
+    com.android.tools.r8.ir.code.BasicBlock$EdgeType NON_EDGE -> a
+    1:3:void <clinit>():113:115 -> <clinit>
+    1:1:void <init>(java.lang.String,int):112:112 -> <init>
+com.android.tools.r8.ir.code.BasicBlock$PhiEquivalence -> com.android.tools.r8.t.b.n$d:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():1921:1921 -> <clinit>
+    1:1:void <init>():1921:1921 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.BasicBlock$1):1921:1921 -> <init>
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):1921:1921 -> doEquivalent
+    2:4:boolean doEquivalent(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Phi):1924:1926 -> doEquivalent
+    2:4:boolean doEquivalent(java.lang.Object,java.lang.Object):1921 -> doEquivalent
+    1:1:int doHash(java.lang.Object):1921:1921 -> doHash
+    2:3:int doHash(com.android.tools.r8.ir.code.Phi):1936:1937 -> doHash
+    2:3:int doHash(java.lang.Object):1921 -> doHash
+com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo -> com.android.tools.r8.t.b.n$e:
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo CAN_THROW -> b
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo NO_THROW -> a
+    1:2:void <clinit>():104:105 -> <clinit>
+    1:1:void <init>(java.lang.String,int):103:103 -> <init>
+    1:1:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    1:1:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo defaultForConstString(com.android.tools.r8.utils.InternalOptions):108 -> a
+    2:2:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo defaultForConstString(com.android.tools.r8.utils.InternalOptions):108:108 -> a
+com.android.tools.r8.ir.code.BasicBlockInstructionIterator -> com.android.tools.r8.t.b.o:
+    java.util.ListIterator instructionIterator -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.BasicBlock):13:14 -> <init>
+    3:4:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):17:18 -> <init>
+    5:6:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):22:23 -> <init>
+    boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
+    1:1:boolean hasNext():38:38 -> hasNext
+    1:1:boolean hasPrevious():28:28 -> hasPrevious
+    1:1:com.android.tools.r8.ir.code.Instruction next():43:43 -> next
+    1:1:java.lang.Object next():9 -> next
+    1:1:com.android.tools.r8.ir.code.Instruction previous():33:33 -> previous
+com.android.tools.r8.ir.code.BasicBlockInstructionListIterator -> com.android.tools.r8.t.b.p:
+    com.android.tools.r8.ir.code.IRMetadata metadata -> e
+    java.util.ListIterator listIterator -> b
+    com.android.tools.r8.ir.code.Instruction current -> c
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.ir.code.Position position -> d
+    com.android.tools.r8.ir.code.BasicBlock block -> a
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock):38:38 -> <init>
+    2:9:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock):34:41 -> <init>
+    10:10:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock,int):44:44 -> <init>
+    11:24:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock,int):34:47 -> <init>
+    25:26:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):52:53 -> <init>
+    boolean lambda$inlineInvoke$2(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> a
+    boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
+    1:1:void setInsertionPosition(com.android.tools.r8.ir.code.Position):90:90 -> a
+    2:2:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):185:185 -> a
+    3:3:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    3:3:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):188 -> a
+    4:20:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):188:204 -> a
+    21:21:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):186:186 -> a
+    22:26:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):209:213 -> a
+    27:36:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):247:256 -> a
+    37:37:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    37:37:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):256 -> a
+    38:41:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):256:259 -> a
+    42:42:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    42:42:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):262 -> a
+    43:44:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):265:266 -> a
+    45:45:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):248:248 -> a
+    46:69:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):277:300 -> a
+    70:70:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    70:70:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):300 -> a
+    71:74:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):300:303 -> a
+    75:75:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    75:75:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):306 -> a
+    76:82:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):307:313 -> a
+    83:83:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):278:278 -> a
+    84:93:void lambda$replaceCurrentInstructionWithThrowNull$1(java.util.Set,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,java.util.Set,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.BasicBlock):315:324 -> a
+    94:101:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):332:339 -> a
+    102:102:boolean hasNext():58:58 -> a
+    102:102:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):339 -> a
+    103:106:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):339:342 -> a
+    107:107:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    107:107:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):342 -> a
+    108:108:boolean hasPrevious():74:74 -> a
+    108:108:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):346 -> a
+    109:113:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):346:350 -> a
+    114:115:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> a
+    114:115:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):350 -> a
+    116:134:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):351:369 -> a
+    135:142:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):378:385 -> a
+    143:175:void splitBlockAndCopyCatchHandlers(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,java.util.ListIterator):411:443 -> a
+    176:181:void removeArgumentInstruction(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Value):481:486 -> a
+    182:188:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):497:503 -> a
+    189:191:boolean canThrow(com.android.tools.r8.ir.code.IRCode):391:393 -> a
+    189:191:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):505 -> a
+    192:209:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):509:526 -> a
+    210:210:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    210:210:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):526 -> a
+    211:218:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):526:533 -> a
+    219:219:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    219:219:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):536 -> a
+    220:223:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):536:539 -> a
+    224:226:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):538:540 -> a
+    227:227:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    227:227:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):541 -> a
+    228:260:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):541:573 -> a
+    261:261:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    261:261:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):577 -> a
+    262:266:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):577:581 -> a
+    267:267:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    267:267:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):582 -> a
+    268:275:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):582:589 -> a
+    276:276:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    276:276:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):589 -> a
+    277:296:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):589:608 -> a
+    297:297:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    297:297:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):608 -> a
+    298:298:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):611:611 -> a
+    299:299:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    299:299:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):610 -> a
+    300:333:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):609:642 -> a
+    334:334:java.util.ListIterator com.android.tools.r8.ir.code.IRCode.listIterator(int):990:990 -> a
+    334:334:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):642 -> a
+    335:348:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):645:658 -> a
+    349:365:void appendCatchHandlers(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):458:474 -> a
+    349:365:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):659 -> a
+    366:371:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):666:671 -> a
+    372:372:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    372:372:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):671 -> a
+    373:383:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):671:681 -> a
+    384:388:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):680:684 -> a
+    389:417:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):690:718 -> a
+    418:418:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):142:142 -> a
+    418:418:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):721 -> a
+    419:419:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):722:722 -> a
+    420:420:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    420:420:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):722 -> a
+    421:438:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):722:739 -> a
+    439:439:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    439:439:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):218 -> a
+    440:442:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):220:222 -> a
+    1:1:void add(java.lang.Object):29:29 -> add
+    1:7:void add(com.android.tools.r8.ir.code.Instruction):103:109 -> b
+    8:16:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.ir.code.IRCode,int):227:235 -> b
+    17:17:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> b
+    17:17:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.ir.code.IRCode,int):235 -> b
+    18:21:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.ir.code.IRCode,int):235:238 -> b
+    22:22:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction) -> b
+    22:22:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.ir.code.IRCode,int):241 -> b
+    23:23:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.ir.code.IRCode,int):228:228 -> b
+    1:7:void removeOrReplaceByDebugLocalRead():173:179 -> g
+    8:8:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> g
+    8:8:void removeOrReplaceByDebugLocalRead():179 -> g
+    9:9:void removeOrReplaceByDebugLocalRead():174:174 -> g
+    1:1:boolean hasNext():58:58 -> hasNext
+    1:1:boolean hasPrevious():74:74 -> hasPrevious
+    1:5:void removeInstructionIgnoreOutValue():164:168 -> j
+    6:6:void removeInstructionIgnoreOutValue():165:165 -> j
+    1:1:com.android.tools.r8.ir.code.Instruction next():63:63 -> k
+    1:1:java.lang.Object next():29:29 -> next
+    1:1:int nextIndex():69:69 -> nextIndex
+    1:1:java.lang.Object previous():29:29 -> previous
+    2:2:com.android.tools.r8.ir.code.Instruction previous():79:79 -> previous
+    1:1:int previousIndex():85:85 -> previousIndex
+    1:6:void remove():139:144 -> remove
+    7:7:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> remove
+    7:7:void remove():144 -> remove
+    8:9:void remove():144:145 -> remove
+    10:10:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> remove
+    10:10:void remove():145 -> remove
+    11:25:void remove():145:159 -> remove
+    26:26:void remove():140:140 -> remove
+    1:1:void set(java.lang.Object):29:29 -> set
+    2:5:void set(com.android.tools.r8.ir.code.Instruction):122:125 -> set
+    2:5:void set(java.lang.Object):29 -> set
+com.android.tools.r8.ir.code.BasicBlockIterator -> com.android.tools.r8.t.b.q:
+    java.util.ListIterator listIterator -> b
+    com.android.tools.r8.ir.code.IRCode code -> a
+    com.android.tools.r8.ir.code.BasicBlock current -> c
+    1:3:void <init>(com.android.tools.r8.ir.code.IRCode):15:17 -> <init>
+    4:6:void <init>(com.android.tools.r8.ir.code.IRCode,int):20:22 -> <init>
+    1:1:void add(java.lang.Object):9:9 -> add
+    2:2:void add(com.android.tools.r8.ir.code.BasicBlock):59:59 -> add
+    2:2:void add(java.lang.Object):9 -> add
+    1:1:boolean hasNext():27:27 -> hasNext
+    1:1:boolean hasPrevious():43:43 -> hasPrevious
+    1:1:com.android.tools.r8.ir.code.BasicBlock next():32:32 -> next
+    1:1:java.lang.Object next():9 -> next
+    1:1:int nextIndex():38:38 -> nextIndex
+    1:1:com.android.tools.r8.ir.code.BasicBlock previous():48:48 -> previous
+    1:1:java.lang.Object previous():9 -> previous
+    1:1:int previousIndex():54:54 -> previousIndex
+    1:12:void remove():77:88 -> remove
+    13:13:void remove():78:78 -> remove
+    1:1:void set(java.lang.Object):9:9 -> set
+    2:2:void set(com.android.tools.r8.ir.code.BasicBlock):64:64 -> set
+    2:2:void set(java.lang.Object):9 -> set
+com.android.tools.r8.ir.code.Binop -> com.android.tools.r8.t.b.r:
+    com.android.tools.r8.ir.code.NumericType type -> h
+    1:8:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:31 -> <init>
+    1:1:int maxOutValueRegister():95:95 -> A2
+    1:1:com.android.tools.r8.ir.code.NumericType getNumericType():36:36 -> F2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.ir.code.Value leftValue():40:40 -> H2
+    1:2:int maxInOutValueRegisterSize():82:83 -> I2
+    1:1:com.android.tools.r8.ir.code.Value rightValue():44:44 -> J2
+    boolean hasInvariantOutType() -> K0
+    1:91:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():0:90 -> a
+    1:91:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):127 -> a
+    92:99:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):51:58 -> a
+    100:100:boolean com.android.tools.r8.utils.InternalOptions.canHaveMul2AddrBug():1347:1347 -> a
+    100:100:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):58 -> a
+    101:101:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):58:58 -> a
+    102:102:int foldIntegers(int,int):99:99 -> a
+    103:103:long foldLongs(long,long) -> a
+    104:104:float foldFloat(float,float):107:107 -> a
+    105:105:double foldDouble(double,double):111:111 -> a
+    106:107:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):132:133 -> a
+    108:108:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):138:138 -> a
+    boolean isBinop() -> c1
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:3:boolean fitsInLit16Instruction(com.android.tools.r8.ir.code.Value):68:70 -> g
+    1:3:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):64 -> g
+    1:3:boolean fitsInLit8Instruction(com.android.tools.r8.ir.code.Value):74:76 -> h
+    com.android.tools.r8.ir.code.Binop asBinop() -> r
+    1:1:int maxInValueRegister():90:90 -> z2
+com.android.tools.r8.ir.code.CanonicalPositions -> com.android.tools.r8.t.b.s:
+    java.util.Map canonicalPositions -> b
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.code.Position callerPosition -> a
+    com.android.tools.r8.ir.code.Position syntheticPosition -> d
+    com.android.tools.r8.ir.code.Position preamblePosition -> c
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:12:void <init>(com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.graph.DexMethod):27:38 -> <init>
+    1:1:com.android.tools.r8.ir.code.Position getPreamblePosition():42:42 -> a
+    2:4:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):61:63 -> a
+    5:5:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):50:50 -> a
+    5:5:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):64 -> a
+    6:10:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):66:70 -> a
+    11:11:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):50:50 -> a
+    11:11:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):67 -> a
+    12:21:com.android.tools.r8.ir.code.Position getExceptionalExitPosition(boolean,java.util.function.Supplier,com.android.tools.r8.graph.DexMethod):80:89 -> a
+    22:22:com.android.tools.r8.ir.code.Position getPreamblePosition():42:42 -> a
+    22:22:com.android.tools.r8.ir.code.Position getExceptionalExitPosition(boolean,java.util.function.Supplier,com.android.tools.r8.graph.DexMethod):93 -> a
+    23:32:com.android.tools.r8.ir.code.Position getExceptionalExitPosition(boolean,java.util.function.Supplier,com.android.tools.r8.graph.DexMethod):94:103 -> a
+    1:1:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):50:50 -> b
+com.android.tools.r8.ir.code.CatchHandlers -> com.android.tools.r8.t.b.t:
+    java.util.List targets -> b
+    java.util.List guards -> a
+    java.util.Set uniqueTargets -> c
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.ir.code.CatchHandlers EMPTY_INDICES -> d
+    com.android.tools.r8.ir.code.CatchHandlers EMPTY_BASIC_BLOCK -> e
+    1:19:void <clinit>():17:35 -> <clinit>
+    1:3:void <init>():37:39 -> <init>
+    4:9:void <init>(java.util.List,java.util.List):42:47 -> <init>
+    1:1:java.util.List access$000(com.android.tools.r8.ir.code.CatchHandlers):17:17 -> a
+    2:2:java.util.List getGuards():60:60 -> a
+    2:2:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):75 -> a
+    3:3:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):75:75 -> a
+    4:4:java.util.List getGuards():60:60 -> a
+    4:4:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):76 -> a
+    5:5:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):76:76 -> a
+    6:9:com.android.tools.r8.ir.code.CatchHandlers appendGuard(com.android.tools.r8.graph.DexType,java.lang.Object):80:83 -> a
+    10:19:com.android.tools.r8.ir.code.CatchHandlers removeGuard(com.android.tools.r8.graph.DexType):87:96 -> a
+    20:21:void lambda$removeGuard$0(com.android.tools.r8.graph.DexType,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,java.lang.Object):92:93 -> a
+    22:23:void forEach(java.util.function.BiConsumer):100:101 -> a
+    1:1:java.util.List access$100(com.android.tools.r8.ir.code.CatchHandlers):17:17 -> b
+    1:1:java.util.List getAllTargets():64:64 -> e
+    1:5:boolean equals(java.lang.Object):131:135 -> equals
+    1:1:java.util.List getGuards():60:60 -> f
+    1:4:java.util.Set getUniqueTargets():68:71 -> g
+    1:1:int hashCode():140:140 -> hashCode
+    1:1:boolean isEmpty():51:51 -> isEmpty
+    1:1:java.util.Iterator iterator():107:107 -> iterator
+    1:2:int size():55:56 -> size
+com.android.tools.r8.ir.code.CatchHandlers$1 -> com.android.tools.r8.t.b.t$a:
+    com.android.tools.r8.ir.code.CatchHandlers this$0 -> b
+    int nextIndex -> a
+    1:3:void <init>(com.android.tools.r8.ir.code.CatchHandlers):107:109 -> <init>
+    1:1:boolean hasNext():113:113 -> hasNext
+    1:4:com.android.tools.r8.ir.code.CatchHandlers$CatchHandler next():118:121 -> next
+    1:4:java.lang.Object next():107 -> next
+com.android.tools.r8.ir.code.CatchHandlers$CatchHandler -> com.android.tools.r8.t.b.t$b:
+    java.lang.Object target -> b
+    com.android.tools.r8.graph.DexType guard -> a
+    1:3:void <init>(com.android.tools.r8.graph.DexType,java.lang.Object):24:26 -> <init>
+com.android.tools.r8.ir.code.CheckCast -> com.android.tools.r8.t.b.u:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexType type -> h
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):30:31 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexType getType():45:45 -> F2
+    1:1:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> G2
+    1:1:com.android.tools.r8.ir.code.Value object():49 -> G2
+    2:2:com.android.tools.r8.ir.code.Value object():49:49 -> G2
+    boolean hasInvariantOutType() -> K0
+    boolean instructionTypeCanThrow() -> Q0
+    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):41:41 -> a
+    2:15:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:70 -> a
+    16:16:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):114:114 -> a
+    17:17:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):119:119 -> a
+    18:19:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):164:165 -> a
+    20:20:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):176:176 -> a
+    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):181:181 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> b
+    2:8:boolean verifyTypes(com.android.tools.r8.graph.AppView):124:130 -> b
+    9:9:com.android.tools.r8.graph.DexType getType():45:45 -> b
+    9:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):132 -> b
+    10:30:boolean verifyTypes(com.android.tools.r8.graph.AppView):132:152 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isCheckCast() -> d1
+    com.android.tools.r8.ir.code.CheckCast asCheckCast() -> s
+    1:1:java.lang.String toString():108:108 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Cmp -> com.android.tools.r8.t.b.v:
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.ir.code.Cmp$Bias bias -> i
+    1:1:void <clinit>():26:26 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):35:36 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:84 -> a
+    29:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:81 -> a
+    31:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:76 -> a
+    37:61:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:86 -> a
+    62:70:java.lang.String biasToString(com.android.tools.r8.ir.code.Cmp$Bias):90:98 -> a
+    71:85:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):163:177 -> a
+    86:97:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):175:186 -> a
+    98:110:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):184:196 -> a
+    111:117:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):195:201 -> a
+    118:124:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):200:206 -> a
+    125:128:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):205:208 -> a
+    129:135:com.android.tools.r8.ir.analysis.constant.LatticeElement buildLatticeResult(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.LongInterval,com.android.tools.r8.utils.LongInterval):213:219 -> a
+    136:136:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):234:234 -> a
+    137:137:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):239:239 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):136:136 -> b
+    boolean isCmp() -> e1
+    com.android.tools.r8.ir.code.Cmp asCmp() -> t
+    1:17:java.lang.String toString():104:120 -> toString
+    18:18:java.lang.String toString():117:117 -> toString
+    19:20:java.lang.String toString():113:114 -> toString
+    21:43:java.lang.String toString():109:131 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Cmp$Bias -> com.android.tools.r8.t.b.v$a:
+    com.android.tools.r8.ir.code.Cmp$Bias LT -> c
+    com.android.tools.r8.ir.code.Cmp$Bias NONE -> a
+    com.android.tools.r8.ir.code.Cmp$Bias GT -> b
+    com.android.tools.r8.ir.code.Cmp$Bias[] $VALUES -> d
+    1:1:void <clinit>():29:29 -> <clinit>
+    2:2:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(java.lang.String,int):28:28 -> <init>
+    1:1:com.android.tools.r8.ir.code.Cmp$Bias[] values():28:28 -> a
+com.android.tools.r8.ir.code.ConstClass -> com.android.tools.r8.t.b.w:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexType clazz -> h
+    1:1:void <clinit>():26:26 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):31:32 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexType getValue():64:64 -> F2
+    boolean instructionInstanceCanThrow() -> O0
+    boolean instructionTypeCanBeCanonicalized() -> P0
+    boolean instructionTypeCanThrow() -> Q0
+    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):42:42 -> a
+    2:7:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstClass):46:51 -> a
+    8:9:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):55:56 -> a
+    10:10:com.android.tools.r8.graph.DexType getValue():64:64 -> a
+    10:10:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):56 -> a
+    11:11:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):56:56 -> a
+    12:12:com.android.tools.r8.ir.code.Value dest():60:60 -> a
+    12:12:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):69 -> a
+    13:14:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):69:70 -> a
+    15:15:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):139:139 -> a
+    15:15:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):195 -> a
+    16:18:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):196:198 -> a
+    19:19:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):144:144 -> a
+    20:20:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):139:139 -> a
+    20:20:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):144 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):170:170 -> a
+    22:22:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):175:175 -> a
+    23:23:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):180:180 -> a
+    24:24:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):185:185 -> a
+    25:25:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):190:190 -> a
+    1:1:com.android.tools.r8.graph.DexType getValue():64:64 -> b
+    1:1:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):106 -> b
+    2:13:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):106:117 -> b
+    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    14:14:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120 -> b
+    15:26:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):123:134 -> b
+    27:27:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):154:154 -> b
+    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):139:139 -> c
+    boolean isConstClass() -> f1
+    boolean isOutConstant() -> i2
+    1:1:java.lang.String toString():86:86 -> toString
+    com.android.tools.r8.ir.code.ConstClass asConstClass() -> u
+    1:1:int maxInValueRegister():75:75 -> z2
+com.android.tools.r8.ir.code.ConstInstruction -> com.android.tools.r8.t.b.x:
+    1:1:void <init>(com.android.tools.r8.ir.code.Value):33:33 -> <init>
+    com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction() -> F0
+    boolean hasInvariantOutType() -> K0
+    1:108:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():0:107 -> a
+    1:108:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):54 -> a
+    109:122:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):15:28 -> a
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isConstInstruction() -> g1
+    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction() -> v
+com.android.tools.r8.ir.code.ConstMethodHandle -> com.android.tools.r8.t.b.y:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexMethodHandle methodHandle -> h
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethodHandle):25:26 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexMethodHandle getValue():57:57 -> F2
+    boolean instructionTypeCanThrow() -> Q0
+    1:334:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodHandle():0:333 -> a
+    1:334:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):85 -> a
+    335:335:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36:36 -> a
+    336:336:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):49:49 -> a
+    337:337:com.android.tools.r8.graph.DexMethodHandle getValue():57:57 -> a
+    337:337:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):49 -> a
+    338:338:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):49:49 -> a
+    339:339:com.android.tools.r8.ir.code.Value dest():53:53 -> a
+    339:339:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62 -> a
+    340:341:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:63 -> a
+    342:342:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):68:68 -> a
+    343:343:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):121:121 -> a
+    344:344:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):120:120 -> a
+    345:345:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):126:126 -> a
+    346:346:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):131:131 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> b
+    boolean isConstMethodHandle() -> h1
+    boolean isOutConstant() -> i2
+    1:1:java.lang.String toString():95:95 -> toString
+    com.android.tools.r8.ir.code.ConstMethodHandle asConstMethodHandle() -> w
+    1:1:int maxInValueRegister():78:78 -> z2
+com.android.tools.r8.ir.code.ConstMethodType -> com.android.tools.r8.t.b.z:
+    com.android.tools.r8.graph.DexProto methodType -> h
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexProto):25:26 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexProto getValue():57:57 -> F2
+    boolean instructionTypeCanThrow() -> Q0
+    1:338:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodType():0:337 -> a
+    1:338:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):131 -> a
+    339:339:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36:36 -> a
+    340:340:com.android.tools.r8.ir.code.ConstMethodType copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodType):49:49 -> a
+    341:341:com.android.tools.r8.graph.DexProto getValue():57:57 -> a
+    341:341:com.android.tools.r8.ir.code.ConstMethodType copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodType):49 -> a
+    342:342:com.android.tools.r8.ir.code.ConstMethodType copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodType):49:49 -> a
+    343:343:com.android.tools.r8.ir.code.Value dest():53:53 -> a
+    343:343:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62 -> a
+    344:345:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:63 -> a
+    346:346:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):68:68 -> a
+    347:347:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
+    348:348:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):114:114 -> a
+    349:349:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):120:120 -> a
+    350:350:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):125:125 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> b
+    boolean isConstMethodType() -> i1
+    boolean isOutConstant() -> i2
+    1:1:java.lang.String toString():89:89 -> toString
+    com.android.tools.r8.ir.code.ConstMethodType asConstMethodType() -> x
+    1:1:int maxInValueRegister():78:78 -> z2
+com.android.tools.r8.ir.code.ConstNumber -> com.android.tools.r8.t.b.A:
+    boolean $assertionsDisabled -> i
+    long value -> h
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.ir.code.Value,long):38:43 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value dest():70:70 -> F2
+    1:2:double getDoubleValue():94:95 -> G2
+    1:2:float getFloatValue():89:90 -> H2
+    1:3:int getIntValue():78:78 -> I2
+    5:5:int getIntValue():80:80 -> I2
+    1:2:long getLongValue():84:85 -> J2
+    1:1:long getRawValue():99:99 -> K2
+    1:1:boolean is16Bit():280:280 -> L2
+    1:1:boolean is8Bit():272:272 -> M2
+    1:1:boolean isIntegerOne():111:111 -> N2
+    1:1:boolean isIntegerZero():107:107 -> O2
+    boolean instructionTypeCanBeCanonicalized() -> P0
+    1:1:boolean isZero():103:103 -> P2
+    1:1:boolean negativeIs16Bit():284:284 -> Q2
+    1:1:boolean negativeIs8Bit():276:276 -> R2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:5:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstNumber):57:61 -> a
+    6:7:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstNumber):65:66 -> a
+    8:8:com.android.tools.r8.ir.code.Value dest():70:70 -> a
+    8:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):129 -> a
+    9:10:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):129:130 -> a
+    11:11:com.android.tools.r8.ir.code.Value dest():70:70 -> a
+    11:11:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):134 -> a
+    12:13:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):134:135 -> a
+    14:39:boolean com.android.tools.r8.ir.code.ValueType.isSingle():0:25 -> a
+    14:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):135 -> a
+    40:48:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):147:155 -> a
+    49:57:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):136:144 -> a
+    58:62:boolean isIntegerNegativeOne(com.android.tools.r8.ir.code.NumericType):115:119 -> a
+    63:63:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):162:162 -> a
+    64:67:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):167:170 -> a
+    68:68:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176:176 -> a
+    69:94:boolean com.android.tools.r8.ir.code.ValueType.isSingle():0:25 -> a
+    69:94:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):214 -> a
+    69:94:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
+    95:111:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):215:231 -> a
+    95:111:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
+    112:142:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):180:210 -> a
+    112:142:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
+    143:143:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):203:203 -> a
+    143:143:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
+    144:144:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):197:197 -> a
+    144:144:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
+    145:146:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):304:305 -> a
+    147:150:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):310:313 -> a
+    151:151:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):318:318 -> a
+    152:152:boolean outTypeKnownToBeBoolean(java.util.Set):332:332 -> a
+    153:153:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):337:337 -> a
+    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):264:268 -> b
+    6:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):323:326 -> b
+    10:10:boolean verifyTypes(com.android.tools.r8.graph.AppView):324:324 -> b
+    boolean isOutConstant() -> i2
+    boolean isConstNumber() -> j1
+    1:4:java.lang.String toString():252:255 -> toString
+    com.android.tools.r8.ir.code.ConstNumber asConstNumber() -> y
+    1:1:int maxInValueRegister():241:241 -> z2
+com.android.tools.r8.ir.code.ConstString -> com.android.tools.r8.t.b.B:
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.graph.DexString value -> h
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> i
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexString,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):28:30 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexString getValue():61:61 -> F2
+    1:11:boolean instructionInstanceCanThrow():118:128 -> O0
+    boolean instructionTypeCanBeCanonicalized() -> P0
+    1:1:boolean instructionTypeCanThrow():98:98 -> Q0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:5:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstString):44:48 -> a
+    6:7:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):52:53 -> a
+    8:8:com.android.tools.r8.graph.DexString getValue():61:61 -> a
+    8:8:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):53 -> a
+    9:9:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):53:53 -> a
+    10:10:com.android.tools.r8.ir.code.Value dest():57:57 -> a
+    10:10:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71 -> a
+    11:12:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:72 -> a
+    13:13:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):137:137 -> a
+    14:14:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    14:14:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):137 -> a
+    15:15:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):137:137 -> a
+    16:16:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):142:142 -> a
+    17:17:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):147:147 -> a
+    18:18:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):152:152 -> a
+    19:19:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):157:157 -> a
+    20:23:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):167:170 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isOutConstant() -> i2
+    boolean isConstString() -> k1
+    1:1:java.lang.String toString():93:93 -> toString
+    com.android.tools.r8.ir.code.ConstString asConstString() -> z
+    1:1:int maxInValueRegister():82:82 -> z2
+com.android.tools.r8.ir.code.ConstantValueUtils -> com.android.tools.r8.t.b.C:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:14:com.android.tools.r8.graph.DexType getDexTypeRepresentedByValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexDefinitionSupplier):20:33 -> a
+    15:17:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):42:42 -> a
+    18:18:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
+    18:18:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):44 -> a
+    19:19:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):44:44 -> a
+    20:20:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
+    20:20:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):44 -> a
+    21:21:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):44:44 -> a
+    22:22:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
+    22:22:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):45 -> a
+    23:27:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):45:49 -> a
+    28:36:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):48:56 -> a
+com.android.tools.r8.ir.code.DebugLocalRead -> com.android.tools.r8.t.b.D:
+    1:1:void <init>():19:19 -> <init>
+    1:1:int maxOutValueRegister():64:64 -> A2
+    int opcode() -> B2
+    boolean hasInvariantOutType() -> K0
+    boolean isAllowedAfterThrowingInstruction() -> S0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:112:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugLocalRead():0:111 -> a
+    1:112:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):70 -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    113:113:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):44:44 -> a
+    114:114:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):49:49 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isDebugLocalRead() -> o1
+    1:1:int maxInValueRegister():59:59 -> z2
+com.android.tools.r8.ir.code.DebugLocalUninitialized -> com.android.tools.r8.t.b.E:
+    1:1:void <init>(com.android.tools.r8.ir.code.Value):21:21 -> <init>
+    boolean isAllowedAfterThrowingInstruction() -> S0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean isDebugLocalUninitialized() -> p1
+com.android.tools.r8.ir.code.DebugLocalWrite -> com.android.tools.r8.t.b.F:
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():26:26 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):29:30 -> <init>
+    boolean isAllowedAfterThrowingInstruction() -> S0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:1:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):60:60 -> a
+    2:2:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):65:65 -> a
+    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):71:71 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):55:55 -> b
+    2:3:boolean verifyTypes(com.android.tools.r8.graph.AppView):81:82 -> b
+    boolean isOutConstant() -> i2
+    boolean isDebugLocalWrite() -> q1
+com.android.tools.r8.ir.code.DebugLocalsChange -> com.android.tools.r8.t.b.G:
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap starting -> i
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap ending -> h
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):26:29 -> <init>
+    com.android.tools.r8.ir.code.DebugLocalsChange asDebugLocalsChange() -> A
+    1:1:int maxOutValueRegister():82:82 -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getEnding():43:43 -> F2
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getStarting():47:47 -> G2
+    boolean hasInvariantOutType() -> K0
+    boolean isAllowedAfterThrowingInstruction() -> S0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:116:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugLocalsChange():0:115 -> a
+    1:116:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):103 -> a
+    117:117:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getEnding():43:43 -> a
+    117:117:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):108 -> a
+    118:120:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):108:110 -> a
+    121:121:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getStarting():47:47 -> a
+    121:121:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):114 -> a
+    122:125:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):114:117 -> a
+    126:126:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:62 -> a
+    127:127:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):124:124 -> a
+    128:128:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):134:134 -> a
+    1:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):67:72 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isDebugLocalsChange() -> r1
+    1:6:java.lang.String toString():92:97 -> toString
+    1:1:int maxInValueRegister():77:77 -> z2
+com.android.tools.r8.ir.code.DebugPosition -> com.android.tools.r8.t.b.H:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:1:void <init>():19:19 -> <init>
+    1:1:int maxOutValueRegister():60:60 -> A2
+    com.android.tools.r8.ir.code.DebugPosition asDebugPosition() -> B
+    int opcode() -> B2
+    boolean hasInvariantOutType() -> K0
+    boolean isAllowedAfterThrowingInstruction() -> S0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:120:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugPosition():0:119 -> a
+    1:120:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):66 -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    121:122:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):44:45 -> a
+    123:125:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):86:88 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):50:50 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isDebugPosition() -> s1
+    1:1:int maxInValueRegister():55:55 -> z2
+com.android.tools.r8.ir.code.DefaultAliasedValueConfiguration -> com.android.tools.r8.t.b.I:
+    com.android.tools.r8.ir.code.DefaultAliasedValueConfiguration INSTANCE -> a
+    boolean $assertionsDisabled -> b
+    1:3:void <clinit>():7:9 -> <clinit>
+    1:1:void <init>():12:12 -> <init>
+    1:1:com.android.tools.r8.ir.code.DefaultAliasedValueConfiguration getInstance():15:15 -> a
+    2:3:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):25:26 -> a
+    1:1:boolean isIntroducingAnAlias(com.android.tools.r8.ir.code.Instruction):20:20 -> b
+com.android.tools.r8.ir.code.DefaultInstructionVisitor -> com.android.tools.r8.t.b.J:
+    1:1:void <init>():7:7 -> <init>
+    java.lang.Object handleFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction) -> a
+    java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke) -> a
+    java.lang.Object visit(com.android.tools.r8.ir.code.CheckCast) -> a
+    java.lang.Object visit(com.android.tools.r8.ir.code.ConstClass) -> a
+    java.lang.Object visit(com.android.tools.r8.ir.code.ConstMethodHandle) -> a
+    java.lang.Object visit(com.android.tools.r8.ir.code.ConstMethodType) -> a
+    java.lang.Object visit(com.android.tools.r8.ir.code.NewArrayEmpty) -> a
+    java.lang.Object com.android.tools.r8.ir.code.InstructionVisitor.visit(com.android.tools.r8.ir.code.NewInstance) -> a
+    1:1:java.lang.Object visit(com.android.tools.r8.ir.code.InstanceGet):164:164 -> a
+    2:2:java.lang.Object visit(com.android.tools.r8.ir.code.InstancePut):174:174 -> a
+    3:3:java.lang.Object visit(com.android.tools.r8.ir.code.StaticGet):309:309 -> a
+    4:4:java.lang.Object visit(com.android.tools.r8.ir.code.StaticPut):314:314 -> a
+com.android.tools.r8.ir.code.DexItemBasedConstString -> com.android.tools.r8.t.b.K:
+    com.android.tools.r8.graph.DexReference item -> h
+    boolean $assertionsDisabled -> k
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> j
+    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> i
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):33:36 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    com.android.tools.r8.ir.code.DexItemBasedConstString asDexItemBasedConstString() -> C
+    1:1:com.android.tools.r8.graph.DexReference getItem():64:64 -> F2
+    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():68:68 -> G2
+    boolean instructionInstanceCanThrow() -> O0
+    boolean instructionTypeCanBeCanonicalized() -> P0
+    1:1:boolean instructionTypeCanThrow():119:119 -> Q0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:96:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDexItemBasedConstString(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType):0:95 -> a
+    1:96:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):163 -> a
+    97:101:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DexItemBasedConstString):50:54 -> a
+    102:103:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):58:59 -> a
+    104:104:com.android.tools.r8.graph.DexReference getItem():64:64 -> a
+    104:104:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):60 -> a
+    105:105:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):60:60 -> a
+    106:107:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:89 -> a
+    108:108:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):142:142 -> a
+    109:109:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):147:147 -> a
+    110:110:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):152:152 -> a
+    111:111:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):157:157 -> a
+    1:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):96:98 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isOutConstant() -> i2
+    boolean isDexItemBasedConstString() -> t1
+    1:1:java.lang.String toString():114:114 -> toString
+    1:1:int maxInValueRegister():103:103 -> z2
+com.android.tools.r8.ir.code.Div -> com.android.tools.r8.t.b.L:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
+    int opcode() -> B2
+    com.android.tools.r8.ir.code.Div asDiv() -> D
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():148:148 -> K2
+    1:1:boolean instructionTypeCanThrow():134:134 -> Q0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    double foldDouble(double,double) -> a
+    float foldFloat(float,float) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):69:69 -> a
+    2:2:int foldIntegers(int,int):114:114 -> a
+    3:3:long foldLongs(long,long):119:119 -> a
+    4:8:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):139:143 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):64:64 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):89:89 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):54:54 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):84:84 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):74:74 -> d
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):99:99 -> d
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):79:79 -> e
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):94:94 -> e
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):59:59 -> f
+    boolean isDiv() -> u1
+com.android.tools.r8.ir.code.DominatorTree -> com.android.tools.r8.t.b.N:
+    com.android.tools.r8.ir.code.BasicBlock[] sorted -> a
+    com.android.tools.r8.ir.code.BasicBlock[] doms -> b
+    boolean obsolete -> e
+    boolean $assertionsDisabled -> f
+    int unreachableStartIndex -> d
+    com.android.tools.r8.ir.code.BasicBlock normalExitBlock -> c
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.IRCode):37:37 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):40:40 -> <init>
+    3:57:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):30:84 -> <init>
+    1:1:boolean dominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):103:103 -> a
+    2:8:boolean strictlyDominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):134:140 -> a
+    2:8:boolean dominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):107 -> a
+    9:16:com.android.tools.r8.ir.code.BasicBlock closestDominator(java.util.Collection):157:164 -> a
+    17:22:java.util.List dominatedBlocks(com.android.tools.r8.ir.code.BasicBlock):171:176 -> a
+    23:24:java.lang.Iterable dominatorBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree$Inclusive):189:190 -> a
+    25:54:void build():252:281 -> a
+    55:56:boolean recordChangesToControlFlowEdges(java.util.List):316:317 -> a
+    1:2:com.android.tools.r8.ir.code.BasicBlock immediateDominator(com.android.tools.r8.ir.code.BasicBlock):91:92 -> b
+    3:30:java.util.Iterator lambda$dominatorBlocks$0(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree$Inclusive):191:218 -> b
+    31:31:com.android.tools.r8.ir.code.BasicBlock[] getSortedBlocks():232:232 -> b
+    32:32:boolean postorderCompareLess(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):243:243 -> b
+    32:32:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):292 -> b
+    33:33:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):293:293 -> b
+    34:34:boolean postorderCompareLess(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):243:243 -> b
+    34:34:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):295 -> b
+    35:35:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):296:296 -> b
+    1:4:java.lang.Iterable normalExitDominatorBlocks():225:228 -> c
+    5:5:void onPredecessorsMayChange(com.android.tools.r8.ir.code.BasicBlock):329:329 -> c
+    1:2:void numberBlocks():236:237 -> d
+    3:3:void onSuccessorsMayChange(com.android.tools.r8.ir.code.BasicBlock):324:324 -> d
+    1:9:java.lang.String toString():304:312 -> toString
+com.android.tools.r8.ir.code.DominatorTree$1 -> com.android.tools.r8.t.b.M:
+    com.android.tools.r8.ir.code.DominatorTree this$0 -> c
+    com.android.tools.r8.ir.code.BasicBlock val$dominated -> b
+    boolean $assertionsDisabled -> d
+    com.android.tools.r8.ir.code.BasicBlock current -> a
+    1:1:void <clinit>():192:192 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.DominatorTree,com.android.tools.r8.ir.code.BasicBlock):192:193 -> <init>
+    1:1:boolean hasNext():197:197 -> hasNext
+    1:9:com.android.tools.r8.ir.code.BasicBlock next():202:210 -> next
+    1:9:java.lang.Object next():192 -> next
+com.android.tools.r8.ir.code.DominatorTree$Assumption -> com.android.tools.r8.t.b.N$a:
+    com.android.tools.r8.ir.code.DominatorTree$Assumption MAY_HAVE_UNREACHABLE_BLOCKS -> b
+    com.android.tools.r8.ir.code.DominatorTree$Assumption NO_UNREACHABLE_BLOCKS -> a
+    1:2:void <clinit>():19:20 -> <clinit>
+    1:1:void <init>(java.lang.String,int):18:18 -> <init>
+com.android.tools.r8.ir.code.DominatorTree$Inclusive -> com.android.tools.r8.t.b.O:
+    com.android.tools.r8.ir.code.DominatorTree$Inclusive YES -> a
+    com.android.tools.r8.ir.code.DominatorTree$Inclusive NO -> b
+    1:2:void <clinit>():24:25 -> <clinit>
+    1:1:void <init>(java.lang.String,int):23:23 -> <init>
+com.android.tools.r8.ir.code.Dup -> com.android.tools.r8.t.b.Q:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):21:21 -> <init>
+    2:3:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value):25:26 -> <init>
+    1:1:int maxOutValueRegister():92:92 -> A2
+    int opcode() -> B2
+    com.android.tools.r8.ir.code.Dup asDup() -> E
+    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():51:51 -> F2
+    1:1:com.android.tools.r8.ir.code.StackValue outBottom():55 -> F2
+    2:2:com.android.tools.r8.ir.code.StackValue outBottom():55:55 -> F2
+    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():51:51 -> G2
+    1:1:com.android.tools.r8.ir.code.StackValue outTop():59 -> G2
+    2:2:com.android.tools.r8.ir.code.StackValue outTop():59:59 -> G2
+    1:1:com.android.tools.r8.ir.code.StackValue src():63:63 -> H2
+    boolean hasInvariantOutType() -> K0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:124:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDup():0:123 -> a
+    1:124:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):98 -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    125:125:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68:68 -> a
+    126:129:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):73:76 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):82:82 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):41:46 -> e
+    boolean isDup() -> v1
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Dup2 -> com.android.tools.r8.t.b.P:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):28:28 -> <init>
+    2:7:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):35:40 -> <init>
+    1:1:int maxOutValueRegister():106:106 -> A2
+    int opcode() -> B2
+    boolean hasInvariantOutType() -> K0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:128:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDup2():0:127 -> a
+    1:128:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):112 -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    129:129:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
+    130:130:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):91:91 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):96:96 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):55:60 -> e
+    boolean isDup2() -> w1
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.FieldInstruction -> com.android.tools.r8.t.b.S:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexField field -> h
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):33:33 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,java.util.List):37:39 -> <init>
+    com.android.tools.r8.ir.code.FieldInstruction asFieldInstruction() -> F
+    1:1:com.android.tools.r8.graph.DexField getField():49:49 -> F2
+    1:1:com.android.tools.r8.ir.code.FieldMemberType getType():45:45 -> G2
+    2:2:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51:51 -> G2
+    2:2:com.android.tools.r8.ir.code.FieldMemberType getType():45 -> G2
+    3:3:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):46:46 -> G2
+    3:3:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> G2
+    3:3:com.android.tools.r8.ir.code.FieldMemberType getType():45 -> G2
+    4:20:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):28:44 -> G2
+    4:20:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> G2
+    4:20:com.android.tools.r8.ir.code.FieldMemberType getType():45 -> G2
+    21:21:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):32:32 -> G2
+    21:21:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> G2
+    21:21:com.android.tools.r8.ir.code.FieldMemberType getType():45 -> G2
+    22:36:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):26:40 -> G2
+    22:36:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> G2
+    22:36:com.android.tools.r8.ir.code.FieldMemberType getType():45 -> G2
+    37:43:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):36:42 -> G2
+    37:43:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> G2
+    37:43:com.android.tools.r8.ir.code.FieldMemberType getType():45 -> G2
+    44:44:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):34:34 -> G2
+    44:44:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> G2
+    44:44:com.android.tools.r8.ir.code.FieldMemberType getType():45 -> G2
+    45:45:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):30:30 -> G2
+    45:45:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> G2
+    45:45:com.android.tools.r8.ir.code.FieldMemberType getType():45 -> G2
+    com.android.tools.r8.ir.code.Value value() -> H2
+    boolean hasInvariantOutType() -> K0
+    1:1:boolean lambda$instructionInstanceCanThrow$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):132:132 -> a
+    2:25:boolean isStoringObjectWithFinalizer(com.android.tools.r8.shaking.AppInfoWithLiveness):180:203 -> a
+    26:26:boolean isStoringObjectWithFinalizer(com.android.tools.r8.shaking.AppInfoWithLiveness):202:202 -> a
+    27:28:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):211:212 -> a
+    29:29:com.android.tools.r8.graph.DexField getField():49:49 -> a
+    29:29:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):212 -> a
+    30:32:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):212:214 -> a
+    33:33:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    33:33:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):214 -> a
+    34:34:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):215:215 -> a
+    35:35:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    35:35:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):215 -> a
+    36:36:boolean com.android.tools.r8.graph.DexEncodedField.isFinal():129:129 -> a
+    36:36:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):215 -> a
+    37:41:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):216:220 -> a
+    1:7:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):65:71 -> b
+    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    8:8:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):74 -> b
+    9:21:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):76:88 -> b
+    22:22:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> b
+    22:22:boolean com.android.tools.r8.graph.DexEncodedField.isStaticMember():143 -> b
+    22:22:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):92 -> b
+    23:63:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):93:133 -> b
+    64:72:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):129:137 -> b
+    73:73:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):111:111 -> b
+    74:74:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):98:98 -> b
+    1:6:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):148:153 -> e
+    7:7:com.android.tools.r8.graph.DexField getField():49:49 -> e
+    7:7:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):154 -> e
+    8:11:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):156:159 -> e
+    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> e
+    12:12:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):159 -> e
+    13:23:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):161:171 -> e
+    boolean isFieldInstruction() -> y1
+com.android.tools.r8.ir.code.FieldMemberType -> com.android.tools.r8.t.b.T:
+    com.android.tools.r8.ir.code.FieldMemberType DOUBLE -> i
+    com.android.tools.r8.ir.code.FieldMemberType[] $VALUES -> j
+    com.android.tools.r8.ir.code.FieldMemberType LONG -> h
+    com.android.tools.r8.ir.code.FieldMemberType FLOAT -> g
+    com.android.tools.r8.ir.code.FieldMemberType INT -> f
+    com.android.tools.r8.ir.code.FieldMemberType SHORT -> e
+    com.android.tools.r8.ir.code.FieldMemberType CHAR -> d
+    com.android.tools.r8.ir.code.FieldMemberType BYTE -> c
+    com.android.tools.r8.ir.code.FieldMemberType BOOLEAN -> b
+    com.android.tools.r8.ir.code.FieldMemberType OBJECT -> a
+    1:9:void <clinit>():12:20 -> <clinit>
+    10:10:void <clinit>():11:11 -> <clinit>
+    1:1:void <init>(java.lang.String,int):11:11 -> <init>
+com.android.tools.r8.ir.code.FixedRegisterValue -> com.android.tools.r8.t.b.U:
+    boolean $assertionsDisabled -> r
+    int register -> q
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int):17:19 -> <init>
+    boolean isConstant() -> L
+    boolean isFixedRegisterValue() -> N
+    boolean isDefinedByInstructionSatisfying(java.util.function.Predicate) -> b
+    1:23:com.android.tools.r8.ir.code.ValueType outType():24:46 -> b0
+    24:25:com.android.tools.r8.ir.code.ValueType outType():43:44 -> b0
+    com.android.tools.r8.ir.code.FixedRegisterValue asFixedRegisterValue() -> e
+    1:1:int getRegister():50:50 -> h0
+    1:1:java.lang.String toString():75:75 -> toString
+com.android.tools.r8.ir.code.Goto -> com.android.tools.r8.t.b.V:
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:1:void <init>():17:17 -> <init>
+    boolean isGoto() -> A1
+    1:1:int maxOutValueRegister():65:65 -> A2
+    int opcode() -> B2
+    com.android.tools.r8.ir.code.Goto asGoto() -> G
+    1:4:com.android.tools.r8.ir.code.BasicBlock getTarget():36:39 -> G2
+    boolean isAllowedAfterThrowingInstruction() -> S0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:54 -> a
+    2:3:void print(com.android.tools.r8.utils.CfgPrinter):79:80 -> a
+    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):117:117 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):85:85 -> b
+    1:4:java.lang.String toString():71:74 -> toString
+    1:1:int maxInValueRegister():59:59 -> z2
+com.android.tools.r8.ir.code.IRCode -> com.android.tools.r8.t.b.W:
+    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> c
+    com.android.tools.r8.graph.DexEncodedMethod method -> a
+    boolean $assertionsDisabled -> k
+    boolean numbered -> e
+    int nextInstructionNumber -> f
+    int usedMarkingColors -> d
+    boolean allThrowingInstructionsHavePositions -> g
+    com.android.tools.r8.ir.code.IRMetadata metadata -> h
+    com.android.tools.r8.utils.InternalOptions options -> i
+    com.android.tools.r8.origin.Origin origin -> j
+    java.util.LinkedList blocks -> b
+    1:1:void <clinit>():50:50 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod,java.util.LinkedList,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.origin.Origin):124:124 -> <init>
+    2:32:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod,java.util.LinkedList,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.origin.Origin):104:134 -> <init>
+    1:20:void traceBlocks():401:420 -> A
+    21:33:void traceBlocks():419:431 -> A
+    34:34:boolean noColorsInUse():1191:1191 -> A
+    34:34:void traceBlocks():431 -> A
+    35:35:void traceBlocks():431:431 -> A
+    1:12:boolean verifyNoImpreciseOrBottomTypes():889:900 -> B
+    1:8:boolean verifyNoNullabilityBottomTypes():904:911 -> C
+    1:12:boolean verifyNoValueWithOnlyAssumeInstructionAsUsers():915:926 -> D
+    1:14:boolean verifySplitCriticalEdges():374:387 -> E
+    1:1620:com.android.tools.r8.ir.code.InstructionIterator com.android.tools.r8.ir.code.BasicBlock.iterator(com.android.tools.r8.ir.code.Instruction):0:1619 -> a
+    1:1620:java.util.Iterator lambda$getInstructionsReachableFrom$11(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):1207 -> a
+    1621:1637:boolean controlFlowMayDependOnEnvironment(com.android.tools.r8.ir.analysis.ValueMayDependOnEnvironmentAnalysis):267:283 -> a
+    1638:1638:boolean lambda$prepareBlocksForCatchHandlers$0(com.android.tools.r8.ir.code.BasicBlock):335:335 -> a
+    1639:1643:void ensureBlockNumbering():435:439 -> a
+    1639:1643:void print(com.android.tools.r8.utils.CfgPrinter):541 -> a
+    1644:1645:void print(com.android.tools.r8.utils.CfgPrinter):542:543 -> a
+    1646:1646:void removeBlocks(java.util.Collection):479:479 -> a
+    1647:1657:boolean hasNoVerticallyMergedClasses(com.android.tools.r8.graph.AppView):558:568 -> a
+    1658:1658:boolean lambda$verifyTypes$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.BasicBlock):593:593 -> a
+    1659:1659:void lambda$consistentBlockNumbering$2(java.lang.Integer,java.lang.Long):748:748 -> a
+    1660:1666:boolean lambda$verifyNoImpreciseOrBottomTypes$3(com.android.tools.r8.ir.code.Value):891:897 -> a
+    1667:1667:boolean lambda$verifyNoImpreciseOrBottomTypes$3(com.android.tools.r8.ir.code.Value):896:896 -> a
+    1668:1671:boolean lambda$wrapSSAVerifierWithStackValueHandling$8(java.util.function.Predicate,com.android.tools.r8.ir.code.Value):933:936 -> a
+    1672:1672:java.lang.Iterable blocks(java.util.function.Predicate):956:956 -> a
+    1673:1685:java.util.List collectArguments(boolean):1020:1032 -> a
+    1673:1685:java.util.List collectArguments():1016 -> a
+    1686:1686:java.util.List collectArguments(boolean):1031:1031 -> a
+    1686:1686:java.util.List collectArguments():1016 -> a
+    1687:1687:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):1048:1048 -> a
+    1688:1689:com.android.tools.r8.ir.code.ConstNumber createIntConstant(int,com.android.tools.r8.graph.DebugLocalInfo):1070:1071 -> a
+    1690:1690:void setAllThrowingInstructionsHavePositions(boolean):1108:1108 -> a
+    1691:1694:boolean removeAllTrivialPhis(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):1138:1141 -> a
+    1695:1695:boolean isMarkingColorInUse(int):1178:1178 -> a
+    1696:1696:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1195:1195 -> a
+    1697:1705:java.util.Set getBlocksReachableFromExclusive(com.android.tools.r8.ir.code.BasicBlock):1220:1228 -> a
+    1697:1705:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1196 -> a
+    1706:1711:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1197:1202 -> a
+    1712:1712:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    1712:1712:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1202 -> a
+    1713:1719:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1203:1209 -> a
+    1720:1720:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    1720:1720:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1209 -> a
+    1721:1721:void markTransitiveSuccessors(java.util.Deque,int):1267:1267 -> a
+    1722:1722:boolean isMarkingColorInUse(int):1178:1178 -> a
+    1722:1722:void markTransitiveSuccessors(java.util.Deque,int):1267 -> a
+    1723:1724:boolean anyBlocksMarkedWithColor(int):1182:1183 -> a
+    1723:1724:void markTransitiveSuccessors(java.util.Deque,int):1267 -> a
+    1725:1734:void markTransitiveSuccessors(java.util.Deque,int):1267:1276 -> a
+    1735:1735:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1288:1288 -> a
+    1736:1736:boolean isMarkingColorInUse(int):1178:1178 -> a
+    1736:1736:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1288 -> a
+    1737:1748:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1288:1299 -> a
+    1749:1770:com.android.tools.r8.ir.code.Position findFirstNonNonePosition(com.android.tools.r8.ir.code.Position):1310:1331 -> a
+    1:2:boolean verifyTypes(com.android.tools.r8.graph.AppView):589:590 -> b
+    3:6:boolean validAssumeDynamicTypeInstructions(com.android.tools.r8.graph.AppView):598:601 -> b
+    3:6:boolean verifyTypes(com.android.tools.r8.graph.AppView):590 -> b
+    7:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):591:593 -> b
+    10:13:boolean lambda$verifyNoNullabilityBottomTypes$4(com.android.tools.r8.ir.code.Value):906:906 -> b
+    14:14:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$5(com.android.tools.r8.ir.code.Instruction):918:918 -> b
+    15:15:java.lang.Iterable instructions(java.util.function.Predicate):964:964 -> b
+    16:16:java.util.ListIterator listIterator(int):990:990 -> b
+    17:22:boolean computeAllThrowingInstructionsHavePositions():1112:1117 -> b
+    1:53:java.util.Map computeLiveAtEntrySets():149:201 -> c
+    54:74:java.util.Map computeLiveAtEntrySets():200:220 -> c
+    75:75:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> c
+    75:75:java.util.Map computeLiveAtEntrySets():224 -> c
+    76:111:java.util.Map computeLiveAtEntrySets():224:259 -> c
+    112:112:boolean com.android.tools.r8.ir.code.IRCode$LiveAtEntrySets.isEmpty():83:83 -> c
+    112:112:java.util.Map computeLiveAtEntrySets():259 -> c
+    113:115:java.util.Map computeLiveAtEntrySets():259:261 -> c
+    116:122:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$7(com.android.tools.r8.ir.code.Value):917:917 -> c
+    128:128:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$7(com.android.tools.r8.ir.code.Value):923:923 -> c
+    129:129:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$6(com.android.tools.r8.ir.code.Instruction):921:921 -> c
+    130:130:java.util.Iterator lambda$blocks$9(java.util.function.Predicate):956:956 -> c
+    131:131:void returnMarkingColor(int):1172:1172 -> c
+    132:132:boolean isMarkingColorInUse(int):1178:1178 -> c
+    132:132:void returnMarkingColor(int):1172 -> c
+    133:133:void returnMarkingColor(int):1172:1172 -> c
+    134:135:void clearMarks(int):456:457 -> c
+    134:135:void returnMarkingColor(int):1173 -> c
+    136:136:void returnMarkingColor(int):1174:1174 -> c
+    1:1:java.util.Iterator lambda$instructions$10(java.util.function.Predicate):964:964 -> d
+    2:8:java.util.List computeNormalExitBlocks():976:982 -> d
+    1:4:boolean consistentBlockNumbering():743:746 -> e
+    5:12:boolean verifySSATypeLattice(java.util.function.Predicate):942:949 -> e
+    1:1:java.util.function.Predicate wrapSSAVerifierWithStackValueHandling(java.util.function.Predicate):930:930 -> f
+    2:2:com.android.tools.r8.ir.code.ConstNumber createConstNull():1094:1094 -> f
+    3:3:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> f
+    3:3:com.android.tools.r8.ir.code.ConstNumber createConstNull():1094 -> f
+    4:4:com.android.tools.r8.ir.code.ConstNumber createConstNull():1095:1095 -> f
+    1:1:boolean doAllThrowingInstructionsHavePositions():1104:1104 -> g
+    1:1:com.android.tools.r8.ir.code.BasicBlock entryBlock():142:142 -> h
+    1:1:int getHighestBlockNumber():1084:1084 -> i
+    1:1:int getNextInstructionNumber():1012:1012 -> j
+    1:7:com.android.tools.r8.ir.code.Value getThis():1037:1043 -> k
+    1:3:java.util.Set getUnreachableBlocks():1233:1235 -> l
+    4:4:void markTransitiveSuccessors(com.android.tools.r8.ir.code.BasicBlock,int):1263:1263 -> l
+    4:4:java.util.Set getUnreachableBlocks():1235 -> l
+    5:10:java.util.Set getUnreachableBlocks():1236:1241 -> l
+    1:1:com.android.tools.r8.ir.code.InstructionIterator instructionIterator():968:968 -> m
+    1:1:java.lang.Iterable instructions():960:960 -> n
+    1:1:boolean isConsistentGraph():576:576 -> o
+    2:2:boolean noColorsInUse():1191:1191 -> o
+    2:2:boolean isConsistentGraph():576 -> o
+    3:5:boolean isConsistentGraph():576:578 -> o
+    6:21:boolean consistentPredecessorSuccessors():714:729 -> o
+    6:21:boolean isConsistentGraph():578 -> o
+    22:22:boolean isConsistentGraph():579:579 -> o
+    23:24:boolean consistentCatchHandlers():736:737 -> o
+    23:24:boolean isConsistentGraph():579 -> o
+    25:25:boolean isConsistentGraph():580:580 -> o
+    26:29:boolean consistentBlockInstructions():755:758 -> o
+    26:29:boolean isConsistentGraph():580 -> o
+    30:39:boolean com.android.tools.r8.ir.code.BasicBlock.consistentBlockInstructions(boolean,boolean):65:74 -> o
+    30:39:boolean consistentBlockInstructions():756 -> o
+    30:39:boolean isConsistentGraph():580 -> o
+    40:44:boolean com.android.tools.r8.ir.code.BasicBlock.consistentBlockInstructions(boolean,boolean):73:77 -> o
+    40:44:boolean consistentBlockInstructions():756 -> o
+    40:44:boolean isConsistentGraph():580 -> o
+    45:45:boolean isConsistentGraph():581:581 -> o
+    46:138:boolean consistentMetadata():765:857 -> o
+    46:138:boolean isConsistentGraph():581 -> o
+    139:139:boolean isConsistentGraph():582:582 -> o
+    1:2:boolean isConsistentSSA():548:549 -> p
+    3:23:boolean consistentDefUseChains():638:658 -> p
+    3:23:boolean isConsistentSSA():549 -> p
+    24:24:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> p
+    24:24:boolean consistentDefUseChains():660 -> p
+    24:24:boolean isConsistentSSA():549 -> p
+    25:37:boolean consistentDefUseChains():660:672 -> p
+    25:37:boolean isConsistentSSA():549 -> p
+    38:38:boolean verifyValue(com.android.tools.r8.ir.code.Value):680:680 -> p
+    38:38:boolean consistentDefUseChains():672 -> p
+    38:38:boolean isConsistentSSA():549 -> p
+    39:39:boolean verifyPhi(com.android.tools.r8.ir.code.Phi):685:685 -> p
+    39:39:boolean verifyValue(com.android.tools.r8.ir.code.Value):680 -> p
+    39:39:boolean consistentDefUseChains():672 -> p
+    39:39:boolean isConsistentSSA():549 -> p
+    40:43:boolean verifyDefinition(com.android.tools.r8.ir.code.Value):690:693 -> p
+    40:43:boolean verifyValue(com.android.tools.r8.ir.code.Value):680 -> p
+    40:43:boolean consistentDefUseChains():672 -> p
+    40:43:boolean isConsistentSSA():549 -> p
+    44:44:boolean verifyDefinition(com.android.tools.r8.ir.code.Value):691:691 -> p
+    44:44:boolean verifyValue(com.android.tools.r8.ir.code.Value):680 -> p
+    44:44:boolean consistentDefUseChains():672 -> p
+    44:44:boolean isConsistentSSA():549 -> p
+    45:45:boolean consistentDefUseChains():673:673 -> p
+    45:45:boolean isConsistentSSA():549 -> p
+    46:47:boolean consistentValueUses(com.android.tools.r8.ir.code.Value):698:699 -> p
+    46:47:boolean consistentDefUseChains():673 -> p
+    46:47:boolean isConsistentSSA():549 -> p
+    48:48:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> p
+    48:48:boolean consistentValueUses(com.android.tools.r8.ir.code.Value):699 -> p
+    48:48:boolean consistentDefUseChains():673 -> p
+    48:48:boolean isConsistentSSA():549 -> p
+    49:57:boolean consistentValueUses(com.android.tools.r8.ir.code.Value):699:707 -> p
+    49:57:boolean consistentDefUseChains():673 -> p
+    49:57:boolean isConsistentSSA():549 -> p
+    58:58:boolean isConsistentSSA():550:550 -> p
+    59:75:boolean validThrowingInstructions():865:881 -> p
+    59:75:boolean isConsistentSSA():550 -> p
+    76:76:boolean isConsistentSSA():551:551 -> p
+    77:88:boolean noCriticalEdges():609:620 -> p
+    77:88:boolean isConsistentSSA():551 -> p
+    89:91:boolean isConsistentSSA():551:553 -> p
+    1:1:java.util.ListIterator listIterator():986:986 -> q
+    1:1:com.android.tools.r8.ir.code.IRMetadata metadata():138:138 -> r
+    1:3:com.android.tools.r8.com.google.common.collect.ImmutableList numberInstructions():994:996 -> s
+    1:7:int numberRemainingInstructions():1002:1008 -> t
+    1:7:java.lang.String toString():446:452 -> toString
+    1:23:void prepareBlocksForCatchHandlers():304:326 -> u
+    24:24:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> u
+    24:24:void prepareBlocksForCatchHandlers():326 -> u
+    25:27:void prepareBlocksForCatchHandlers():326:328 -> u
+    28:29:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> u
+    28:29:void prepareBlocksForCatchHandlers():328 -> u
+    30:36:void prepareBlocksForCatchHandlers():329:335 -> u
+    1:1:boolean removeAllTrivialPhis():1125:1125 -> v
+    1:3:java.util.Set removeUnreachableBlocks():1246:1248 -> w
+    4:4:void markTransitiveSuccessors(com.android.tools.r8.ir.code.BasicBlock,int):1263:1263 -> w
+    4:4:java.util.Set removeUnreachableBlocks():1248 -> w
+    5:14:java.util.Set removeUnreachableBlocks():1249:1258 -> w
+    1:1:int reserveMarkingColor():1148:1148 -> x
+    2:2:boolean anyMarkingColorAvailable():1162:1162 -> x
+    2:2:int reserveMarkingColor():1148 -> x
+    3:11:int reserveMarkingColor():1148:1156 -> x
+    12:13:boolean verifyNoBlocksMarked(int):472:473 -> x
+    12:13:int reserveMarkingColor():1156 -> x
+    1:24:void splitCriticalEdges():339:362 -> y
+    25:34:void splitCriticalEdges():361:370 -> y
+    1:24:com.android.tools.r8.com.google.common.collect.ImmutableList depthFirstSorting():497:520 -> z
+    1:24:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():490 -> z
+    25:25:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():491:491 -> z
+    26:37:com.android.tools.r8.com.google.common.collect.ImmutableList reorderExceptionalBlocksLastForTesting(com.android.tools.r8.com.google.common.collect.ImmutableList):526:537 -> z
+    26:37:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():492 -> z
+com.android.tools.r8.ir.code.IRCode$BlockMarker -> com.android.tools.r8.t.b.W$a:
+    com.android.tools.r8.ir.code.BasicBlock block -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.BasicBlock):91:92 -> <init>
+com.android.tools.r8.ir.code.IRCode$LiveAtEntrySets -> com.android.tools.r8.t.b.W$b:
+    java.util.Deque liveStackValues -> c
+    java.util.Set liveValues -> a
+    java.util.Set liveLocalValues -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():54:54 -> <clinit>
+    1:5:void <init>(java.util.Set,java.util.Set,java.util.Deque):64:68 -> <init>
+    1:2:boolean equals(java.lang.Object):78:79 -> equals
+    1:1:int hashCode():73:73 -> hashCode
+com.android.tools.r8.ir.code.IRCodeInstructionIterator -> com.android.tools.r8.t.b.X:
+    java.util.ListIterator blockIterator -> a
+    com.android.tools.r8.ir.code.InstructionListIterator instructionIterator -> b
+    com.android.tools.r8.ir.code.IRCode code -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.code.IRCode):17:20 -> <init>
+    1:1:boolean hasNext():25:25 -> hasNext
+    1:1:boolean hasPrevious():43:43 -> hasPrevious
+    1:9:com.android.tools.r8.ir.code.Instruction next():30:38 -> next
+    1:9:java.lang.Object next():10 -> next
+    10:10:com.android.tools.r8.ir.code.Instruction next():34:34 -> next
+    10:10:java.lang.Object next():10 -> next
+    1:10:com.android.tools.r8.ir.code.Instruction previous():48:57 -> previous
+    11:11:com.android.tools.r8.ir.code.Instruction previous():52:52 -> previous
+com.android.tools.r8.ir.code.IRCodeInstructionListIterator -> com.android.tools.r8.t.b.Y:
+    java.util.ListIterator blockIterator -> a
+    com.android.tools.r8.ir.code.InstructionListIterator instructionIterator -> b
+    com.android.tools.r8.ir.code.IRCode code -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.code.IRCode):24:27 -> <init>
+    1:1:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):32:32 -> a
+    2:2:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):37:37 -> a
+    3:3:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):48:48 -> a
+    4:4:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):59:59 -> a
+    5:5:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):64:64 -> a
+    6:6:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):69:69 -> a
+    7:7:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):80:80 -> a
+    8:8:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):147:147 -> a
+    1:1:void add(java.lang.Object):17:17 -> add
+    2:2:void add(com.android.tools.r8.ir.code.Instruction):132:132 -> add
+    2:2:void add(java.lang.Object):17 -> add
+    1:1:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.ir.code.IRCode,int):42:42 -> b
+    1:1:void removeOrReplaceByDebugLocalRead():152:152 -> g
+    1:1:boolean hasNext():85:85 -> hasNext
+    1:1:boolean hasPrevious():103:103 -> hasPrevious
+    1:9:com.android.tools.r8.ir.code.Instruction next():90:98 -> next
+    1:9:java.lang.Object next():17 -> next
+    10:10:com.android.tools.r8.ir.code.Instruction next():94:94 -> next
+    10:10:java.lang.Object next():17 -> next
+    1:1:int nextIndex():122:122 -> nextIndex
+    1:1:java.lang.Object previous():17:17 -> previous
+    2:11:com.android.tools.r8.ir.code.Instruction previous():108:117 -> previous
+    12:12:com.android.tools.r8.ir.code.Instruction previous():112:112 -> previous
+    1:1:int previousIndex():127:127 -> previousIndex
+    1:1:void remove():137:137 -> remove
+    1:1:void set(java.lang.Object):17:17 -> set
+    2:2:void set(com.android.tools.r8.ir.code.Instruction):142:142 -> set
+    2:2:void set(java.lang.Object):17 -> set
+com.android.tools.r8.ir.code.IRCodeUtils -> com.android.tools.r8.t.b.Z:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:10:java.util.Map findUniqueStaticPuts(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.Set):25:34 -> a
+    11:37:void removeArrayAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):49:75 -> a
+    38:66:void internalRemoveInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,java.util.Deque):92:120 -> a
+    67:67:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
+    67:67:void internalRemoveInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,java.util.Deque):121 -> a
+    68:71:void internalRemoveInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,java.util.Deque):121:124 -> a
+    1:1:void removeInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):87:87 -> b
+    2:2:void removeInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):86:86 -> b
+com.android.tools.r8.ir.code.IRMetadata -> com.android.tools.r8.t.b.a0:
+    long second -> b
+    long first -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():7:7 -> <clinit>
+    1:1:void <init>():12:12 -> <init>
+    2:4:void <init>(long,long):14:16 -> <init>
+    1:1:boolean mayHaveOr():214:214 -> A
+    1:1:boolean mayHaveRem():218:218 -> B
+    1:1:boolean mayHaveShl():222:222 -> C
+    1:1:boolean mayHaveShr():226:226 -> D
+    1:1:boolean mayHaveStaticGet():230:230 -> E
+    1:1:boolean mayHaveStaticPut():234:234 -> F
+    1:1:boolean mayHaveStringSwitch():238:238 -> G
+    1:1:boolean mayHaveSub():242:242 -> H
+    1:1:boolean mayHaveUshr():246:246 -> I
+    1:1:boolean mayHaveXor():250:250 -> J
+    1:1:com.android.tools.r8.ir.code.IRMetadata unknown():20:20 -> K
+    1:3:boolean get(int):25:27 -> a
+    4:4:boolean isAnySetInSecond(long):38:38 -> a
+    4:4:boolean get(int):29 -> a
+    5:5:boolean isAnySetInFirst(long):34:34 -> a
+    6:6:void record(com.android.tools.r8.ir.code.Instruction):52:52 -> a
+    7:11:void set(int):43:47 -> a
+    7:11:void record(com.android.tools.r8.ir.code.Instruction):52 -> a
+    12:13:void merge(com.android.tools.r8.ir.code.IRMetadata):56:57 -> a
+    14:14:boolean mayHaveAdd():61:61 -> a
+    1:1:boolean mayHaveAnd():65:65 -> b
+    1:1:boolean mayHaveArithmeticOrLogicalBinop():280:280 -> c
+    2:2:boolean isAnySetInSecond(long):38:38 -> c
+    2:2:boolean mayHaveArithmeticOrLogicalBinop():280 -> c
+    3:3:boolean mayHaveArithmeticOrLogicalBinop():281:281 -> c
+    4:4:boolean mayHaveAdd():61:61 -> c
+    4:4:boolean mayHaveArithmeticOrLogicalBinop():282 -> c
+    5:5:boolean mayHaveDiv():89:89 -> c
+    5:5:boolean mayHaveArithmeticOrLogicalBinop():283 -> c
+    6:6:boolean mayHaveMul():206:206 -> c
+    6:6:boolean mayHaveArithmeticOrLogicalBinop():284 -> c
+    7:7:boolean mayHaveRem():218:218 -> c
+    7:7:boolean mayHaveArithmeticOrLogicalBinop():285 -> c
+    8:8:boolean mayHaveSub():242:242 -> c
+    8:8:boolean mayHaveArithmeticOrLogicalBinop():286 -> c
+    9:9:boolean mayHaveAnd():65:65 -> c
+    9:9:boolean mayHaveArithmeticOrLogicalBinop():287 -> c
+    10:10:boolean mayHaveOr():214:214 -> c
+    10:10:boolean mayHaveArithmeticOrLogicalBinop():288 -> c
+    11:11:boolean mayHaveShl():222:222 -> c
+    11:11:boolean mayHaveArithmeticOrLogicalBinop():289 -> c
+    12:12:boolean mayHaveShr():226:226 -> c
+    12:12:boolean mayHaveArithmeticOrLogicalBinop():290 -> c
+    13:13:boolean mayHaveUshr():246:246 -> c
+    13:13:boolean mayHaveArithmeticOrLogicalBinop():291 -> c
+    14:14:boolean mayHaveXor():250:250 -> c
+    14:14:boolean mayHaveArithmeticOrLogicalBinop():292 -> c
+    15:15:boolean mayHaveArithmeticOrLogicalBinop():281:281 -> c
+    1:1:boolean mayHaveCheckCast():69:69 -> d
+    1:1:boolean mayHaveConstNumber():73:73 -> e
+    1:1:boolean mayHaveConstString():77:77 -> f
+    1:1:boolean mayHaveDebugPosition():81:81 -> g
+    1:1:boolean mayHaveDexItemBasedConstString():85:85 -> h
+    1:1:boolean mayHaveDiv():89:89 -> i
+    1:1:boolean mayHaveInstanceGet():116:116 -> j
+    1:1:boolean mayHaveFieldGet():93 -> j
+    2:2:boolean mayHaveStaticGet():230:230 -> j
+    2:2:boolean mayHaveFieldGet():93 -> j
+    1:2:boolean mayHaveFieldInstruction():106:107 -> k
+    3:3:boolean mayHaveInstanceGet():116:116 -> k
+    3:3:boolean mayHaveFieldInstruction():108 -> k
+    4:4:boolean mayHaveInstancePut():120:120 -> k
+    4:4:boolean mayHaveFieldInstruction():109 -> k
+    5:5:boolean mayHaveStaticGet():230:230 -> k
+    5:5:boolean mayHaveFieldInstruction():110 -> k
+    6:6:boolean mayHaveStaticPut():234:234 -> k
+    6:6:boolean mayHaveFieldInstruction():111 -> k
+    7:7:boolean mayHaveFieldInstruction():107:107 -> k
+    1:1:boolean mayHaveInstanceGet():116:116 -> l
+    1:1:boolean mayHaveInstanceOf():124:124 -> m
+    1:1:boolean mayHaveInstancePut():120:120 -> n
+    1:1:boolean mayHaveIntSwitch():128:128 -> o
+    1:1:boolean mayHaveInvokeDirect():132:132 -> p
+    1:1:boolean mayHaveInvokeInterface():136:136 -> q
+    1:2:boolean mayHaveInvokeMethod():154:155 -> r
+    3:3:boolean mayHaveInvokeDirect():132:132 -> r
+    3:3:boolean mayHaveInvokeMethod():156 -> r
+    4:4:boolean mayHaveInvokeInterface():136:136 -> r
+    4:4:boolean mayHaveInvokeMethod():157 -> r
+    5:5:boolean mayHaveInvokePolymorphic():186:186 -> r
+    5:5:boolean mayHaveInvokeMethod():158 -> r
+    6:6:boolean mayHaveInvokeStatic():190:190 -> r
+    6:6:boolean mayHaveInvokeMethod():159 -> r
+    7:7:boolean mayHaveInvokeSuper():194:194 -> r
+    7:7:boolean mayHaveInvokeMethod():160 -> r
+    8:8:boolean mayHaveInvokeVirtual():198:198 -> r
+    8:8:boolean mayHaveInvokeMethod():161 -> r
+    9:9:boolean mayHaveInvokeMethod():155:155 -> r
+    1:2:boolean mayHaveInvokeMethodWithReceiver():176:177 -> s
+    3:3:boolean mayHaveInvokeDirect():132:132 -> s
+    3:3:boolean mayHaveInvokeMethodWithReceiver():178 -> s
+    4:4:boolean mayHaveInvokeInterface():136:136 -> s
+    4:4:boolean mayHaveInvokeMethodWithReceiver():179 -> s
+    5:5:boolean mayHaveInvokeSuper():194:194 -> s
+    5:5:boolean mayHaveInvokeMethodWithReceiver():180 -> s
+    6:6:boolean mayHaveInvokeVirtual():198:198 -> s
+    6:6:boolean mayHaveInvokeMethodWithReceiver():181 -> s
+    7:7:boolean mayHaveInvokeMethodWithReceiver():177:177 -> s
+    1:1:boolean mayHaveInvokePolymorphic():186:186 -> t
+    1:1:boolean mayHaveInvokeStatic():190:190 -> u
+    1:1:boolean mayHaveInvokeSuper():194:194 -> v
+    1:1:boolean mayHaveInvokeVirtual():198:198 -> w
+    1:1:boolean mayHaveMonitorInstruction():202:202 -> x
+    1:1:boolean mayHaveMul():206:206 -> y
+    1:1:boolean mayHaveNewInstance():210:210 -> z
+com.android.tools.r8.ir.code.If -> com.android.tools.r8.t.b.b0:
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.ir.code.If$Type type -> i
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.Value):73:74 -> <init>
+    3:4:void <init>(com.android.tools.r8.ir.code.If$Type,java.util.List):78:79 -> <init>
+    1:1:int maxOutValueRegister():179:179 -> A2
+    boolean isIf() -> B1
+    int opcode() -> B2
+    1:4:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock():132:135 -> F2
+    1:4:com.android.tools.r8.ir.code.BasicBlock getTrueTarget():117:120 -> G2
+    com.android.tools.r8.ir.code.If asIf() -> H
+    1:1:com.android.tools.r8.ir.code.If$Type getType():106:106 -> H2
+    1:2:void invert():110:111 -> I2
+    3:4:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):140:141 -> I2
+    3:4:void invert():112 -> I2
+    5:5:void invert():113:113 -> I2
+    1:1:boolean isZeroTest():93:93 -> J2
+    1:1:com.android.tools.r8.ir.code.Value lhs():97:97 -> K2
+    1:2:com.android.tools.r8.ir.code.Value rhs():101:102 -> L2
+    1:3:com.android.tools.r8.ir.code.BasicBlock targetFromNonNullObject():214:216 -> M2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:3:boolean verifyTypeCompatible(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.If$Type):65:67 -> a
+    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):146:146 -> a
+    5:5:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode):151:151 -> a
+    6:7:void print(com.android.tools.r8.utils.CfgPrinter):185:186 -> a
+    8:10:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(com.android.tools.r8.ir.code.ConstNumber):201:203 -> a
+    11:14:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(com.android.tools.r8.ir.code.ConstNumber,com.android.tools.r8.ir.code.ConstNumber):207:210 -> a
+    15:15:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):250:250 -> a
+    16:23:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):255:262 -> a
+    1:2:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):140:141 -> b
+    3:8:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):191:196 -> b
+    9:24:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):220:235 -> b
+    25:25:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):233:233 -> b
+    26:26:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):231:231 -> b
+    27:27:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):229:229 -> b
+    28:28:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):227:227 -> b
+    29:29:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):225:225 -> b
+    30:30:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):223:223 -> b
+    1:4:void setTrueTarget(com.android.tools.r8.ir.code.BasicBlock):124:127 -> c
+    1:8:java.lang.String toString():161:168 -> toString
+    1:1:int maxInValueRegister():174:174 -> z2
+com.android.tools.r8.ir.code.If$Type -> com.android.tools.r8.t.b.b0$a:
+    com.android.tools.r8.ir.code.If$Type GT -> c
+    com.android.tools.r8.ir.code.If$Type LE -> d
+    com.android.tools.r8.ir.code.If$Type EQ -> a
+    com.android.tools.r8.ir.code.If$Type GE -> b
+    com.android.tools.r8.ir.code.If$Type[] $VALUES -> g
+    com.android.tools.r8.ir.code.If$Type LT -> e
+    com.android.tools.r8.ir.code.If$Type NE -> f
+    1:1:void <clinit>():23:23 -> <clinit>
+    2:2:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(java.lang.String,int):22:22 -> <init>
+    1:15:com.android.tools.r8.ir.code.If$Type inverted():45:59 -> a
+    16:16:com.android.tools.r8.ir.code.If$Type inverted():55:55 -> a
+    17:17:com.android.tools.r8.ir.code.If$Type inverted():53:53 -> a
+    18:18:com.android.tools.r8.ir.code.If$Type inverted():51:51 -> a
+    19:27:com.android.tools.r8.ir.code.If$Type inverted():49:57 -> a
+    28:28:com.android.tools.r8.ir.code.If$Type inverted():47:47 -> a
+    1:1:com.android.tools.r8.ir.code.If$Type[] values():22:22 -> b
+com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction -> com.android.tools.r8.t.b.c0:
+    void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver) -> a
+    com.android.tools.r8.ir.code.MemberType getMemberType() -> e
+com.android.tools.r8.ir.code.Inc -> com.android.tools.r8.t.b.d0:
+    boolean $assertionsDisabled -> i
+    int increment -> h
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,int):25:27 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:1:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):70:70 -> a
+    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
+    3:3:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):81:81 -> a
+    4:14:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):86:96 -> a
+    1:2:void addInValue(com.android.tools.r8.ir.code.Value):43:44 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> b
+    1:1:java.lang.String toString():102:102 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.InstanceGet -> com.android.tools.r8.t.b.e0:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():34:34 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):37:37 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    boolean isInstanceGet() -> C1
+    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():207:207 -> D0
+    boolean throwsOnNullInput() -> E2
+    1:1:com.android.tools.r8.ir.code.Value value():66:66 -> H2
+    com.android.tools.r8.ir.code.InstanceGet asInstanceGet() -> I
+    1:2:com.android.tools.r8.ir.code.Value object():60:61 -> I2
+    boolean instructionTypeCanThrow() -> Q0
+    1:1:boolean outTypeKnownToBeBoolean(java.util.Set):47:47 -> a
+    2:2:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):52:52 -> a
+    3:3:com.android.tools.r8.ir.code.Value dest():56:56 -> a
+    3:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78 -> a
+    4:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78:107 -> a
+    34:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):104:104 -> a
+    35:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):101:101 -> a
+    36:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):98:98 -> a
+    37:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):95:95 -> a
+    38:38:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):92:92 -> a
+    39:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):89:89 -> a
+    40:64:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):85:109 -> a
+    65:67:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):71:73 -> a
+    68:68:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129:129 -> a
+    69:69:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):119:119 -> a
+    69:69:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129 -> a
+    70:70:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):154:154 -> a
+    71:71:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):174:174 -> a
+    72:72:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):179:179 -> a
+    73:74:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):184:185 -> a
+    75:78:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):190:190 -> a
+    79:79:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):197:197 -> a
+    80:80:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):217:217 -> a
+    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):144:148 -> b
+    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):119:119 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:java.lang.String toString():169:169 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.InstanceOf -> com.android.tools.r8.t.b.f0:
+    com.android.tools.r8.graph.DexType type -> h
+    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):24:25 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    boolean isInstanceOf() -> D1
+    1:1:com.android.tools.r8.graph.DexType type():39:39 -> F2
+    1:1:com.android.tools.r8.ir.code.Value value():47:47 -> G2
+    com.android.tools.r8.ir.code.InstanceOf asInstanceOf() -> J
+    boolean hasInvariantOutType() -> K0
+    boolean instructionTypeCanThrow() -> Q0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean outTypeKnownToBeBoolean(java.util.Set) -> a
+    1:1:com.android.tools.r8.ir.code.Value dest():43:43 -> a
+    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52 -> a
+    2:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52:54 -> a
+    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):90:90 -> a
+    6:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):95:95 -> a
+    7:8:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):105:106 -> a
+    9:9:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):111:111 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):74:74 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.InstancePut -> com.android.tools.r8.t.b.g0:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():34:34 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):37:39 -> <init>
+    1:1:int maxOutValueRegister():171:171 -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():220:220 -> D0
+    boolean isInstancePut() -> E1
+    boolean throwsOnNullInput() -> E2
+    1:1:com.android.tools.r8.ir.code.Value value():58:58 -> H2
+    1:1:com.android.tools.r8.ir.code.Value object():53:53 -> I2
+    com.android.tools.r8.ir.code.InstancePut asInstancePut() -> K
+    boolean instructionTypeCanThrow() -> Q0
+    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):49:49 -> a
+    2:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:92 -> a
+    31:31:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):89:89 -> a
+    32:32:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
+    33:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:83 -> a
+    34:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:80 -> a
+    35:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:77 -> a
+    36:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):74:74 -> a
+    37:61:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:94 -> a
+    62:63:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129:130 -> a
+    64:68:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):137:141 -> a
+    69:69:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
+    69:69:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):141 -> a
+    70:75:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):142:147 -> a
+    76:76:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):178:178 -> a
+    77:77:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):198:198 -> a
+    78:81:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):203:203 -> a
+    82:82:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):210:210 -> a
+    83:83:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):230:230 -> a
+    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):157:161 -> b
+    1:11:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):104:114 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:java.lang.String toString():193:193 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Instruction -> com.android.tools.r8.t.b.h0:
+    java.util.List inValues -> b
+    java.util.LinkedHashSet debugValues -> e
+    boolean $assertionsDisabled -> g
+    int number -> d
+    com.android.tools.r8.ir.code.Value outValue -> a
+    com.android.tools.r8.ir.code.BasicBlock block -> c
+    com.android.tools.r8.ir.code.Position position -> f
+    1:1:void <clinit>():45:45 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value):54:54 -> <init>
+    2:10:void <init>(com.android.tools.r8.ir.code.Value):47:55 -> <init>
+    11:11:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):58:58 -> <init>
+    12:25:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):47:60 -> <init>
+    26:26:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):63:63 -> <init>
+    27:49:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):47:69 -> <init>
+    com.android.tools.r8.ir.code.DebugLocalsChange asDebugLocalsChange() -> A
+    1:5:void clearDebugValues():260:264 -> A0
+    boolean isGoto() -> A1
+    int maxOutValueRegister() -> A2
+    com.android.tools.r8.ir.code.DebugPosition asDebugPosition() -> B
+    1:1:java.util.Set getDebugValues():624:624 -> B0
+    boolean isIf() -> B1
+    int opcode() -> B2
+    com.android.tools.r8.ir.code.DexItemBasedConstString asDexItemBasedConstString() -> C
+    1:1:java.lang.String getInstructionName():309:309 -> C0
+    boolean isInstanceGet() -> C1
+    1:1:com.android.tools.r8.ir.code.ValueType outType():178:178 -> C2
+    com.android.tools.r8.ir.code.Div asDiv() -> D
+    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():1395:1395 -> D0
+    boolean isInstanceOf() -> D1
+    1:1:com.android.tools.r8.ir.code.Value outValue():122:122 -> D2
+    com.android.tools.r8.ir.code.Dup asDup() -> E
+    1:1:int getNumber():358:358 -> E0
+    boolean isInstancePut() -> E1
+    boolean throwsOnNullInput() -> E2
+    com.android.tools.r8.ir.code.FieldInstruction asFieldInstruction() -> F
+    com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction() -> F0
+    boolean isIntSwitch() -> F1
+    com.android.tools.r8.ir.code.Goto asGoto() -> G
+    1:2:com.android.tools.r8.ir.code.Position getPosition():81:82 -> G0
+    boolean isInvoke() -> G1
+    com.android.tools.r8.ir.code.If asIf() -> H
+    1:1:java.lang.String getPositionAsString():91:91 -> H0
+    boolean isInvokeCustom() -> H1
+    com.android.tools.r8.ir.code.InstanceGet asInstanceGet() -> I
+    1:1:boolean hasBlock():305:305 -> I0
+    boolean isInvokeDirect() -> I1
+    com.android.tools.r8.ir.code.InstanceOf asInstanceOf() -> J
+    1:1:java.util.List inValues():95:95 -> J0
+    1:1:boolean hasInValueWithLocalInfo():109 -> J0
+    2:3:boolean hasInValueWithLocalInfo():109:110 -> J0
+    boolean isInvokeInterface() -> J1
+    com.android.tools.r8.ir.code.InstancePut asInstancePut() -> K
+    boolean hasInvariantOutType() -> K0
+    boolean isInvokeMethod() -> K1
+    com.android.tools.r8.ir.code.IntSwitch asIntSwitch() -> L
+    1:1:boolean hasOutValue():118:118 -> L0
+    1:1:boolean isInvokeMethodWithDynamicDispatch():1154:1154 -> L1
+    com.android.tools.r8.ir.code.Invoke asInvoke() -> M
+    1:1:boolean hasPosition():77:77 -> M0
+    boolean isInvokeMethodWithReceiver() -> M1
+    com.android.tools.r8.ir.code.InvokeCustom asInvokeCustom() -> N
+    1:1:java.util.List inValues():95:95 -> N0
+    boolean isInvokeMultiNewArray() -> N1
+    com.android.tools.r8.ir.code.InvokeDirect asInvokeDirect() -> O
+    1:1:boolean instructionInstanceCanThrow():548:548 -> O0
+    boolean isInvokeNewArray() -> O1
+    com.android.tools.r8.ir.code.InvokeInterface asInvokeInterface() -> P
+    boolean instructionTypeCanBeCanonicalized() -> P0
+    boolean isInvokePolymorphic() -> P1
+    com.android.tools.r8.ir.code.InvokeMethod asInvokeMethod() -> Q
+    boolean instructionTypeCanThrow() -> Q0
+    boolean isInvokeStatic() -> Q1
+    com.android.tools.r8.ir.code.InvokeMethodWithReceiver asInvokeMethodWithReceiver() -> R
+    boolean isAdd() -> R0
+    boolean isInvokeSuper() -> R1
+    com.android.tools.r8.ir.code.InvokeMultiNewArray asInvokeMultiNewArray() -> S
+    boolean isAllowedAfterThrowingInstruction() -> S0
+    boolean isInvokeVirtual() -> S1
+    com.android.tools.r8.ir.code.InvokeNewArray asInvokeNewArray() -> T
+    boolean isAnd() -> T0
+    boolean isJumpInstruction() -> T1
+    com.android.tools.r8.ir.code.InvokePolymorphic asInvokePolymorphic() -> U
+    boolean isArgument() -> U0
+    boolean isLoad() -> U1
+    com.android.tools.r8.ir.code.InvokeStatic asInvokeStatic() -> V
+    boolean isArithmeticBinop() -> V0
+    boolean isLogicalBinop() -> V1
+    com.android.tools.r8.ir.code.InvokeSuper asInvokeSuper() -> W
+    boolean isArrayGet() -> W0
+    boolean isMonitor() -> W1
+    com.android.tools.r8.ir.code.InvokeVirtual asInvokeVirtual() -> X
+    boolean isArrayLength() -> X0
+    boolean isMonitorEnter() -> X1
+    com.android.tools.r8.ir.code.JumpInstruction asJumpInstruction() -> Y
+    boolean isArrayPut() -> Y0
+    boolean isMove() -> Y1
+    com.android.tools.r8.ir.code.Load asLoad() -> Z
+    boolean isAssume() -> Z0
+    boolean isMoveException() -> Z1
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
+    void buildDex(com.android.tools.r8.ir.conversion.DexBuilder) -> a
+    boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value) -> a
+    boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption) -> a
+    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType) -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator) -> a
+    boolean outTypeKnownToBeBoolean(java.util.Set) -> a
+    boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory) -> a
+    1:2:void setPosition(com.android.tools.r8.ir.code.Position):86:87 -> a
+    3:4:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):144:145 -> a
+    5:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():150:151 -> a
+    7:12:void addDebugValue(com.android.tools.r8.ir.code.Value):157:162 -> a
+    13:19:void clearUserInfo(com.android.tools.r8.ir.code.Instruction):167:173 -> a
+    20:23:void replaceValue(int,com.android.tools.r8.ir.code.Value):195:198 -> a
+    24:33:void replaceDebugValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):202:211 -> a
+    34:40:com.android.tools.r8.ir.code.Value removeDebugValue(com.android.tools.r8.graph.DebugLocalInfo):245:251 -> a
+    41:42:void setBlock(com.android.tools.r8.ir.code.BasicBlock):281:282 -> a
+    43:43:void print(com.android.tools.r8.utils.CfgPrinter):333:333 -> a
+    44:64:java.lang.String com.android.tools.r8.utils.CfgPrinter.makeUnusedValue():0:20 -> a
+    44:64:void print(com.android.tools.r8.utils.CfgPrinter):334 -> a
+    65:76:void print(com.android.tools.r8.utils.CfgPrinter):336:347 -> a
+    77:78:void setNumber(int):362:363 -> a
+    79:88:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):468:477 -> a
+    89:90:boolean identicalNonValueParts(com.android.tools.r8.ir.code.Instruction):376:377 -> a
+    89:90:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):474 -> a
+    91:91:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):480:480 -> a
+    92:95:boolean com.android.tools.r8.ir.code.InvokeDirect.sameConstructorReceiverValue(com.android.tools.r8.ir.code.Invoke):102:105 -> a
+    92:95:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):480 -> a
+    96:97:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):483:484 -> a
+    98:99:int getNumber():358:358 -> a
+    98:99:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):488 -> a
+    100:132:boolean identicalOutputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):432:464 -> a
+    100:132:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):487 -> a
+    133:142:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):491:500 -> a
+    143:144:int getNumber():358:358 -> a
+    143:144:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):501 -> a
+    145:180:boolean identicalInputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):387:422 -> a
+    145:180:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):501 -> a
+    181:197:boolean identicalInputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):411:427 -> a
+    181:197:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):501 -> a
+    198:199:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):507:508 -> a
+    200:200:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):515:515 -> a
+    201:202:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.Value.outType():846:846 -> a
+    201:202:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):515 -> a
+    203:209:boolean identicalStackValuesPair(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.StackValues):519:525 -> a
+    210:210:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):570:570 -> a
+    211:212:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):1331:1332 -> a
+    213:216:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):1338:1341 -> a
+    217:219:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):1346:1348 -> a
+    220:226:boolean verifyValidPositionInfo(boolean):1415:1421 -> a
+    227:227:boolean verifyValidPositionInfo(boolean):1417:1417 -> a
+    com.android.tools.r8.ir.code.LogicalBinop asLogicalBinop() -> a0
+    boolean isAssumeDynamicType() -> a1
+    boolean isMul() -> a2
+    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
+    1:4:void addInValue(com.android.tools.r8.ir.code.Value):100:103 -> b
+    5:8:void replaceValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):186:189 -> b
+    9:9:void printLIR(com.android.tools.r8.utils.CfgPrinter):354:354 -> b
+    10:10:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):563:563 -> b
+    11:22:boolean verifyTypes(com.android.tools.r8.graph.AppView):1353:1364 -> b
+    com.android.tools.r8.ir.code.Monitor asMonitor() -> b0
+    boolean isAssumeNonNull() -> b1
+    boolean isNeg() -> b2
+    boolean needsValueInRegister(com.android.tools.r8.ir.code.Value) -> c
+    1:7:void moveDebugValues(com.android.tools.r8.ir.code.Instruction):217:223 -> c
+    8:8:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):552:552 -> c
+    9:9:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():620:620 -> c
+    com.android.tools.r8.ir.code.Move asMove() -> c0
+    boolean isBinop() -> c1
+    boolean isNewArrayEmpty() -> c2
+    com.android.tools.r8.ir.code.Instruction asInstruction() -> d
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:9:void removeDebugValue(com.android.tools.r8.ir.code.Value):233:241 -> d
+    com.android.tools.r8.ir.code.MoveException asMoveException() -> d0
+    boolean isCheckCast() -> d1
+    boolean isNewArrayFilledData() -> d2
+    1:4:void setOutValue(com.android.tools.r8.ir.code.Value):126:129 -> e
+    5:9:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):578:582 -> e
+    com.android.tools.r8.ir.code.Mul asMul() -> e0
+    boolean isCmp() -> e1
+    boolean isNewInstance() -> e2
+    1:5:com.android.tools.r8.ir.code.Value swapOutValue(com.android.tools.r8.ir.code.Value):134:138 -> f
+    com.android.tools.r8.ir.code.Neg asNeg() -> f0
+    boolean isConstClass() -> f1
+    boolean isNot() -> f2
+    1:2:com.android.tools.r8.ir.code.BasicBlock getBlock():273:274 -> g
+    com.android.tools.r8.ir.code.NewArrayEmpty asNewArrayEmpty() -> g0
+    boolean isConstInstruction() -> g1
+    boolean isNumberConversion() -> g2
+    com.android.tools.r8.ir.code.Add asAdd() -> h
+    com.android.tools.r8.ir.code.NewArrayFilledData asNewArrayFilledData() -> h0
+    boolean isConstMethodHandle() -> h1
+    boolean isOr() -> h2
+    com.android.tools.r8.ir.code.And asAnd() -> i
+    com.android.tools.r8.ir.code.NewInstance asNewInstance() -> i0
+    boolean isConstMethodType() -> i1
+    boolean isOutConstant() -> i2
+    com.android.tools.r8.ir.code.Argument asArgument() -> j
+    com.android.tools.r8.ir.code.Not asNot() -> j0
+    boolean isConstNumber() -> j1
+    boolean isPop() -> j2
+    com.android.tools.r8.ir.code.ArithmeticBinop asArithmeticBinop() -> k
+    com.android.tools.r8.ir.code.NumberConversion asNumberConversion() -> k0
+    boolean isConstString() -> k1
+    boolean isRem() -> k2
+    com.android.tools.r8.ir.code.ArrayGet asArrayGet() -> l
+    com.android.tools.r8.ir.code.Or asOr() -> l0
+    1:4:boolean isCreatingArray():1310:1313 -> l1
+    boolean isReturn() -> l2
+    com.android.tools.r8.ir.code.ArrayLength asArrayLength() -> m
+    com.android.tools.r8.ir.code.Rem asRem() -> m0
+    1:1:boolean isCreatingInstanceOrArray():1317:1317 -> m1
+    boolean isShl() -> m2
+    com.android.tools.r8.ir.code.ArrayPut asArrayPut() -> n
+    com.android.tools.r8.ir.code.Return asReturn() -> n0
+    1:5:boolean isDebugInstruction():1114:1118 -> n1
+    boolean isShr() -> n2
+    com.android.tools.r8.ir.code.Assume asAssume() -> o
+    com.android.tools.r8.ir.code.Shl asShl() -> o0
+    boolean isDebugLocalRead() -> o1
+    boolean isStaticGet() -> o2
+    com.android.tools.r8.ir.code.Assume asAssumeDynamicType() -> p
+    com.android.tools.r8.ir.code.Shr asShr() -> p0
+    boolean isDebugLocalUninitialized() -> p1
+    boolean isStaticPut() -> p2
+    com.android.tools.r8.ir.code.Assume asAssumeNonNull() -> q
+    com.android.tools.r8.ir.code.StaticGet asStaticGet() -> q0
+    boolean isDebugLocalWrite() -> q1
+    boolean isStore() -> q2
+    com.android.tools.r8.ir.code.Binop asBinop() -> r
+    com.android.tools.r8.ir.code.StaticPut asStaticPut() -> r0
+    boolean isDebugLocalsChange() -> r1
+    boolean isStringSwitch() -> r2
+    com.android.tools.r8.ir.code.CheckCast asCheckCast() -> s
+    com.android.tools.r8.ir.code.Store asStore() -> s0
+    boolean isDebugPosition() -> s1
+    boolean isSub() -> s2
+    com.android.tools.r8.ir.code.Cmp asCmp() -> t
+    com.android.tools.r8.ir.code.StringSwitch asStringSwitch() -> t0
+    boolean isDexItemBasedConstString() -> t1
+    boolean isSwap() -> t2
+    1:14:java.lang.String toString():314:327 -> toString
+    com.android.tools.r8.ir.code.ConstClass asConstClass() -> u
+    com.android.tools.r8.ir.code.Sub asSub() -> u0
+    boolean isDiv() -> u1
+    boolean isSwitch() -> u2
+    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction() -> v
+    com.android.tools.r8.ir.code.Switch asSwitch() -> v0
+    boolean isDup() -> v1
+    boolean isThrow() -> v2
+    com.android.tools.r8.ir.code.ConstMethodHandle asConstMethodHandle() -> w
+    com.android.tools.r8.ir.code.Throw asThrow() -> w0
+    boolean isDup2() -> w1
+    boolean isUnop() -> w2
+    com.android.tools.r8.ir.code.ConstMethodType asConstMethodType() -> x
+    com.android.tools.r8.ir.code.Ushr asUshr() -> x0
+    1:1:boolean isFieldGet():886:886 -> x1
+    boolean isUshr() -> x2
+    com.android.tools.r8.ir.code.ConstNumber asConstNumber() -> y
+    com.android.tools.r8.ir.code.Xor asXor() -> y0
+    boolean isFieldInstruction() -> y1
+    boolean isXor() -> y2
+    com.android.tools.r8.ir.code.ConstString asConstString() -> z
+    1:2:void clearBlock():289:290 -> z0
+    1:1:boolean isFieldPut():890:890 -> z1
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.InstructionIterator -> com.android.tools.r8.t.b.i0:
+    1:3:com.android.tools.r8.ir.code.Instruction peekNext():30:32 -> d
+    1:3:com.android.tools.r8.ir.code.Instruction peekPrevious():45:47 -> h
+    1:1:void remove():15:15 -> remove
+com.android.tools.r8.ir.code.InstructionListIterator -> com.android.tools.r8.t.b.j0:
+    com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType) -> a
+    com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int) -> a
+    com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions) -> a
+    void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set) -> a
+    void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set) -> a
+    void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set) -> a
+    void setInsertionPosition(com.android.tools.r8.ir.code.Position) -> a
+    com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator) -> a
+    com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator) -> a
+    1:1:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    2:2:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode):111:111 -> a
+    3:3:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int):138:138 -> a
+    4:6:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode):186:188 -> a
+    void replaceCurrentInstructionWithConstInt(com.android.tools.r8.ir.code.IRCode,int) -> b
+    1:3:java.lang.Object com.android.tools.r8.ir.code.PreviousUntilIterator.previousUntil(java.util.function.Predicate):18:20 -> b
+    1:3:java.lang.Object com.android.tools.r8.ir.code.PreviousUntilIterator.previousUntil(java.util.function.Predicate):0 -> b
+    void removeOrReplaceByDebugLocalRead() -> g
+    1:1:void removeInstructionIgnoreOutValue():50:50 -> j
+com.android.tools.r8.ir.code.InstructionOrPhi -> com.android.tools.r8.t.b.k0:
+    boolean isPhi() -> b
+    com.android.tools.r8.ir.code.Instruction asInstruction() -> d
+    com.android.tools.r8.ir.code.Phi asPhi() -> f
+    com.android.tools.r8.ir.code.BasicBlock getBlock() -> g
+com.android.tools.r8.ir.code.IntSwitch -> com.android.tools.r8.t.b.l0:
+    boolean $assertionsDisabled -> m
+    int[] keys -> l
+    1:1:void <clinit>():27:27 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.Value,int[],int[],int):32:34 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    boolean isIntSwitch() -> F1
+    1:7:boolean valid():55:61 -> J2
+    com.android.tools.r8.ir.code.IntSwitch asIntSwitch() -> L
+    1:1:int getFirstKey():177:177 -> L2
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():214:215 -> M2
+    3:3:int getKey(int):206:206 -> M2
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():216 -> M2
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():216:216 -> M2
+    1:1:int[] getKeys():210:210 -> N2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:1:void forEachCase(com.android.tools.r8.utils.IntObjConsumer):48:48 -> a
+    2:2:int getKey(int):206:206 -> a
+    2:2:void forEachCase(com.android.tools.r8.utils.IntObjConsumer):49 -> a
+    3:3:void forEachCase(com.android.tools.r8.utils.IntObjConsumer):49:49 -> a
+    4:4:long numberOfTargetsIfPacked(int[]):68:68 -> a
+    5:5:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,long):79:79 -> a
+    6:6:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):143:143 -> a
+    6:6:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):84 -> a
+    7:7:int baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):114:114 -> a
+    7:7:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):84 -> a
+    8:8:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,int[]):73:73 -> a
+    8:8:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):86 -> a
+    9:9:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):87:87 -> a
+    10:10:int basePackedSize(com.android.tools.r8.utils.InternalOutputMode):103:103 -> a
+    10:10:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):88 -> a
+    11:11:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):93:93 -> a
+    12:12:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode):159:159 -> a
+    12:12:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
+    13:13:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,int[]):73:73 -> a
+    13:13:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode):159 -> a
+    13:13:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
+    14:14:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode):164:164 -> a
+    14:14:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
+    15:15:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode):169:169 -> a
+    15:15:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
+    16:16:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):143:143 -> a
+    16:16:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode):169 -> a
+    16:16:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
+    17:21:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):197:201 -> a
+    22:48:com.android.tools.r8.code.Nop buildPayload(int[],int,com.android.tools.r8.utils.InternalOutputMode):222:248 -> a
+    49:52:void print(com.android.tools.r8.utils.CfgPrinter):278:281 -> a
+    53:53:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):287:287 -> a
+    54:75:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):292:313 -> a
+    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
+    1:1:long estimatedSparseSize(com.android.tools.r8.utils.InternalOutputMode,long):97:97 -> b
+    2:2:int baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):114:114 -> b
+    2:2:long estimatedSparseSize(com.android.tools.r8.utils.InternalOutputMode,long):97 -> b
+    3:3:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):136:136 -> b
+    4:4:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,int[]):73:73 -> b
+    4:4:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):136 -> b
+    5:7:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):136:138 -> b
+    1:2:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,long):124:125 -> c
+    1:1:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,long):148:148 -> d
+    1:1:int getKey(int):206:206 -> e
+    1:4:java.lang.String toString():264:267 -> toString
+    5:5:int getKey(int):206:206 -> toString
+    5:5:java.lang.String toString():268 -> toString
+    6:11:java.lang.String toString():268:273 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Invoke -> com.android.tools.r8.t.b.m0:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):61:61 -> <init>
+    int maxOutValueRegister() -> A2
+    1:1:java.lang.String getInstructionName():269:269 -> C0
+    1:1:java.util.List arguments():103:103 -> F2
+    boolean isInvoke() -> G1
+    1:1:java.util.List arguments():103:103 -> G2
+    1:1:boolean argumentsAreConsecutiveInputArguments():222 -> G2
+    2:2:boolean argumentsAreConsecutiveInputArguments():222:222 -> G2
+    3:3:java.util.List arguments():103:103 -> G2
+    3:3:boolean argumentsAreConsecutiveInputArguments():225 -> G2
+    4:5:boolean argumentsAreConsecutiveInputArguments():225:226 -> G2
+    6:6:java.util.List arguments():103:103 -> G2
+    6:6:boolean argumentsAreConsecutiveInputArguments():229 -> G2
+    7:7:boolean argumentsAreConsecutiveInputArguments():229:229 -> G2
+    8:8:java.util.List arguments():103:103 -> G2
+    8:8:boolean argumentsAreConsecutiveInputArguments():230 -> G2
+    9:10:boolean argumentsAreConsecutiveInputArguments():230:231 -> G2
+    com.android.tools.r8.graph.DexType getReturnType() -> H2
+    com.android.tools.r8.ir.code.Invoke$Type getType() -> I2
+    java.lang.String getTypeString() -> J2
+    1:1:int requiredArgumentRegisters():108:108 -> K2
+    2:2:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> K2
+    2:2:int requiredArgumentRegisters():109 -> K2
+    com.android.tools.r8.ir.code.Invoke asInvoke() -> M
+    boolean instructionTypeCanThrow() -> Q0
+    1:21:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):71:91 -> a
+    22:22:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):89:89 -> a
+    23:23:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):87:87 -> a
+    24:24:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):85:85 -> a
+    25:25:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):83:83 -> a
+    26:26:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):79:79 -> a
+    27:27:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):75:75 -> a
+    28:36:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):73:81 -> a
+    37:37:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):77:77 -> a
+    38:38:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):115:115 -> a
+    39:39:java.util.List arguments():103:103 -> a
+    39:39:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):116 -> a
+    40:40:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):116:116 -> a
+    41:41:java.util.List arguments():103:103 -> a
+    41:41:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):122 -> a
+    42:42:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):122:122 -> a
+    43:43:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):128:128 -> a
+    44:44:java.util.List arguments():103:103 -> a
+    44:44:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):130 -> a
+    45:54:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):130:139 -> a
+    55:55:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> a
+    55:55:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):140 -> a
+    56:58:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):141:143 -> a
+    59:59:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> a
+    59:59:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):143 -> a
+    60:60:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):143:143 -> a
+    61:61:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> a
+    61:61:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):144 -> a
+    62:63:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):145:146 -> a
+    64:77:void addInvokeAndMoveResult(com.android.tools.r8.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):165:178 -> a
+    78:82:void addInvokeAndMoveResult(com.android.tools.r8.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):176:180 -> a
+    83:96:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):186:199 -> a
+    97:103:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):197:203 -> a
+    104:108:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):284:288 -> a
+    109:109:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):286:286 -> a
+    110:110:boolean outTypeKnownToBeBoolean(java.util.Set):293:293 -> a
+    1:1:java.util.List arguments():103:103 -> b
+    1:1:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):153 -> b
+    2:3:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):153:154 -> b
+    4:4:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> b
+    4:4:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):154 -> b
+    5:5:java.util.List arguments():103:103 -> b
+    5:5:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):155 -> b
+    6:6:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):155:155 -> b
+    7:7:java.util.List arguments():103:103 -> b
+    7:7:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):156 -> b
+    8:9:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):156:157 -> b
+    10:10:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> b
+    10:10:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):158 -> b
+    1:1:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):240:240 -> c
+    2:2:java.util.List arguments():103:103 -> c
+    2:2:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):247 -> c
+    3:10:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):247:254 -> c
+    11:11:java.util.List arguments():103:103 -> c
+    11:11:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):255 -> c
+    12:13:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):255:256 -> c
+    1:1:java.util.List arguments():103:103 -> z2
+    1:1:int maxInValueRegister():213 -> z2
+    2:4:int maxInValueRegister():213:215 -> z2
+com.android.tools.r8.ir.code.Invoke$Type -> com.android.tools.r8.t.b.m0$a:
+    com.android.tools.r8.ir.code.Invoke$Type NEW_ARRAY -> f
+    com.android.tools.r8.ir.code.Invoke$Type MULTI_NEW_ARRAY -> g
+    com.android.tools.r8.ir.code.Invoke$Type[] $VALUES -> j
+    com.android.tools.r8.ir.code.Invoke$Type CUSTOM -> h
+    com.android.tools.r8.ir.code.Invoke$Type POLYMORPHIC -> i
+    com.android.tools.r8.ir.code.Invoke$Type INTERFACE -> b
+    com.android.tools.r8.ir.code.Invoke$Type STATIC -> c
+    com.android.tools.r8.ir.code.Invoke$Type SUPER -> d
+    com.android.tools.r8.ir.code.Invoke$Type VIRTUAL -> e
+    com.android.tools.r8.ir.code.Invoke$Type DIRECT -> a
+    1:9:void <clinit>():27:35 -> <clinit>
+    10:10:void <clinit>():26:26 -> <clinit>
+    1:1:void <init>(java.lang.String,int):26:26 -> <init>
+    1:1:com.android.tools.r8.ir.code.Invoke$Type[] values():26:26 -> a
+    2:18:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):38:54 -> a
+    19:19:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):52:52 -> a
+    20:20:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):50:50 -> a
+    21:24:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):44:47 -> a
+    25:25:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):42:42 -> a
+    26:26:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):40:40 -> a
+com.android.tools.r8.ir.code.InvokeCustom -> com.android.tools.r8.t.b.n0:
+    com.android.tools.r8.graph.DexCallSite callSite -> i
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():25:25 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.ir.code.Value,java.util.List):30:32 -> <init>
+    int opcode() -> B2
+    boolean isInvokeCustom() -> H1
+    1:1:com.android.tools.r8.graph.DexType getReturnType():101:101 -> H2
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():110:110 -> I2
+    java.lang.String getTypeString() -> J2
+    boolean hasInvariantOutType() -> K0
+    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> L2
+    com.android.tools.r8.ir.code.InvokeCustom asInvokeCustom() -> N
+    1:170:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forInvokeCustom():0:169 -> a
+    1:170:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):170 -> a
+    171:199:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):66:94 -> a
+    200:212:boolean verifyLambdaInterfaces(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,java.util.Set,com.android.tools.r8.graph.DexType):47:59 -> a
+    200:212:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):94 -> a
+    213:213:boolean verifyLambdaInterfaces(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,java.util.Set,com.android.tools.r8.graph.DexType):58:58 -> a
+    213:213:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):94 -> a
+    214:214:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):96:96 -> a
+    215:215:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
+    215:215:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):196 -> a
+    216:216:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):196:196 -> a
+    217:222:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):126:131 -> a
+    223:223:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
+    223:223:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):131 -> a
+    224:228:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):131:135 -> a
+    229:229:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
+    229:229:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):137 -> a
+    230:237:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):137:144 -> a
+    238:238:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149:149 -> a
+    239:239:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
+    239:239:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149 -> a
+    240:240:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149:149 -> a
+    241:241:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):177:177 -> a
+    242:242:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
+    242:242:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):178 -> a
+    243:246:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):178:181 -> a
+    247:247:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
+    247:247:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):182 -> a
+    248:251:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):182:185 -> a
+    252:252:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeCustom):179:179 -> a
+    252:252:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):42 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):154:154 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:java.lang.String toString():120:120 -> toString
+com.android.tools.r8.ir.code.InvokeDirect -> com.android.tools.r8.t.b.o0:
+    boolean $assertionsDisabled -> m
+    boolean itf -> l
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):41:44 -> <init>
+    int opcode() -> B2
+    boolean isInvokeDirect() -> I1
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():64:64 -> I2
+    java.lang.String getTypeString() -> J2
+    1:1:boolean isInterface():54:54 -> N2
+    com.android.tools.r8.ir.code.InvokeDirect asInvokeDirect() -> O
+    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:93 -> a
+    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):141:141 -> a
+    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):146:146 -> a
+    22:22:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):156:156 -> a
+    23:23:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeDirect):184:184 -> a
+    23:23:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):59 -> a
+    24:65:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):224:265 -> a
+    66:66:boolean lambda$canBeDeadCode$0(java.util.List,com.android.tools.r8.ir.code.Instruction):259:259 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):110:110 -> b
+    1:37:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):162:198 -> c
+    38:38:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    38:38:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):198 -> c
+    39:55:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):200:216 -> c
+    1:14:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):275:288 -> e
+    1:6:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):125:130 -> f
+    7:13:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):129:135 -> f
+com.android.tools.r8.ir.code.InvokeInterface -> com.android.tools.r8.t.b.p0:
+    boolean $assertionsDisabled -> l
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):26:26 -> <init>
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():41:41 -> I2
+    boolean isInvokeInterface() -> J1
+    java.lang.String getTypeString() -> J2
+    com.android.tools.r8.ir.code.InvokeInterface asInvokeInterface() -> P
+    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52:70 -> a
+    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):105:105 -> a
+    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):110:110 -> a
+    22:22:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):120:120 -> a
+    23:23:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeInterface):189:189 -> a
+    23:23:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):75:75 -> b
+    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):90:97 -> f
+    9:9:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):93:93 -> f
+com.android.tools.r8.ir.code.InvokeMethod -> com.android.tools.r8.t.b.q0:
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.graph.DexMethod method -> i
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:38 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getReturnType():43:43 -> H2
+    boolean hasInvariantOutType() -> K0
+    boolean isInvokeMethod() -> K1
+    1:1:com.android.tools.r8.graph.DexMethod getInvokedMethod():47:47 -> L2
+    com.android.tools.r8.ir.code.InvokeMethod asInvokeMethod() -> Q
+    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.DefaultInliningOracle,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    1:5:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):132:136 -> a
+    6:6:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
+    6:6:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):136 -> a
+    7:7:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):137:137 -> a
+    8:8:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
+    8:8:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):142 -> a
+    9:9:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):142:142 -> a
+    10:10:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
+    10:10:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):143 -> a
+    11:12:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):143:144 -> a
+    13:13:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
+    13:13:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):144 -> a
+    14:14:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):144:144 -> a
+    15:23:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):155:163 -> a
+    24:24:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):174:174 -> a
+    25:30:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):189:194 -> a
+    31:31:boolean verifyD8LookupResult(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):202:202 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):52:52 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):184:184 -> e
+    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> f
+    1:13:java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):80:92 -> g
+    14:24:java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):91:101 -> g
+    25:45:java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):100:120 -> g
+    1:1:java.lang.String toString():57:57 -> toString
+com.android.tools.r8.ir.code.InvokeMethodWithReceiver -> com.android.tools.r8.t.b.r0:
+    boolean $assertionsDisabled -> k
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):25:25 -> <init>
+    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():66:66 -> D0
+    boolean throwsOnNullInput() -> E2
+    boolean isInvokeMethodWithReceiver() -> M1
+    1:2:com.android.tools.r8.ir.code.Value getReceiver():39:40 -> M2
+    com.android.tools.r8.ir.code.InvokeMethodWithReceiver asInvokeMethodWithReceiver() -> R
+    1:1:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.DefaultInliningOracle,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):50:50 -> a
+    2:2:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):56:56 -> a
+    1:15:boolean verifyTypes(com.android.tools.r8.graph.AppView):71:85 -> b
+    16:16:boolean verifyTypes(com.android.tools.r8.graph.AppView):84:84 -> b
+com.android.tools.r8.ir.code.InvokeMultiNewArray -> com.android.tools.r8.t.b.s0:
+    com.android.tools.r8.graph.DexType type -> i
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():25:25 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value,java.util.List):30:31 -> <init>
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexType getArrayType():60:60 -> H2
+    1:1:com.android.tools.r8.graph.DexType getReturnType():65 -> H2
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():56:56 -> I2
+    java.lang.String getTypeString() -> J2
+    boolean hasInvariantOutType() -> K0
+    1:1:com.android.tools.r8.graph.DexType getArrayType():60:60 -> L2
+    1:1:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> M2
+    1:1:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrowNegativeArraySizeException():159 -> M2
+    2:13:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrowNegativeArraySizeException():159:170 -> M2
+    boolean isInvokeMultiNewArray() -> N1
+    com.android.tools.r8.ir.code.InvokeMultiNewArray asInvokeMultiNewArray() -> S
+    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):81:81 -> a
+    2:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):86:86 -> a
+    3:3:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):96:96 -> a
+    4:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):101:102 -> a
+    6:6:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107:107 -> a
+    7:7:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
+    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107 -> a
+    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107:107 -> a
+    9:9:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):112:112 -> a
+    10:10:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):186:186 -> a
+    11:11:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeMultiNewArray):194:194 -> a
+    11:11:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):41 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):75:75 -> b
+    2:5:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):117:120 -> b
+    6:6:boolean com.android.tools.r8.graph.DexType.isWideType():264:264 -> b
+    6:6:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120 -> b
+    7:21:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:134 -> b
+    22:22:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    22:22:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):138 -> b
+    23:37:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:154 -> b
+    1:6:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):176:181 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+com.android.tools.r8.ir.code.InvokeNewArray -> com.android.tools.r8.t.b.t0:
+    com.android.tools.r8.graph.DexType type -> i
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():25:25 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value,java.util.List):30:31 -> <init>
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexType getArrayType():50:50 -> H2
+    1:1:com.android.tools.r8.graph.DexType getReturnType():46 -> H2
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():55:55 -> I2
+    java.lang.String getTypeString() -> J2
+    boolean hasInvariantOutType() -> K0
+    1:1:com.android.tools.r8.errors.Unreachable cfUnsupported():139:139 -> L2
+    1:1:com.android.tools.r8.graph.DexType getArrayType():50:50 -> M2
+    boolean isInvokeNewArray() -> O1
+    com.android.tools.r8.ir.code.InvokeNewArray asInvokeNewArray() -> T
+    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:89 -> a
+    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):110:110 -> a
+    21:21:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
+    22:22:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):125:125 -> a
+    23:23:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):130:130 -> a
+    24:24:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):135:135 -> a
+    25:25:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeNewArray):199:199 -> a
+    25:25:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):41 -> a
+    26:26:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):199:199 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):94:94 -> b
+    2:5:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):144:147 -> b
+    6:6:boolean com.android.tools.r8.graph.DexType.isWideType():264:264 -> b
+    6:6:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):147 -> b
+    7:21:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):147:161 -> b
+    22:22:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    22:22:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):165 -> b
+    23:39:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):167:183 -> b
+    1:6:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):189:194 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:java.lang.String toString():65:65 -> toString
+com.android.tools.r8.ir.code.InvokePolymorphic -> com.android.tools.r8.t.b.u0:
+    boolean $assertionsDisabled -> l
+    com.android.tools.r8.graph.DexProto proto -> k
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):33:34 -> <init>
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexType getReturnType():49:49 -> H2
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():54:54 -> I2
+    java.lang.String getTypeString() -> J2
+    1:1:com.android.tools.r8.graph.DexProto getProto():63:63 -> M2
+    boolean isInvokePolymorphic() -> P1
+    com.android.tools.r8.ir.code.InvokePolymorphic asInvokePolymorphic() -> U
+    1:7:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):69:75 -> a
+    8:8:com.android.tools.r8.graph.DexProto getProto():63:63 -> a
+    8:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75 -> a
+    9:15:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:81 -> a
+    16:16:com.android.tools.r8.graph.DexProto getProto():63:63 -> a
+    16:16:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):82 -> a
+    17:24:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):82:89 -> a
+    25:31:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):94:100 -> a
+    32:32:com.android.tools.r8.graph.DexProto getProto():63:63 -> a
+    32:32:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):100 -> a
+    33:34:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):100:101 -> a
+    35:35:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):137:137 -> a
+    36:268:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forInvokePolymorphic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):0:232 -> a
+    36:268:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):137 -> a
+    269:271:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.DefaultInliningOracle,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):149:151 -> a
+    272:272:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokePolymorphic):204:204 -> a
+    272:272:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):44 -> a
+    1:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):106:108 -> b
+    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> f
+    java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> g
+com.android.tools.r8.ir.code.InvokeStatic -> com.android.tools.r8.t.b.v0:
+    boolean itf -> k
+    boolean $assertionsDisabled -> l
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):36:37 -> <init>
+    3:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):41:42 -> <init>
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():57:57 -> I2
+    java.lang.String getTypeString() -> J2
+    boolean isInvokeStatic() -> Q1
+    com.android.tools.r8.ir.code.InvokeStatic asInvokeStatic() -> V
+    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68:86 -> a
+    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):128:128 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.DefaultInliningOracle,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):138:138 -> a
+    22:22:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):144:144 -> a
+    23:23:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):154:154 -> a
+    24:24:boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):201:201 -> a
+    25:25:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeStatic):209:209 -> a
+    25:25:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):52 -> a
+    26:26:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):213:213 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):91:91 -> b
+    1:43:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):160:202 -> c
+    44:44:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):197:197 -> c
+    1:6:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):106:111 -> f
+    7:12:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):110:115 -> f
+    13:13:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> f
+    13:13:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):115 -> f
+    14:15:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):117:118 -> f
+    16:16:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> f
+    16:16:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):118 -> f
+    17:17:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):122:122 -> f
+com.android.tools.r8.ir.code.InvokeSuper -> com.android.tools.r8.t.b.w0:
+    boolean $assertionsDisabled -> m
+    boolean itf -> l
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):27:28 -> <init>
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():43:43 -> I2
+    java.lang.String getTypeString() -> J2
+    boolean isInvokeSuper() -> R1
+    com.android.tools.r8.ir.code.InvokeSuper asInvokeSuper() -> W
+    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:72 -> a
+    20:20:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):77:77 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):110:110 -> a
+    22:22:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):120:120 -> a
+    23:23:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeSuper):214:214 -> a
+    23:23:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):38 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):82:82 -> b
+    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):97:101 -> f
+com.android.tools.r8.ir.code.InvokeVirtual -> com.android.tools.r8.t.b.x0:
+    boolean $assertionsDisabled -> l
+    1:1:void <clinit>():27:27 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):30:30 -> <init>
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():45:45 -> I2
+    java.lang.String getTypeString() -> J2
+    boolean isInvokeVirtual() -> S1
+    com.android.tools.r8.ir.code.InvokeVirtual asInvokeVirtual() -> X
+    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):56:74 -> a
+    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):122:122 -> a
+    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):127:127 -> a
+    22:22:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):137:137 -> a
+    23:23:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):194:194 -> a
+    24:24:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeVirtual):219:219 -> a
+    24:24:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):40 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):79:79 -> b
+    1:41:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):143:183 -> c
+    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):94:101 -> f
+    9:18:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):97:106 -> f
+    19:19:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> f
+    19:19:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):107 -> f
+    20:21:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):109:110 -> f
+    22:22:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> f
+    22:22:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):110 -> f
+    23:23:boolean com.android.tools.r8.graph.DexClass.isFinal():633:633 -> f
+    23:23:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):111 -> f
+    24:24:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():295:295 -> f
+    24:24:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):111 -> f
+com.android.tools.r8.ir.code.JumpInstruction -> com.android.tools.r8.t.b.y0:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:1:void <init>():15:15 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.Value):19:19 -> <init>
+    3:3:void <init>(java.util.List):23:23 -> <init>
+    com.android.tools.r8.ir.code.BasicBlock fallthroughBlock() -> F2
+    boolean hasInvariantOutType() -> K0
+    boolean isJumpInstruction() -> T1
+    com.android.tools.r8.ir.code.JumpInstruction asJumpInstruction() -> Y
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:262:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():0:261 -> a
+    1:262:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):52 -> a
+    1:1:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):31:31 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+com.android.tools.r8.ir.code.LinearFlowInstructionListIterator -> com.android.tools.r8.t.b.z0:
+    com.android.tools.r8.ir.code.IRCode code -> a
+    com.android.tools.r8.ir.code.InstructionListIterator currentBlockIterator -> c
+    com.android.tools.r8.ir.code.BasicBlock currentBlock -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):23:23 -> <init>
+    2:10:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,int):26:34 -> <init>
+    1:1:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):40:40 -> a
+    2:2:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):45:45 -> a
+    3:3:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):50:50 -> a
+    4:4:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):61:61 -> a
+    5:5:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):72:72 -> a
+    6:6:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):78:78 -> a
+    7:7:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):83:83 -> a
+    8:8:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):94:94 -> a
+    9:12:boolean isLinearEdge(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):109:112 -> a
+    13:23:com.android.tools.r8.ir.code.BasicBlock getBeginningOfTrivialLinearGotoChain(com.android.tools.r8.ir.code.BasicBlock):143:153 -> a
+    1:1:void add(java.lang.Object):15:15 -> add
+    2:2:void add(com.android.tools.r8.ir.code.Instruction):100:100 -> add
+    2:2:void add(java.lang.Object):15 -> add
+    1:1:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.ir.code.IRCode,int):55:55 -> b
+    1:1:void removeOrReplaceByDebugLocalRead():105:105 -> g
+    1:1:boolean hasNext():117:117 -> hasNext
+    1:4:boolean hasPrevious():158:161 -> hasPrevious
+    1:18:com.android.tools.r8.ir.code.Instruction next():122:139 -> k
+    1:1:java.lang.Object next():15:15 -> next
+    1:1:int nextIndex():183:183 -> nextIndex
+    1:1:java.lang.Object previous():15:15 -> previous
+    2:14:com.android.tools.r8.ir.code.Instruction previous():166:178 -> previous
+    1:1:int previousIndex():188:188 -> previousIndex
+    1:1:void remove():193:193 -> remove
+    1:1:void set(java.lang.Object):15:15 -> set
+    2:2:void set(com.android.tools.r8.ir.code.Instruction):198:198 -> set
+    2:2:void set(java.lang.Object):15 -> set
+com.android.tools.r8.ir.code.Load -> com.android.tools.r8.t.b.A0:
+    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):22:22 -> <init>
+    1:1:int maxOutValueRegister():61:61 -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value src():36:36 -> F2
+    boolean hasInvariantOutType() -> K0
+    boolean isLoad() -> U1
+    com.android.tools.r8.ir.code.Load asLoad() -> Z
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:266:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forLoad():0:265 -> a
+    1:266:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):67 -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    267:267:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:72 -> a
+    268:269:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):77:78 -> a
+    270:270:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):83:83 -> a
+    271:271:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):93:93 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):51:51 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.LogicalBinop -> com.android.tools.r8.t.b.B0:
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):20:20 -> <init>
+    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode() -> K2
+    boolean isLogicalBinop() -> V1
+    com.android.tools.r8.code.Instruction CreateInt(int,int,int) -> a
+    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:73 -> a
+    20:47:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:94 -> a
+    48:57:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:97 -> a
+    58:75:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):112:129 -> a
+    76:86:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):127:137 -> a
+    87:87:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):144:144 -> a
+    com.android.tools.r8.ir.code.LogicalBinop asLogicalBinop() -> a0
+    com.android.tools.r8.code.Instruction CreateInt2Addr(int,int) -> b
+    com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int) -> b
+    com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int) -> c
+    com.android.tools.r8.code.Instruction CreateLong2Addr(int,int) -> c
+    1:5:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):44:48 -> c
+    com.android.tools.r8.code.Instruction CreateLong(int,int,int) -> d
+com.android.tools.r8.ir.code.MemberType -> com.android.tools.r8.t.b.C0:
+    com.android.tools.r8.ir.code.MemberType CHAR -> c
+    com.android.tools.r8.ir.code.MemberType BOOLEAN_OR_BYTE -> b
+    com.android.tools.r8.ir.code.MemberType INT -> e
+    com.android.tools.r8.ir.code.MemberType SHORT -> d
+    com.android.tools.r8.ir.code.MemberType LONG -> g
+    com.android.tools.r8.ir.code.MemberType FLOAT -> f
+    com.android.tools.r8.ir.code.MemberType INT_OR_FLOAT -> i
+    com.android.tools.r8.ir.code.MemberType DOUBLE -> h
+    com.android.tools.r8.ir.code.MemberType LONG_OR_DOUBLE -> j
+    com.android.tools.r8.ir.code.MemberType[] $VALUES -> k
+    com.android.tools.r8.ir.code.MemberType OBJECT -> a
+    1:10:void <clinit>():12:21 -> <clinit>
+    11:11:void <clinit>() -> <clinit>
+    1:1:void <init>(java.lang.String,int):11:11 -> <init>
+    1:1:boolean isPrecise():24:24 -> a
+com.android.tools.r8.ir.code.Monitor -> com.android.tools.r8.t.b.D0:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.ir.code.Monitor$Type type -> h
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.Monitor$Type,com.android.tools.r8.ir.code.Value):31:32 -> <init>
+    1:1:int maxOutValueRegister():87:87 -> A2
+    int opcode() -> B2
+    1:7:java.lang.String getInstructionName():119:125 -> C0
+    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():156:156 -> D0
+    boolean throwsOnNullInput() -> E2
+    1:1:boolean isEnter():50:50 -> F2
+    1:1:com.android.tools.r8.ir.code.Value object():46:46 -> G2
+    boolean hasInvariantOutType() -> K0
+    boolean instructionTypeCanThrow() -> Q0
+    boolean isMonitor() -> W1
+    1:1:boolean isEnter():50:50 -> X1
+    1:1:boolean isMonitorEnter():103 -> X1
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:270:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():0:269 -> a
+    1:270:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):114 -> a
+    271:278:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:71 -> a
+    279:279:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):136:136 -> a
+    280:280:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):141:141 -> a
+    281:281:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):146:146 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> b
+    com.android.tools.r8.ir.code.Monitor asMonitor() -> b0
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Monitor$Type -> com.android.tools.r8.t.b.D0$a:
+    com.android.tools.r8.ir.code.Monitor$Type ENTER -> a
+    com.android.tools.r8.ir.code.Monitor$Type[] $VALUES -> c
+    com.android.tools.r8.ir.code.Monitor$Type EXIT -> b
+    1:1:void <clinit>():25:25 -> <clinit>
+    2:2:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(java.lang.String,int):24:24 -> <init>
+com.android.tools.r8.ir.code.Move -> com.android.tools.r8.t.b.E0:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):23:23 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:2:com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction():86:87 -> F0
+    1:1:com.android.tools.r8.ir.code.Value dest():37:37 -> F2
+    1:1:com.android.tools.r8.ir.code.Value src():41:41 -> G2
+    boolean hasInvariantOutType() -> K0
+    boolean isMove() -> Y1
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:274:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMove():0:273 -> a
+    1:274:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):103 -> a
+    275:275:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):46:46 -> a
+    276:276:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):51:51 -> a
+    277:277:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):56:56 -> a
+    278:278:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):108:108 -> a
+    279:279:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):118:118 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):71:71 -> b
+    2:5:boolean verifyTypes(com.android.tools.r8.graph.AppView):128:131 -> b
+    com.android.tools.r8.ir.code.Move asMove() -> c0
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:1:boolean isOutConstant():81:81 -> i2
+    1:1:java.lang.String toString():76:76 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.MoveException -> com.android.tools.r8.t.b.F0:
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.graph.DexType exceptionType -> h
+    com.android.tools.r8.utils.InternalOptions options -> i
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.InternalOptions):24:26 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.graph.DexType getExceptionType():119:119 -> F2
+    boolean hasInvariantOutType() -> K0
+    boolean isMoveException() -> Z1
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
+    1:278:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMoveException():0:277 -> a
+    1:278:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):90 -> a
+    279:279:com.android.tools.r8.ir.code.Value dest():40:40 -> a
+    279:279:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45 -> a
+    280:281:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45:46 -> a
+    282:283:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):83:84 -> a
+    284:284:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):95:95 -> a
+    285:285:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):110:110 -> a
+    286:286:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
+    1:4:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):62:65 -> b
+    5:5:boolean com.android.tools.r8.utils.InternalOptions.canHaveExceptionTypeBug():1484:1484 -> b
+    5:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):65 -> b
+    6:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):66:66 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    com.android.tools.r8.ir.code.MoveException asMoveException() -> d0
+    1:1:int maxInValueRegister():51:51 -> z2
+com.android.tools.r8.ir.code.Mul -> com.android.tools.r8.t.b.G0:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):22:22 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():139:139 -> K2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    double foldDouble(double,double) -> a
+    float foldFloat(float,float) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):69:69 -> a
+    boolean isMul() -> a2
+    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):61:61 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):89:89 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):45:45 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):84:84 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):74:74 -> d
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):99:99 -> d
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):79:79 -> e
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):94:94 -> e
+    com.android.tools.r8.ir.code.Mul asMul() -> e0
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):53:53 -> f
+com.android.tools.r8.ir.code.Neg -> com.android.tools.r8.t.b.H0:
+    com.android.tools.r8.ir.code.NumericType type -> h
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):26:27 -> <init>
+    int opcode() -> B2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:1:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Unop.dest():21:21 -> a
+    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55 -> a
+    2:18:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:71 -> a
+    19:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68:68 -> a
+    20:20:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:65 -> a
+    21:21:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:62 -> a
+    22:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):59:73 -> a
+    37:55:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):88:106 -> a
+    56:56:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):111:111 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):49:49 -> b
+    boolean isNeg() -> b2
+    com.android.tools.r8.ir.code.Neg asNeg() -> f0
+com.android.tools.r8.ir.code.NewArrayEmpty -> com.android.tools.r8.t.b.I0:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexType type -> h
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):25:26 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value size():49:49 -> F2
+    boolean hasInvariantOutType() -> K0
+    1:4:boolean instructionInstanceCanThrow():77:80 -> O0
+    boolean instructionTypeCanThrow() -> Q0
+    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36:36 -> a
+    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:54 -> a
+    3:3:com.android.tools.r8.ir.code.Value dest():45:45 -> a
+    3:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55 -> a
+    4:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:56 -> a
+    6:11:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):85:90 -> a
+    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    12:12:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):90 -> a
+    13:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):111:111 -> a
+    14:14:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):121:121 -> a
+    15:16:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):126:127 -> a
+    17:18:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):132:133 -> a
+    19:19:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):138:138 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):95:95 -> b
+    boolean isNewArrayEmpty() -> c2
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    com.android.tools.r8.ir.code.NewArrayEmpty asNewArrayEmpty() -> g0
+    1:1:java.lang.String toString():41:41 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.NewArrayFilledData -> com.android.tools.r8.t.b.J0:
+    long size -> i
+    short[] data -> j
+    boolean $assertionsDisabled -> k
+    int element_width -> h
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.code.Value,int,long,short[]):30:33 -> <init>
+    1:1:int maxOutValueRegister():83:83 -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value src():47:47 -> F2
+    boolean hasInvariantOutType() -> K0
+    boolean instructionTypeCanThrow() -> Q0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:286:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forNewArrayFilledData():0:285 -> a
+    1:286:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):105 -> a
+    287:288:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):56:57 -> a
+    289:289:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):62:62 -> a
+    290:290:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):110:110 -> a
+    291:291:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):153:153 -> a
+    1:7:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):67:73 -> b
+    8:16:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:128 -> b
+    1:8:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):134:141 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isNewArrayFilledData() -> d2
+    com.android.tools.r8.ir.code.NewArrayFilledData asNewArrayFilledData() -> h0
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.NewInstance -> com.android.tools.r8.t.b.K0:
+    boolean allowSpilling -> i
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.graph.DexType clazz -> h
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):35:35 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):32:37 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value dest():72:72 -> F2
+    1:1:boolean isSpillingAllowed():222:222 -> G2
+    1:1:void markNoSpilling():218:218 -> H2
+    boolean hasInvariantOutType() -> K0
+    boolean instructionTypeCanThrow() -> Q0
+    1:7:com.android.tools.r8.ir.code.InvokeDirect getUniqueConstructorInvoke(com.android.tools.r8.graph.DexItemFactory):42:48 -> a
+    8:8:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):68:68 -> a
+    9:9:com.android.tools.r8.ir.code.Value dest():72:72 -> a
+    9:9:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77 -> a
+    10:11:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:78 -> a
+    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):121:121 -> a
+    13:13:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):131:131 -> a
+    14:14:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):136:136 -> a
+    15:15:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):141:141 -> a
+    16:16:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):146:146 -> a
+    17:17:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):156:156 -> a
+    18:18:boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):192:192 -> a
+    19:19:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):214:214 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):88:88 -> b
+    2:2:boolean lambda$instructionMayTriggerMethodInvocation$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):233:233 -> b
+    3:6:boolean verifyTypes(com.android.tools.r8.graph.AppView):244:247 -> b
+    7:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):246:248 -> b
+    1:10:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):162:171 -> c
+    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    11:11:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):171 -> c
+    12:33:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):172:193 -> c
+    34:48:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):189:203 -> c
+    49:49:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):167:167 -> c
+    1:8:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):227:234 -> d
+    9:17:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):230:238 -> d
+    boolean isNewInstance() -> e2
+    com.android.tools.r8.ir.code.NewInstance asNewInstance() -> i0
+    1:1:java.lang.String toString():83:83 -> toString
+    1:1:int maxInValueRegister():93:93 -> z2
+com.android.tools.r8.ir.code.NextUntilIterator -> com.android.tools.r8.t.b.L0:
+    1:3:java.lang.Object nextUntil(java.util.function.Predicate):19:21 -> a
+com.android.tools.r8.ir.code.Not -> com.android.tools.r8.t.b.M0:
+    com.android.tools.r8.ir.code.NumericType type -> h
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:25 -> <init>
+    int opcode() -> B2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:15:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):45:59 -> a
+    16:16:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:64 -> a
+    17:17:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Unop.dest():21:21 -> a
+    17:17:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66 -> a
+    18:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:76 -> a
+    29:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:78 -> a
+    38:38:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):99:99 -> a
+    39:39:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):105:105 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
+    boolean isNot() -> f2
+    com.android.tools.r8.ir.code.Not asNot() -> j0
+com.android.tools.r8.ir.code.NumberConversion -> com.android.tools.r8.t.b.N0:
+    com.android.tools.r8.ir.code.NumericType to -> i
+    com.android.tools.r8.ir.code.NumericType from -> h
+    1:3:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):36:38 -> <init>
+    int opcode() -> B2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:1:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Unop.dest():21:21 -> a
+    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58 -> a
+    2:75:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58:131 -> a
+    76:96:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:82 -> a
+    97:97:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):79:79 -> a
+    98:98:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:76 -> a
+    99:99:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):73:73 -> a
+    100:100:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:70 -> a
+    101:101:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:67 -> a
+    102:165:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:127 -> a
+    166:166:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):121:121 -> a
+    167:167:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):118:118 -> a
+    168:179:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):101:112 -> a
+    180:180:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):106:106 -> a
+    181:181:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):103:103 -> a
+    182:193:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:97 -> a
+    194:194:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):91:91 -> a
+    195:240:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:133 -> a
+    241:241:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):157:157 -> a
+    242:242:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):162:162 -> a
+    243:243:boolean outTypeKnownToBeBoolean(java.util.Set):167:167 -> a
+    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):138:142 -> b
+    boolean isNumberConversion() -> g2
+    com.android.tools.r8.ir.code.NumberConversion asNumberConversion() -> k0
+com.android.tools.r8.ir.code.NumericType -> com.android.tools.r8.t.b.O0:
+    com.android.tools.r8.ir.code.NumericType DOUBLE -> g
+    com.android.tools.r8.ir.code.NumericType FLOAT -> f
+    com.android.tools.r8.ir.code.NumericType LONG -> e
+    com.android.tools.r8.ir.code.NumericType INT -> d
+    com.android.tools.r8.ir.code.NumericType SHORT -> c
+    com.android.tools.r8.ir.code.NumericType CHAR -> b
+    com.android.tools.r8.ir.code.NumericType BYTE -> a
+    com.android.tools.r8.ir.code.NumericType[] $VALUES -> h
+    1:7:void <clinit>():11:17 -> <clinit>
+    8:8:void <clinit>():10:10 -> <clinit>
+    1:1:void <init>(java.lang.String,int):10:10 -> <init>
+    1:17:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):20:36 -> a
+    18:18:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):34:34 -> a
+    19:19:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):32:32 -> a
+    20:20:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):30:30 -> a
+    21:21:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):28:28 -> a
+    22:22:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):26:26 -> a
+    23:23:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):24:24 -> a
+    24:24:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):22:22 -> a
+    25:39:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):41:55 -> a
+    40:40:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):47:47 -> a
+    41:51:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):43:53 -> a
+    52:52:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):49:49 -> a
+    53:59:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):45:51 -> a
+    60:60:boolean isWide():62:62 -> a
+com.android.tools.r8.ir.code.Or -> com.android.tools.r8.t.b.P0:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):18:18 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():93:93 -> K2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):48:48 -> a
+    2:2:boolean outTypeKnownToBeBoolean(java.util.Set):98:98 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):58:58 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):73:73 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):63:63 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):68:68 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):53:53 -> d
+    boolean isOr() -> h2
+    com.android.tools.r8.ir.code.Or asOr() -> l0
+com.android.tools.r8.ir.code.Phi -> com.android.tools.r8.t.b.Q0:
+    java.util.List operands -> r
+    java.util.List definitionUsers -> u
+    boolean $assertionsDisabled -> v
+    com.android.tools.r8.ir.code.Phi$RegisterReadType readType -> s
+    com.android.tools.r8.ir.code.BasicBlock block -> q
+    boolean isStackPhi -> t
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.code.Phi$RegisterReadType):59:59 -> <init>
+    2:21:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.code.Phi$RegisterReadType):43:62 -> <init>
+    boolean isConstant() -> L
+    1:2:boolean isValueOnStack():358:359 -> S
+    1:1:void markNonDebugLocalRead():163:163 -> V
+    1:1:boolean needsRegister():381:381 -> W
+    1:4:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):88:91 -> a
+    5:27:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):113:135 -> a
+    28:29:void appendOperand(com.android.tools.r8.ir.code.Value):174:175 -> a
+    28:29:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):136 -> a
+    30:30:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):138:138 -> a
+    31:31:void throwUndefinedValueError():167:167 -> a
+    31:31:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):115 -> a
+    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    32:32:void throwUndefinedValueError():167 -> a
+    32:32:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):115 -> a
+    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    33:33:void throwUndefinedValueError():167 -> a
+    33:33:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):115 -> a
+    34:34:void throwUndefinedValueError():167:167 -> a
+    34:34:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):115 -> a
+    35:39:void addOperands(java.util.List,boolean):149:153 -> a
+    40:41:void appendOperand(com.android.tools.r8.ir.code.Value):174:175 -> a
+    40:41:void addOperands(java.util.List,boolean):154 -> a
+    42:42:boolean removeTrivialPhi():239:239 -> a
+    42:42:void addOperands(java.util.List,boolean):157 -> a
+    43:43:void throwUndefinedValueError():167:167 -> a
+    43:43:void addOperands(java.util.List,boolean):151 -> a
+    44:44:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    44:44:void throwUndefinedValueError():167 -> a
+    44:44:void addOperands(java.util.List,boolean):151 -> a
+    45:45:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    45:45:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    45:45:void throwUndefinedValueError():167 -> a
+    45:45:void addOperands(java.util.List,boolean):151 -> a
+    46:46:void throwUndefinedValueError():167:167 -> a
+    46:46:void addOperands(java.util.List,boolean):151 -> a
+    47:50:void replaceOperandAt(int,com.android.tools.r8.ir.code.Value):207:210 -> a
+    51:54:void replaceOperand(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):214:217 -> a
+    55:94:boolean removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):244:283 -> a
+    95:95:void addDefinitionsUser(java.util.Map):340:340 -> a
+    95:95:boolean removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):283 -> a
+    96:105:boolean removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):290:299 -> a
+    106:113:void print(com.android.tools.r8.utils.CfgPrinter):328:335 -> a
+    114:114:void addDefinitionsUser(java.util.Map):340:340 -> a
+    115:118:void lambda$verifyIsStackPhi$0(java.util.Set,com.android.tools.r8.ir.code.Value):370:373 -> a
+    119:119:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):389:389 -> a
+    120:120:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.Value.outType():846:846 -> a
+    120:120:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):389 -> a
+    121:129:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):389:397 -> a
+    boolean isDefinedByInstructionSatisfying(java.util.function.Predicate) -> b
+    boolean isPhi() -> b
+    1:2:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> b
+    1:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):412 -> b
+    3:19:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):413:429 -> b
+    20:22:void abortOnInvalidDebugInfo(com.android.tools.r8.ir.code.ValueTypeConstraint):95:97 -> b
+    23:23:com.android.tools.r8.ir.code.Value getOperand(int):179:179 -> b
+    24:35:void removeOperandsByIndex(java.util.List):192:203 -> b
+    36:36:void removeDefinitionsUser(java.util.Map):344:344 -> b
+    37:37:void setIsStackPhi(boolean):363:363 -> b
+    1:2:boolean verifyIsStackPhi(java.util.Set):367:368 -> c
+    1:2:void removeOperand(int):187:188 -> d
+    3:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement computePhiType(com.android.tools.r8.graph.AppView):402:404 -> d
+    com.android.tools.r8.ir.code.Phi asPhi() -> f
+    1:1:com.android.tools.r8.ir.code.BasicBlock getBlock():82:82 -> g
+    2:2:boolean usesValueOneTime(com.android.tools.r8.ir.code.Value):385:385 -> g
+    1:1:void clearDefinitionsUsers():348:348 -> h0
+    1:1:java.util.List getOperands():183:183 -> i0
+    1:1:boolean isTrivialPhi():224:224 -> j0
+    1:10:java.lang.String printPhi():315:324 -> k0
+    1:4:void removeDeadPhi():305:308 -> l0
+    5:5:com.android.tools.r8.ir.code.BasicBlock getBlock():82:82 -> l0
+    5:5:void removeDeadPhi():311 -> l0
+    6:6:void removeDeadPhi():311:311 -> l0
+    1:1:boolean removeTrivialPhi():239:239 -> m0
+com.android.tools.r8.ir.code.Phi$RegisterReadType -> com.android.tools.r8.t.b.Q0$a:
+    com.android.tools.r8.ir.code.Phi$RegisterReadType NORMAL -> a
+    com.android.tools.r8.ir.code.Phi$RegisterReadType DEBUG -> b
+    1:2:void <clinit>():38:39 -> <clinit>
+    1:1:void <init>(java.lang.String,int):37:37 -> <init>
+com.android.tools.r8.ir.code.Pop -> com.android.tools.r8.t.b.R0:
+    1:1:void <init>(com.android.tools.r8.ir.code.StackValue):19:19 -> <init>
+    1:1:int maxOutValueRegister():64:64 -> A2
+    int opcode() -> B2
+    boolean hasInvariantOutType() -> K0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
+    1:298:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forPop():0:297 -> a
+    1:298:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):70 -> a
+    299:299:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
+    300:300:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
+    301:301:com.android.tools.r8.cf.code.CfStackInstruction com.android.tools.r8.cf.code.CfStackInstruction.popType(com.android.tools.r8.ir.code.ValueType):69:69 -> a
+    301:301:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80 -> a
+    302:302:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
+    303:303:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):85:85 -> a
+    1:5:void addInValue(com.android.tools.r8.ir.code.Value):34:38 -> b
+    6:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isPop() -> j2
+    1:1:int maxInValueRegister():59:59 -> z2
+com.android.tools.r8.ir.code.Position -> com.android.tools.r8.t.b.S0:
+    com.android.tools.r8.ir.code.Position TESTING_POSITION -> h
+    com.android.tools.r8.ir.code.Position NO_POSITION_SYNTHETIC -> g
+    com.android.tools.r8.graph.DexString file -> b
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexMethod method -> d
+    com.android.tools.r8.ir.code.Position NO_POSITION -> f
+    boolean synthetic -> c
+    int line -> a
+    com.android.tools.r8.ir.code.Position callerPosition -> e
+    1:12:void <clinit>():13:24 -> <clinit>
+    1:3:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):39:41 -> <init>
+    4:10:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,boolean):45:51 -> <init>
+    1:3:com.android.tools.r8.ir.code.Position synthetic(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):55:57 -> a
+    4:5:com.android.tools.r8.ir.code.Position noneWithMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):77:78 -> a
+    6:13:com.android.tools.r8.ir.code.Position getPositionForInlining(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):83:90 -> a
+    14:14:com.android.tools.r8.ir.code.Position getPositionForInlining(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):88:88 -> a
+    15:15:com.android.tools.r8.ir.code.Position getOutermostCaller():110:110 -> a
+    1:1:boolean isNone():95:95 -> b
+    1:1:boolean isSome():103:103 -> c
+    1:1:boolean isSyntheticNone():99:99 -> d
+    1:1:com.android.tools.r8.ir.code.Position none():61:61 -> e
+    1:7:boolean equals(java.lang.Object):121:127 -> equals
+    1:1:com.android.tools.r8.ir.code.Position syntheticNone():65:65 -> f
+    1:1:com.android.tools.r8.ir.code.Position testingPosition():70:70 -> g
+    1:5:int hashCode():134:138 -> hashCode
+    1:19:java.lang.String toString(boolean):143:161 -> toString
+    1:19:java.lang.String toString():166 -> toString
+com.android.tools.r8.ir.code.Rem -> com.android.tools.r8.t.b.T0:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():148:148 -> K2
+    1:1:boolean instructionTypeCanThrow():134:134 -> Q0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    double foldDouble(double,double) -> a
+    float foldFloat(float,float) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):69:69 -> a
+    2:2:int foldIntegers(int,int):114:114 -> a
+    3:3:long foldLongs(long,long):119:119 -> a
+    4:8:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):139:143 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):64:64 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):89:89 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):54:54 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):84:84 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):74:74 -> d
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):99:99 -> d
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):79:79 -> e
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):94:94 -> e
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):59:59 -> f
+    boolean isRem() -> k2
+    com.android.tools.r8.ir.code.Rem asRem() -> m0
+com.android.tools.r8.ir.code.Return -> com.android.tools.r8.t.b.U0:
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:1:void <init>():24:24 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.Value):28:28 -> <init>
+    1:1:int maxOutValueRegister():97:97 -> A2
+    int opcode() -> B2
+    1:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getReturnType():46:47 -> G2
+    1:1:boolean isReturnVoid():42:42 -> H2
+    1:2:com.android.tools.r8.ir.code.Value returnValue():51:52 -> I2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:302:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():0:301 -> a
+    1:302:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):114 -> a
+    303:303:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
+    304:305:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):119:120 -> a
+    306:308:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):127:129 -> a
+    309:309:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):126:126 -> a
+    1:15:com.android.tools.r8.code.Instruction createDexInstruction(com.android.tools.r8.ir.conversion.DexBuilder):56:70 -> b
+    16:23:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):80:87 -> b
+    24:26:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isValueTypeCompatible(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):421:423 -> b
+    24:26:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):87 -> b
+    boolean isReturn() -> l2
+    com.android.tools.r8.ir.code.Return asReturn() -> n0
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Shl -> com.android.tools.r8.t.b.V0:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> K2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):53:53 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):63:63 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):78:78 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):68:68 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):73:73 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):58:58 -> d
+    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):33:33 -> g
+    boolean isShl() -> m2
+    com.android.tools.r8.ir.code.Shl asShl() -> o0
+com.android.tools.r8.ir.code.Shr -> com.android.tools.r8.t.b.W0:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> K2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):53:53 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):63:63 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):78:78 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):68:68 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):73:73 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):58:58 -> d
+    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):33:33 -> g
+    boolean isShr() -> n2
+    com.android.tools.r8.ir.code.Shr asShr() -> p0
+com.android.tools.r8.ir.code.SingleConstant -> com.android.tools.r8.t.b.X0:
+    int decodedValue() -> a
+com.android.tools.r8.ir.code.StackValue -> com.android.tools.r8.t.b.Y0:
+    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo typeInfo -> r
+    boolean $assertionsDisabled -> s
+    int height -> q
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int):17:20 -> <init>
+    boolean isValueOnStack() -> S
+    boolean needsRegister() -> W
+    1:3:com.android.tools.r8.ir.code.StackValue create(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,int,com.android.tools.r8.graph.AppView):24:26 -> a
+    4:4:void setNeedsRegister(boolean):54:54 -> a
+    1:1:com.android.tools.r8.ir.code.StackValue duplicate(int):39:39 -> b
+    1:1:int getHeight():31:31 -> h0
+    1:1:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo():35:35 -> i0
+    1:1:java.lang.String toString():59:59 -> toString
+com.android.tools.r8.ir.code.StackValues -> com.android.tools.r8.t.b.Z0:
+    boolean $assertionsDisabled -> r
+    com.android.tools.r8.ir.code.StackValue[] stackValues -> q
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.StackValue[]):19:21 -> <init>
+    boolean isValueOnStack() -> S
+    boolean needsRegister() -> W
+    1:1:void setNeedsRegister(boolean):35:35 -> a
+    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():25:25 -> h0
+    1:10:java.lang.String toString():40:49 -> toString
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():59:59 -> w
+com.android.tools.r8.ir.code.StaticGet -> com.android.tools.r8.t.b.a1:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):36:36 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value value():69:69 -> H2
+    1:1:com.android.tools.r8.ir.code.Value dest():64:64 -> I2
+    boolean instructionTypeCanBeCanonicalized() -> P0
+    boolean instructionTypeCanThrow() -> Q0
+    1:5:com.android.tools.r8.ir.code.StaticGet copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):40:44 -> a
+    6:7:com.android.tools.r8.ir.code.StaticGet copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.StaticGet):49:50 -> a
+    6:7:com.android.tools.r8.ir.code.StaticGet copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):45 -> a
+    8:8:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):60:60 -> a
+    9:9:com.android.tools.r8.ir.code.Value dest():64:64 -> a
+    9:9:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):95 -> a
+    10:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):95:122 -> a
+    38:38:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):119:119 -> a
+    39:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):116:116 -> a
+    40:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):113:113 -> a
+    41:41:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):110:110 -> a
+    42:42:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):107:107 -> a
+    43:43:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):104:104 -> a
+    44:68:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):100:124 -> a
+    69:80:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):74:85 -> a
+    81:87:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):83:89 -> a
+    88:88:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):150:150 -> a
+    89:89:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:140 -> a
+    89:89:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):150 -> a
+    90:90:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):175:175 -> a
+    91:91:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):195:195 -> a
+    92:95:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):200:200 -> a
+    96:96:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):207:207 -> a
+    97:97:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):212:212 -> a
+    98:98:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):222:222 -> a
+    99:99:boolean outTypeKnownToBeBoolean(java.util.Set):228:228 -> a
+    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):165:169 -> b
+    6:6:boolean lambda$instructionMayTriggerMethodInvocation$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):240:240 -> b
+    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:140 -> c
+    1:9:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):233:241 -> d
+    10:10:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):237:237 -> d
+    boolean isStaticGet() -> o2
+    com.android.tools.r8.ir.code.StaticGet asStaticGet() -> q0
+    1:1:java.lang.String toString():180:180 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.StaticPut -> com.android.tools.r8.t.b.b1:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):36:36 -> <init>
+    1:1:int maxOutValueRegister():153:153 -> A2
+    int opcode() -> B2
+    1:2:com.android.tools.r8.ir.code.Value value():51:52 -> H2
+    boolean instructionTypeCanThrow() -> Q0
+    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):46:46 -> a
+    2:29:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58:85 -> a
+    30:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):82:82 -> a
+    31:31:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):79:79 -> a
+    32:32:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:76 -> a
+    33:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):73:73 -> a
+    34:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:70 -> a
+    35:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:67 -> a
+    36:60:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63:87 -> a
+    61:61:java.lang.Boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):119:119 -> a
+    62:63:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):140:141 -> a
+    64:68:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):159:163 -> a
+    69:69:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
+    69:69:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):163 -> a
+    70:75:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):164:169 -> a
+    76:76:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):189:189 -> a
+    77:77:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):209:209 -> a
+    78:81:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):214:214 -> a
+    82:82:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):226:226 -> a
+    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):179:183 -> b
+    6:6:boolean lambda$instructionMayTriggerMethodInvocation$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):239:239 -> b
+    1:22:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):98:119 -> c
+    23:30:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):118:125 -> c
+    1:9:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):232:240 -> d
+    10:10:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):236:236 -> d
+    boolean isStaticPut() -> p2
+    com.android.tools.r8.ir.code.StaticPut asStaticPut() -> r0
+    1:1:java.lang.String toString():194:194 -> toString
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Store -> com.android.tools.r8.t.b.c1:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.StackValue):23:23 -> <init>
+    int maxOutValueRegister() -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value src():37:37 -> F2
+    boolean hasInvariantOutType() -> K0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:318:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forStore():0:317 -> a
+    1:318:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):68 -> a
+    319:319:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):73:73 -> a
+    320:320:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):78:78 -> a
+    321:321:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):83:83 -> a
+    322:322:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):88:88 -> a
+    323:323:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):93:93 -> a
+    324:324:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):103:103 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):52:52 -> b
+    1:2:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):108:109 -> c
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isStore() -> q2
+    com.android.tools.r8.ir.code.Store asStore() -> s0
+    1:1:int maxInValueRegister():57:57 -> z2
+com.android.tools.r8.ir.code.StringSwitch -> com.android.tools.r8.t.b.d1:
+    boolean $assertionsDisabled -> m
+    com.android.tools.r8.graph.DexString[] keys -> l
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexString[],int[],int):21:23 -> <init>
+    1:1:int maxOutValueRegister():106:106 -> A2
+    int opcode() -> B2
+    1:4:boolean valid():44:47 -> J2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:1:void forEachCase(java.util.function.BiConsumer):37:37 -> a
+    2:2:com.android.tools.r8.graph.DexString getKey(int):62:62 -> a
+    2:2:void forEachCase(java.util.function.BiConsumer):38 -> a
+    3:3:void forEachCase(java.util.function.BiConsumer):38:38 -> a
+    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):81:81 -> a
+    5:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
+    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):96:96 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):91:91 -> b
+    boolean isStringSwitch() -> r2
+    com.android.tools.r8.ir.code.StringSwitch asStringSwitch() -> t0
+    1:4:java.lang.String toString():67:70 -> toString
+    5:5:com.android.tools.r8.graph.DexString getKey(int):62:62 -> toString
+    5:5:java.lang.String toString():71 -> toString
+    6:11:java.lang.String toString():71:76 -> toString
+    1:1:int maxInValueRegister():101:101 -> z2
+com.android.tools.r8.ir.code.Sub -> com.android.tools.r8.t.b.e1:
+    boolean $assertionsDisabled -> j
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):27:27 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:8:int maxInOutValueRegisterSize():131:138 -> I2
+    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():217:217 -> K2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    double foldDouble(double,double) -> a
+    float foldFloat(float,float) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):62:62 -> a
+    2:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):164:199 -> a
+    38:38:com.android.tools.r8.code.Instruction CreateInt(int,int,int):47:47 -> a
+    38:38:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):200 -> a
+    39:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):202:202 -> a
+    40:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):165:165 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):57:57 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):82:82 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):99:99 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):47:47 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):77:77 -> c
+    3:15:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):145:157 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):67:67 -> d
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):94:94 -> d
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):72:72 -> e
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):88:88 -> e
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):52:52 -> f
+    1:3:boolean negativeFitsInDexInstruction(com.android.tools.r8.ir.code.Value):123:125 -> i
+    boolean isSub() -> s2
+    com.android.tools.r8.ir.code.Sub asSub() -> u0
+com.android.tools.r8.ir.code.Swap -> com.android.tools.r8.t.b.f1:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):22:22 -> <init>
+    2:5:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):26:29 -> <init>
+    1:1:int maxOutValueRegister():87:87 -> A2
+    int opcode() -> B2
+    boolean hasInvariantOutType() -> K0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:322:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forSwap():0:321 -> a
+    1:322:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):93 -> a
+    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
+    323:323:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:67 -> a
+    324:324:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):72:72 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> b
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):44:49 -> e
+    boolean isSwap() -> t2
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Switch -> com.android.tools.r8.t.b.g1:
+    int[] targetBlockIndices -> i
+    int fallthroughBlockIndex -> j
+    boolean $assertionsDisabled -> k
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.code.Value,int[],int):15:17 -> <init>
+    1:1:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock():51:51 -> F2
+    1:1:int getFallthroughBlockIndex():55:55 -> G2
+    1:1:int numberOfKeys():68:68 -> H2
+    1:1:int[] targetBlockIndices():40:40 -> I2
+    1:2:boolean valid():25:26 -> J2
+    3:3:int getTargetBlockIndex(int):36:36 -> J2
+    3:3:boolean valid():26 -> J2
+    4:4:int getFallthroughBlockIndex():55:55 -> J2
+    4:4:boolean valid():26 -> J2
+    5:5:boolean valid():26:26 -> J2
+    1:1:com.android.tools.r8.ir.code.Value value():21:21 -> K2
+    1:1:int getTargetBlockIndex(int):36:36 -> b
+    2:2:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):64:64 -> b
+    1:1:void setFallthroughBlockIndex(int):59:59 -> c
+    1:1:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):32:32 -> d
+    2:2:int[] targetBlockIndices():40:40 -> d
+    2:2:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):32 -> d
+    3:3:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):32:32 -> d
+    boolean isSwitch() -> u2
+    com.android.tools.r8.ir.code.Switch asSwitch() -> v0
+com.android.tools.r8.ir.code.Throw -> com.android.tools.r8.t.b.h1:
+    boolean $assertionsDisabled -> i
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value):20:20 -> <init>
+    1:1:int maxOutValueRegister():49:49 -> A2
+    int opcode() -> B2
+    1:1:com.android.tools.r8.ir.code.Value exception():34:34 -> G2
+    boolean instructionTypeCanThrow() -> Q0
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    1:326:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forThrow():0:325 -> a
+    1:326:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):76 -> a
+    327:327:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:39 -> a
+    328:328:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):81:81 -> a
+    329:329:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):86:86 -> a
+    330:347:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):91:108 -> a
+    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):60:60 -> b
+    boolean isThrow() -> v2
+    com.android.tools.r8.ir.code.Throw asThrow() -> w0
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier -> com.android.tools.r8.t.b.j1:
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice() -> a
+    1:1:com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier create(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):15:15 -> a
+    com.android.tools.r8.graph.DebugLocalInfo getLocalInfo() -> c
+com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier$1 -> com.android.tools.r8.t.b.i1:
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement val$type -> b
+    com.android.tools.r8.graph.DebugLocalInfo val$local -> a
+    1:1:void <init>(com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):15:15 -> <init>
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():24:24 -> a
+    1:1:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():19:19 -> c
+com.android.tools.r8.ir.code.Unop -> com.android.tools.r8.t.b.k1:
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
+    int maxOutValueRegister() -> A2
+    1:1:com.android.tools.r8.ir.code.Value source():25:25 -> F2
+    boolean hasInvariantOutType() -> K0
+    1:330:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():0:329 -> a
+    1:330:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):51 -> a
+    331:332:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):56:57 -> a
+    333:333:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):62:62 -> a
+    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
+    boolean isUnop() -> w2
+    int maxInValueRegister() -> z2
+com.android.tools.r8.ir.code.Ushr -> com.android.tools.r8.t.b.l1:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> K2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):53:53 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):63:63 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):78:78 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):68:68 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):73:73 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):58:58 -> d
+    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):33:33 -> g
+    com.android.tools.r8.ir.code.Ushr asUshr() -> x0
+    boolean isUshr() -> x2
+com.android.tools.r8.ir.code.Value -> com.android.tools.r8.t.b.m1:
+    boolean $assertionsDisabled -> p
+    int needsRegister -> j
+    boolean isThis -> k
+    com.android.tools.r8.ir.code.Value UNDEFINED -> o
+    int number -> a
+    com.android.tools.r8.ir.regalloc.LiveIntervals liveIntervals -> i
+    com.android.tools.r8.ir.code.Instruction definition -> b
+    com.android.tools.r8.ir.code.Value previousConsecutive -> h
+    java.util.Set uniqueUsers -> d
+    com.android.tools.r8.ir.code.Value nextConsecutive -> g
+    com.android.tools.r8.ir.code.Value$DebugData debugData -> m
+    java.util.Set uniquePhiUsers -> f
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeLattice -> n
+    java.util.LinkedList phiUsers -> e
+    com.android.tools.r8.utils.LongInterval valueRange -> l
+    java.util.LinkedList users -> c
+    1:166:void <clinit>():51:216 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):233:233 -> <init>
+    2:20:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):219:237 -> <init>
+    1:1:boolean hasDebugUsers():499:499 -> A
+    1:1:boolean hasLocalInfo():321:321 -> B
+    1:1:boolean hasPhiUsers():503:503 -> C
+    1:1:boolean hasUsers():507:507 -> D
+    1:1:boolean hasUsersInfo():630:630 -> E
+    1:1:boolean hasValueRange():991:991 -> F
+    1:8:boolean internalComputeNeedsRegister():778:785 -> G
+    1:1:boolean isArgument():917:917 -> H
+    1:1:boolean isConstClass():875:875 -> I
+    1:1:boolean isConstNumber():855:855 -> J
+    1:1:boolean isConstString():859:859 -> K
+    1:1:boolean isConstant():879:879 -> L
+    1:1:boolean isDexItemBasedConstString():863:863 -> M
+    boolean isFixedRegisterValue() -> N
+    1:1:boolean isLinked():410:410 -> O
+    1:3:boolean isNeverNull():911:913 -> P
+    1:1:boolean isThis():983:983 -> Q
+    1:1:boolean isUsed():539:539 -> R
+    2:2:int numberOfDebugUsers():531:531 -> R
+    2:2:boolean isUsed():539 -> R
+    boolean isValueOnStack() -> S
+    1:3:boolean isZero():1076:1078 -> T
+    1:3:void markAsThis():972:974 -> U
+    1:1:void markNonDebugLocalRead():148:148 -> V
+    1:3:boolean needsRegister():762:764 -> W
+    1:1:int numberOfAllNonDebugUsers():527:527 -> X
+    1:1:int numberOfAllUsers():535 -> X
+    2:2:int numberOfDebugUsers():531:531 -> X
+    2:2:int numberOfAllUsers():535 -> X
+    1:5:int numberOfPhiUsers():519:523 -> Y
+    1:5:int numberOfUsers():511:515 -> Z
+    boolean lambda$fullyRemovePhiUser$1(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Phi) -> a
+    boolean lambda$fullyRemoveUser$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
+    1:14:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):55:68 -> a
+    15:15:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):57:57 -> a
+    16:18:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    16:18:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):57 -> a
+    19:79:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):73:133 -> a
+    80:81:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):128:129 -> a
+    82:83:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):123:124 -> a
+    84:85:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):118:119 -> a
+    86:90:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):110:114 -> a
+    91:92:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):105:106 -> a
+    93:94:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):100:101 -> a
+    95:111:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):79:95 -> a
+    112:116:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):92:96 -> a
+    117:117:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueType):139:139 -> a
+    118:118:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueTypeConstraint):143:143 -> a
+    118:118:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueType):139 -> a
+    119:139:com.android.tools.r8.ir.code.Value getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration,java.util.function.Predicate):278:298 -> a
+    140:141:com.android.tools.r8.ir.code.Value getSpecificAliasedValue(java.util.function.Predicate):304:305 -> a
+    142:144:void setLocalInfo(com.android.tools.r8.graph.DebugLocalInfo):325:327 -> a
+    145:146:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):379:380 -> a
+    147:148:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):384:385 -> a
+    147:148:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380 -> a
+    149:157:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():183:191 -> a
+    149:157:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):385 -> a
+    149:157:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380 -> a
+    158:158:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():189:189 -> a
+    158:158:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):385 -> a
+    158:158:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380 -> a
+    159:159:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():186:186 -> a
+    159:159:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):385 -> a
+    159:159:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380 -> a
+    160:160:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380:380 -> a
+    161:162:boolean onlyUsedInBlock(com.android.tools.r8.ir.code.BasicBlock):430:431 -> a
+    163:165:java.util.Set aliasedUsers(com.android.tools.r8.ir.code.AliasedValueConfiguration):455:457 -> a
+    166:173:void collectAliasedUsersViaAssume(com.android.tools.r8.ir.code.AliasedValueConfiguration,java.util.Set,java.util.Set,java.util.Set):466:473 -> a
+    174:174:void collectAliasedUsersViaAssume(com.android.tools.r8.ir.code.AliasedValueConfiguration,java.util.Set,java.util.Set,java.util.Set):472:472 -> a
+    175:176:void addPhiUser(com.android.tools.r8.ir.code.Phi):594:595 -> a
+    177:179:java.util.Set affectedValues():645:647 -> a
+    180:180:void addAffectedValuesTo(java.util.Set):651:651 -> a
+    181:186:void forEachAffectedValue(java.util.function.Consumer):655:660 -> a
+    187:214:void replaceSelectiveUsers(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Map):692:719 -> a
+    215:224:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):726:735 -> a
+    225:238:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.join(com.android.tools.r8.ir.code.Value$DebugUse,com.android.tools.r8.ir.code.Value$DebugUse):196:209 -> a
+    225:238:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):735 -> a
+    239:239:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.join(com.android.tools.r8.ir.code.Value$DebugUse,com.android.tools.r8.ir.code.Value$DebugUse):197:197 -> a
+    239:239:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):735 -> a
+    240:240:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):735:735 -> a
+    241:242:void setLiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):753:754 -> a
+    243:244:void setNeedsRegister(boolean):768:769 -> a
+    245:254:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):883:892 -> a
+    255:255:void setValueRange(com.android.tools.r8.utils.LongInterval):987:987 -> a
+    256:256:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):1019:1019 -> a
+    257:257:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate):1024:1024 -> a
+    257:257:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):1019 -> a
+    258:258:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate):1024:1024 -> a
+    259:286:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,java.util.Set):1041:1068 -> a
+    287:288:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1087:1088 -> a
+    289:292:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1107:1107 -> a
+    300:301:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1115:1116 -> a
+    302:309:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1164:1171 -> a
+    310:310:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    310:310:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1172 -> a
+    311:331:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1173:1193 -> a
+    332:332:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    332:332:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1194 -> a
+    333:333:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1195:1195 -> a
+    334:334:boolean lambda$getDynamicLowerBoundType$5(com.android.tools.r8.ir.code.Value):1181:1181 -> a
+    1:15:boolean onlyDependsOnArgument():921:935 -> a0
+    16:16:boolean onlyDependsOnArgument():933:933 -> a0
+    boolean isPhi() -> b
+    1:2:void fullyRemovePhiUser(com.android.tools.r8.ir.code.Phi):604:605 -> b
+    3:4:void addDebugUser(com.android.tools.r8.ir.code.Instruction):609:610 -> b
+    5:13:void replaceDebugUser(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):740:748 -> b
+    14:14:boolean isDefinedByInstructionSatisfying(java.util.function.Predicate):896:896 -> b
+    15:37:boolean knownToBeBoolean(java.util.Set):946:968 -> b
+    38:45:void widening(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1094:1101 -> b
+    46:79:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):1125:1158 -> b
+    80:80:boolean lambda$getDynamicUpperBoundType$3(com.android.tools.r8.ir.code.Value):1128:1128 -> b
+    1:1:com.android.tools.r8.ir.code.ValueType outType():846:846 -> b0
+    1:1:java.util.Set aliasedUsers():451:451 -> c
+    2:4:java.util.Set aliasedUsers(com.android.tools.r8.ir.code.AliasedValueConfiguration):455:457 -> c
+    2:4:java.util.Set aliasedUsers():451 -> c
+    5:16:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):543:554 -> c
+    17:18:void addUser(com.android.tools.r8.ir.code.Instruction):569:570 -> c
+    19:20:void removePhiUser(com.android.tools.r8.ir.code.Phi):599:600 -> c
+    21:21:boolean lambda$getDynamicUpperBoundType$4(com.android.tools.r8.ir.code.Value):1136:1136 -> c
+    1:1:int requiredRegisters():313:313 -> c0
+    1:1:int compareTo(java.lang.Object):51:51 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.ir.code.Value):807:807 -> compareTo
+    2:2:int compareTo(java.lang.Object):51 -> compareTo
+    boolean lambda$replaceSelectiveUsers$2(com.android.tools.r8.ir.code.Value) -> d
+    1:2:void fullyRemoveUser(com.android.tools.r8.ir.code.Instruction):579:580 -> d
+    1:2:com.android.tools.r8.ir.code.Instruction singleUniqueUser():446:447 -> d0
+    com.android.tools.r8.ir.code.FixedRegisterValue asFixedRegisterValue() -> e
+    1:4:void linkTo(com.android.tools.r8.ir.code.Value):389:392 -> e
+    5:9:void removeDebugUser(com.android.tools.r8.ir.code.Instruction):622:626 -> e
+    1:4:java.util.Set uniquePhiUsers():484:487 -> e0
+    com.android.tools.r8.ir.code.Phi asPhi() -> f
+    1:2:void removeUser(com.android.tools.r8.ir.code.Instruction):574:575 -> f
+    3:15:void replaceUsers(com.android.tools.r8.ir.code.Value):667:679 -> f
+    1:4:java.util.Set uniqueUsers():439:442 -> f0
+    1:2:boolean usedInMonitorOperation():560:561 -> g0
+    1:6:void clearUsers():584:589 -> h
+    1:1:int hashCode():812:812 -> hashCode
+    1:6:void clearUsersInfo():634:639 -> i
+    1:2:void computeNeedsRegister():773:774 -> j
+    1:1:java.util.Set debugUsers():491:491 -> k
+    1:2:com.android.tools.r8.ir.code.Phi firstPhiUser():479:480 -> l
+    1:1:com.android.tools.r8.ir.code.Value getAliasedValue():269:269 -> m
+    2:2:com.android.tools.r8.ir.code.Value getAliasedValue():268:268 -> m
+    1:2:com.android.tools.r8.ir.code.ConstInstruction getConstInstruction():850:851 -> n
+    1:7:java.util.List getDebugLocalEnds():356:362 -> o
+    1:7:java.util.List getDebugLocalStarts():343:349 -> p
+    1:2:com.android.tools.r8.ir.code.Instruction getDefinition():249:250 -> q
+    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getLiveIntervals():758:758 -> r
+    1:1:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():317:317 -> s
+    1:1:com.android.tools.r8.ir.code.Value getNextConsecutive():422:422 -> t
+    1:26:java.lang.String toString():817:842 -> toString
+    1:1:int getNumber():309:309 -> u
+    1:1:com.android.tools.r8.ir.code.Value getPreviousConsecutive():426:426 -> v
+    1:1:com.android.tools.r8.ir.code.Value getStartOfConsecutive():415 -> v
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():1120:1120 -> w
+    1:11:com.android.tools.r8.utils.LongInterval getValueRange():1003:1013 -> x
+    1:1:boolean hasAliasedValue():254:254 -> y
+    1:1:boolean hasAnyUsers():495:495 -> z
+com.android.tools.r8.ir.code.Value$DebugData -> com.android.tools.r8.t.b.m1$a:
+    java.util.Map users -> b
+    com.android.tools.r8.graph.DebugLocalInfo local -> a
+    1:1:void <init>(com.android.tools.r8.graph.DebugLocalInfo):158:158 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.DebugLocalInfo):156:159 -> <init>
+com.android.tools.r8.ir.code.Value$DebugUse -> com.android.tools.r8.t.b.m1$b:
+    com.android.tools.r8.ir.code.Value$DebugUse START -> b
+    com.android.tools.r8.ir.code.Value$DebugUse[] $VALUES -> e
+    com.android.tools.r8.ir.code.Value$DebugUse LIVE -> a
+    com.android.tools.r8.ir.code.Value$DebugUse LIVE_FINAL -> d
+    com.android.tools.r8.ir.code.Value$DebugUse END -> c
+    boolean $assertionsDisabled -> f
+    1:3:void <clinit>():166:166 -> <clinit>
+    1:1:void <init>(java.lang.String,int):166:166 -> <init>
+com.android.tools.r8.ir.code.ValueNumberGenerator -> com.android.tools.r8.t.b.n1:
+    int nextValueNumber -> a
+    1:2:void <init>():6:7 -> <init>
+    1:1:int next():10:10 -> a
+com.android.tools.r8.ir.code.ValueType -> com.android.tools.r8.t.b.o1:
+    com.android.tools.r8.ir.code.ValueType DOUBLE -> e
+    com.android.tools.r8.ir.code.ValueType FLOAT -> c
+    com.android.tools.r8.ir.code.ValueType LONG -> d
+    com.android.tools.r8.ir.code.ValueType OBJECT -> a
+    com.android.tools.r8.ir.code.ValueType INT -> b
+    com.android.tools.r8.ir.code.ValueType[] $VALUES -> f
+    1:5:void <clinit>():14:18 -> <clinit>
+    6:6:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>(java.lang.String,int):13:13 -> <init>
+    1:1:boolean isObject():21:21 -> a
+    2:2:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84:84 -> a
+    3:3:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):79:79 -> a
+    3:3:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
+    4:4:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):77:77 -> a
+    4:4:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
+    5:15:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):63:73 -> a
+    5:15:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
+    16:20:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):71:75 -> a
+    16:20:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
+    21:21:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):69:69 -> a
+    21:21:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
+    22:35:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):88:101 -> a
+    36:36:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):99:99 -> a
+    37:37:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):97:97 -> a
+    38:38:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):95:95 -> a
+    39:39:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):93:93 -> a
+    40:55:com.android.tools.r8.ir.code.ValueType fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):106:121 -> a
+    1:1:boolean isWide():29:29 -> b
+    1:1:int requiredRegisters():33:33 -> c
+com.android.tools.r8.ir.code.ValueTypeConstraint -> com.android.tools.r8.t.b.p1:
+    com.android.tools.r8.ir.code.ValueTypeConstraint FLOAT -> c
+    com.android.tools.r8.ir.code.ValueTypeConstraint INT -> b
+    com.android.tools.r8.ir.code.ValueTypeConstraint OBJECT -> a
+    com.android.tools.r8.ir.code.ValueTypeConstraint DOUBLE -> g
+    com.android.tools.r8.ir.code.ValueTypeConstraint LONG -> f
+    com.android.tools.r8.ir.code.ValueTypeConstraint INT_OR_FLOAT_OR_OBJECT -> e
+    com.android.tools.r8.ir.code.ValueTypeConstraint INT_OR_FLOAT -> d
+    com.android.tools.r8.ir.code.ValueTypeConstraint[] $VALUES -> i
+    com.android.tools.r8.ir.code.ValueTypeConstraint LONG_OR_DOUBLE -> h
+    1:8:void <clinit>():14:21 -> <clinit>
+    9:9:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>(java.lang.String,int):13:13 -> <init>
+    1:1:boolean isWide():32:32 -> a
+    2:14:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):46:58 -> a
+    15:15:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):56:56 -> a
+    16:16:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):54:54 -> a
+    17:17:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):52:52 -> a
+    18:18:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):50:50 -> a
+    19:19:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):48:48 -> a
+    20:20:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):106:106 -> a
+    21:21:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):104:104 -> a
+    22:32:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):90:100 -> a
+    33:37:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):98:102 -> a
+    38:38:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):96:96 -> a
+    39:39:com.android.tools.r8.ir.code.ValueTypeConstraint fromDexType(com.android.tools.r8.graph.DexType):111:111 -> a
+    40:53:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):115:128 -> a
+    54:54:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):126:126 -> a
+    55:55:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):124:124 -> a
+    56:56:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):122:122 -> a
+    57:57:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):120:120 -> a
+    58:82:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):133:157 -> a
+    83:83:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):137:137 -> a
+    1:1:int requiredRegisters():42:42 -> b
+com.android.tools.r8.ir.code.WideConstant -> com.android.tools.r8.t.b.q1:
+    long decodedValue() -> a
+com.android.tools.r8.ir.code.Xor -> com.android.tools.r8.t.b.r1:
+    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):18:18 -> <init>
+    int opcode() -> B2
+    boolean isCommutative() -> G2
+    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():93:93 -> K2
+    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
+    int foldIntegers(int,int) -> a
+    long foldLongs(long,long) -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):48:48 -> a
+    2:2:boolean outTypeKnownToBeBoolean(java.util.Set):98:98 -> a
+    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):58:58 -> b
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):73:73 -> b
+    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> b
+    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):63:63 -> c
+    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):68:68 -> c
+    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):53:53 -> d
+    com.android.tools.r8.ir.code.Xor asXor() -> y0
+    boolean isXor() -> y2
+com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver -> com.android.tools.r8.ir.conversion.c:
+    java.util.Map unresolvedPayload -> a
+    java.util.Map payloadToData -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:10:void <init>():15:24 -> <init>
+    1:7:void addPayloadUser(com.android.tools.r8.code.FillArrayData):27:33 -> a
+    8:17:void resolve(com.android.tools.r8.code.FillArrayDataPayload):38:47 -> a
+    18:18:short[] getData(int):59:59 -> a
+    19:19:void clear():63:63 -> a
+    1:1:int getElementWidth(int):51:51 -> b
+    1:1:long getSize(int):55:55 -> c
+com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$1 -> com.android.tools.r8.ir.conversion.a:
+com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$PayloadData -> com.android.tools.r8.ir.conversion.b:
+    long size -> b
+    short[] data -> c
+    int element_width -> a
+    1:1:void <init>():17:17 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$1):17:17 -> <init>
+com.android.tools.r8.ir.conversion.CallGraph -> com.android.tools.r8.ir.conversion.d:
+    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult cycleEliminationResult -> b
+    java.util.Set nodes -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:1:void <init>(java.util.Set):246:246 -> <init>
+    2:4:void <init>(java.util.Set,com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult):249:251 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.CallGraphBuilder builder(com.android.tools.r8.graph.AppView):255:255 -> a
+    2:2:java.util.Set extractLeaves():270:270 -> a
+    3:15:java.util.Set extractNodes(java.util.function.Predicate,java.util.function.Consumer):278:290 -> a
+    1:2:com.android.tools.r8.ir.conversion.CallSiteInformation createCallSiteInformation(com.android.tools.r8.graph.AppView):260:261 -> b
+    3:3:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> b
+    3:3:com.android.tools.r8.ir.conversion.CallSiteInformation createCallSiteInformation(com.android.tools.r8.graph.AppView):262 -> b
+    4:4:java.util.Set extractRoots():274:274 -> b
+com.android.tools.r8.ir.conversion.CallGraph$Node -> com.android.tools.r8.ir.conversion.d$a:
+    com.android.tools.r8.graph.DexEncodedMethod method -> a
+    java.util.Set callees -> c
+    java.util.Set callers -> d
+    java.util.Set readers -> e
+    java.util.Set writers -> f
+    boolean $assertionsDisabled -> g
+    int numberOfCallSites -> b
+    1:1:void <clinit>():37:37 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):58:58 -> <init>
+    2:19:void <init>(com.android.tools.r8.graph.DexEncodedMethod):42:59 -> <init>
+    1:1:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node):63:63 -> a
+    2:11:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node,boolean):69:78 -> a
+    12:12:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node,boolean):76:76 -> a
+    13:24:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node,boolean):72:83 -> a
+    25:33:void cleanCalleesAndWritersForRemoval():133:141 -> a
+    1:15:void addReaderConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node):89:103 -> b
+    16:22:void addReaderConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node):97:103 -> b
+    23:31:void cleanCallersAndReadersForRemoval():146:154 -> b
+    1:1:java.util.Set getCalleesWithDeterministicOrder():163:163 -> c
+    2:2:boolean hasCallee(com.android.tools.r8.ir.conversion.CallGraph$Node):179:179 -> c
+    1:1:int compareTo(java.lang.Object):37:37 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.ir.conversion.CallGraph$Node):204:204 -> compareTo
+    2:2:int compareTo(java.lang.Object):37 -> compareTo
+    1:1:int getNumberOfCallSites():175:175 -> d
+    2:2:boolean hasCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):183:183 -> d
+    1:1:java.util.Set getReadersWithDeterministicOrder():167:167 -> e
+    2:2:boolean hasReader(com.android.tools.r8.ir.conversion.CallGraph$Node):187:187 -> e
+    1:1:java.util.Set getWritersWithDeterministicOrder():171:171 -> f
+    2:2:boolean hasWriter(com.android.tools.r8.ir.conversion.CallGraph$Node):191:191 -> f
+    1:5:void removeCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):117:121 -> g
+    6:6:boolean hasReader(com.android.tools.r8.ir.conversion.CallGraph$Node):187:187 -> g
+    6:6:void removeCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):121 -> g
+    7:7:void removeCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):121:121 -> g
+    8:8:boolean isLeaf():199:199 -> g
+    1:5:void removeReader(com.android.tools.r8.ir.conversion.CallGraph$Node):125:129 -> h
+    6:6:boolean hasCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):183:183 -> h
+    6:6:void removeReader(com.android.tools.r8.ir.conversion.CallGraph$Node):129 -> h
+    7:7:void removeReader(com.android.tools.r8.ir.conversion.CallGraph$Node):129:129 -> h
+    8:8:boolean isRoot():195:195 -> h
+    1:6:void removeReaderConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node):108:113 -> i
+    7:7:void removeReaderConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node):110:110 -> i
+    1:30:java.lang.String toString():209:238 -> toString
+com.android.tools.r8.ir.conversion.CallGraphBuilder -> com.android.tools.r8.ir.conversion.e:
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):19:19 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):16:16 -> a
+    2:2:void populateGraph(java.util.concurrent.ExecutorService):24:24 -> a
+    3:3:void processClass(com.android.tools.r8.graph.DexProgramClass):28:28 -> a
+    4:6:boolean verifyAllMethodsWithCodeExists():40:42 -> a
+    1:3:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):32:34 -> b
+    4:4:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):33:33 -> b
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase -> com.android.tools.r8.ir.conversion.g:
+    java.util.Map nodes -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map possibleTargetsCache -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.FieldAccessInfoCollection fieldAccessInfoCollection -> b
+    1:1:void <clinit>():49:49 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):57:57 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.AppView):53:59 -> <init>
+    void populateGraph(java.util.concurrent.ExecutorService) -> a
+    boolean verifyAllMethodsWithCodeExists() -> a
+    1:1:java.util.Map access$000(com.android.tools.r8.ir.conversion.CallGraphBuilderBase):49:49 -> a
+    2:5:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):63:66 -> a
+    6:8:boolean verifyNoRedundantFieldReadEdges():91:93 -> a
+    6:8:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):66 -> a
+    9:17:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):67:75 -> a
+    18:18:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet():405:405 -> a
+    18:18:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet(java.lang.Iterable):430 -> a
+    18:18:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):75 -> a
+    19:19:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet(java.lang.Iterable):431:431 -> a
+    19:19:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):75 -> a
+    20:28:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):76:84 -> a
+    29:29:void lambda$build$0(com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker):71:71 -> a
+    30:32:com.android.tools.r8.ir.conversion.CallGraph$Node getOrCreateNode(com.android.tools.r8.graph.DexEncodedMethod):100:102 -> a
+    33:33:com.android.tools.r8.ir.conversion.CallGraph$Node lambda$getOrCreateNode$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod):101:101 -> a
+    1:1:com.android.tools.r8.graph.FieldAccessInfoCollection access$100(com.android.tools.r8.ir.conversion.CallGraphBuilderBase):49:49 -> b
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$1 -> com.android.tools.r8.ir.conversion.f:
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator -> com.android.tools.r8.ir.conversion.g$a:
+    java.util.Map stackEntryInfo -> b
+    java.util.Deque writerStack -> c
+    java.util.Deque stack -> a
+    boolean $assertionsDisabled -> i
+    java.util.Set marked -> d
+    java.util.LinkedHashSet revisit -> h
+    java.util.Map calleesToBeRemoved -> e
+    java.util.Map writersToBeRemoved -> f
+    java.util.Map removedCallEdges -> g
+    1:1:void <clinit>():349:349 -> <clinit>
+    1:80:void <init>():349:428 -> <init>
+    1:2:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles(java.util.Collection):435:436 -> a
+    3:9:void prepareForNewTraversal():449:455 -> a
+    3:9:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles(java.util.Collection):437 -> a
+    10:14:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles(java.util.Collection):438:442 -> a
+    15:20:void reset():459:464 -> a
+    15:20:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles(java.util.Collection):444 -> a
+    21:22:void lambda$traverse$0(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem,com.android.tools.r8.ir.conversion.CallGraph$Node):567:568 -> a
+    23:47:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):585:609 -> a
+    48:49:boolean verifyCycleSatisfies(com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.function.Predicate):693:694 -> a
+    48:49:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):609 -> a
+    50:52:void recoverStack(java.util.LinkedList):736:738 -> a
+    50:52:boolean verifyCycleSatisfies(com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.function.Predicate):695 -> a
+    50:52:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):609 -> a
+    53:74:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):614:635 -> a
+    75:90:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):700:715 -> a
+    75:90:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):639 -> a
+    91:94:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):644:647 -> a
+    95:97:void recoverStack(java.util.LinkedList):736:738 -> a
+    95:97:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):651 -> a
+    98:98:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):719:719 -> a
+    98:98:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):639 -> a
+    99:99:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    99:99:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):719 -> a
+    99:99:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):639 -> a
+    100:100:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    100:100:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    100:100:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):719 -> a
+    100:100:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):639 -> a
+    101:101:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):719:719 -> a
+    101:101:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCalleesAndWriters(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):639 -> a
+    102:103:boolean lambda$iterateCalleesAndWriters$2(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$StackEntryInfo,java.util.LinkedList):612:613 -> a
+    104:108:java.util.LinkedList extractCycle(com.android.tools.r8.ir.conversion.CallGraph$Node):684:688 -> a
+    109:110:boolean callEdgeRemovalIsSafe(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):725:726 -> a
+    111:111:java.util.Set lambda$recordCallEdgeRemoval$5(com.android.tools.r8.graph.DexEncodedMethod):731:731 -> a
+    1:14:void traverse(java.util.Collection):524:537 -> b
+    15:19:void push(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):657:661 -> b
+    15:19:void traverse(java.util.Collection):538 -> b
+    20:21:void traverse(java.util.Collection):544:545 -> b
+    22:31:void traverse(java.util.Collection):543:552 -> b
+    32:40:void traverse(java.util.Collection):551:559 -> b
+    41:46:void pop(com.android.tools.r8.ir.conversion.CallGraph$Node):666:671 -> b
+    41:46:void traverse(java.util.Collection):559 -> b
+    47:62:void traverse(java.util.Collection):560:575 -> b
+    63:63:void lambda$traverse$1(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem,com.android.tools.r8.ir.conversion.CallGraph$Node):576:576 -> b
+    64:64:java.util.Set lambda$removeCallEdge$3(com.android.tools.r8.ir.conversion.CallGraph$Node):676:676 -> b
+    65:67:void recordCallEdgeRemoval(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):730:732 -> b
+    1:1:void removeCallEdge(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):676:676 -> c
+    2:2:java.util.Set lambda$removeFieldReadEdge$4(com.android.tools.r8.ir.conversion.CallGraph$Node):680:680 -> c
+    1:1:void removeFieldReadEdge(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):680:680 -> d
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge -> com.android.tools.r8.ir.conversion.g$a$a:
+    com.android.tools.r8.ir.conversion.CallGraph$Node callee -> b
+    com.android.tools.r8.ir.conversion.CallGraph$Node caller -> a
+    1:3:void <init>(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):359:361 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$600(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge):354:354 -> a
+    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$700(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge):354:354 -> b
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult -> com.android.tools.r8.ir.conversion.g$a$b:
+    java.util.Map removedCallEdges -> a
+    1:2:void <init>(java.util.Map):382:383 -> <init>
+    1:1:void forEachRemovedCaller(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer):387:387 -> a
+    2:3:int numberOfRemovedCallEdges():392:393 -> a
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem -> com.android.tools.r8.ir.conversion.g$a$c:
+    com.android.tools.r8.ir.conversion.CallGraph$Node callerOrReader -> a
+    java.util.Iterator calleesAndWriters -> b
+    1:3:void <init>(com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.Iterator):507:509 -> <init>
+    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem asIterator() -> a
+    1:1:java.util.Iterator access$400(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem):503:503 -> a
+    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$500(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem):503:503 -> b
+    boolean isIterator() -> c
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$NodeWorkItem -> com.android.tools.r8.ir.conversion.g$a$d:
+    com.android.tools.r8.ir.conversion.CallGraph$Node node -> a
+    1:2:void <init>(com.android.tools.r8.ir.conversion.CallGraph$Node):488:489 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$300(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$NodeWorkItem):485:485 -> a
+    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$NodeWorkItem asNode() -> b
+    boolean isNode() -> d
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$StackEntryInfo -> com.android.tools.r8.ir.conversion.g$a$e:
+    com.android.tools.r8.ir.conversion.CallGraph$Node predecessor -> b
+    boolean processed -> c
+    int index -> a
+    1:3:void <init>(int,com.android.tools.r8.ir.conversion.CallGraph$Node):372:374 -> <init>
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$WorkItem -> com.android.tools.r8.ir.conversion.g$a$f:
+    1:1:void <init>():467:467 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$1):467:467 -> <init>
+    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem asIterator() -> a
+    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$NodeWorkItem asNode() -> b
+    boolean isIterator() -> c
+    boolean isNode() -> d
+com.android.tools.r8.ir.conversion.CallGraphBuilderBase$InvokeExtractor -> com.android.tools.r8.ir.conversion.g$b:
+    com.android.tools.r8.ir.conversion.CallGraph$Node currentMethod -> a
+    com.android.tools.r8.ir.conversion.CallGraphBuilderBase this$0 -> c
+    java.util.function.Predicate targetTester -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():107:107 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.conversion.CallGraphBuilderBase,com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.function.Predicate):112:115 -> <init>
+    1:3:void addClassInitializerTarget(com.android.tools.r8.graph.DexProgramClass):119:121 -> a
+    4:5:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):126:127 -> a
+    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    6:6:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):127 -> a
+    7:9:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):127:129 -> a
+    10:24:void addCallEdge(com.android.tools.r8.graph.DexEncodedMethod,boolean):134:148 -> a
+    25:30:void addFieldReadEdge(com.android.tools.r8.graph.DexEncodedMethod):152:157 -> a
+    31:49:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):161:179 -> a
+    50:50:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    50:50:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):180 -> a
+    51:57:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):180:186 -> a
+    58:61:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):169:172 -> a
+    62:63:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):194:195 -> a
+    64:64:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    64:64:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):195 -> a
+    65:98:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):197:230 -> a
+    99:104:java.util.Set lambda$processInvokeWithDynamicDispatch$0(boolean,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):213:218 -> a
+    105:108:java.util.Set lambda$processInvokeWithDynamicDispatch$0(boolean,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):217:220 -> a
+    109:118:void processFieldRead(com.android.tools.r8.graph.DexField):237:246 -> a
+    119:119:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    119:119:void processFieldRead(com.android.tools.r8.graph.DexField):247 -> a
+    120:120:void processFieldRead(com.android.tools.r8.graph.DexField):247:247 -> a
+    121:121:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    121:121:void processFieldRead(com.android.tools.r8.graph.DexField):253 -> a
+    122:128:void processFieldRead(com.android.tools.r8.graph.DexField):254:260 -> a
+    1:2:void processFieldWrite(com.android.tools.r8.graph.DexField):266:267 -> b
+    3:3:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> b
+    3:3:void processFieldWrite(com.android.tools.r8.graph.DexField):268 -> b
+    4:4:void processFieldWrite(com.android.tools.r8.graph.DexField):270:270 -> b
+    1:1:void registerCallSite(com.android.tools.r8.graph.DexCallSite):344:344 -> registerCallSite
+    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):307:307 -> registerInstanceFieldRead
+    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):313:313 -> registerInstanceFieldWrite
+    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):283:283 -> registerInvokeDirect
+    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):295:295 -> registerInvokeInterface
+    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):289:289 -> registerInvokeStatic
+    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):301:301 -> registerInvokeSuper
+    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):277:277 -> registerInvokeVirtual
+    1:2:boolean registerNewInstance(com.android.tools.r8.graph.DexType):319:320 -> registerNewInstance
+    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):327:327 -> registerStaticFieldRead
+    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):333:333 -> registerStaticFieldWrite
+com.android.tools.r8.ir.conversion.CallSiteInformation -> com.android.tools.r8.ir.conversion.h:
+    1:1:void <init>():14:14 -> <init>
+    boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod) -> a
+    boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod) -> b
+com.android.tools.r8.ir.conversion.CallSiteInformation$CallGraphBasedCallSiteInformation -> com.android.tools.r8.ir.conversion.h$a:
+    java.util.Set singleCallSite -> a
+    java.util.Set doubleCallSite -> b
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):50:50 -> <init>
+    2:25:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):47:70 -> <init>
+    1:1:boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod):94:94 -> a
+    1:1:boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod):83:83 -> b
+com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation -> com.android.tools.r8.ir.conversion.i:
+    com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation EMPTY_INFO -> a
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:1:void <init>():30:30 -> <init>
+    boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod) -> a
+    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation access$000():30:30 -> a
+    boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod) -> b
+com.android.tools.r8.ir.conversion.CfBuilder -> com.android.tools.r8.ir.conversion.l:
+    com.android.tools.r8.ir.code.Position currentPosition -> h
+    java.util.Map newInstanceLabels -> q
+    java.util.List thisInitializers -> p
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.code.BasicBlock pendingFrame -> l
+    boolean pendingLocalChanges -> k
+    java.util.Map initializers -> o
+    com.android.tools.r8.ir.code.IRCode code -> c
+    boolean $assertionsDisabled -> r
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap openLocalVariables -> n
+    java.util.Map labels -> d
+    com.android.tools.r8.cf.CfRegisterAllocator registerAllocator -> g
+    java.util.List instructions -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap pendingLocals -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap emittedLocals -> i
+    java.util.Set emittedLabels -> e
+    com.android.tools.r8.graph.DexEncodedMethod method -> b
+    java.util.List localVariablesTable -> m
+    1:1:void <clinit>():69:69 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):125:125 -> <init>
+    2:46:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):84:128 -> <init>
+    1:2:com.android.tools.r8.graph.DexField resolveField(com.android.tools.r8.graph.DexField):186:187 -> a
+    3:20:void computeInitializers():191:208 -> a
+    3:20:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):132 -> a
+    21:23:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):133:135 -> a
+    24:36:void rewriteNots():225:237 -> a
+    24:36:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):136 -> a
+    37:37:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    37:37:void rewriteNots():237 -> a
+    37:37:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):136 -> a
+    38:46:void rewriteNots():238:246 -> a
+    38:46:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):136 -> a
+    47:47:void rewriteNots():245:245 -> a
+    47:47:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):136 -> a
+    48:68:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):137:157 -> a
+    69:106:void rewriteIincPatterns():361:398 -> a
+    69:106:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):160 -> a
+    107:107:int getLocalRegister(com.android.tools.r8.ir.code.Value):641:641 -> a
+    107:107:void rewriteIincPatterns():398 -> a
+    107:107:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):160 -> a
+    108:108:void rewriteIincPatterns():398:398 -> a
+    108:108:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):160 -> a
+    109:109:int getLocalRegister(com.android.tools.r8.ir.code.Value):641:641 -> a
+    109:109:void rewriteIincPatterns():398 -> a
+    109:109:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):160 -> a
+    110:128:void rewriteIincPatterns():399:417 -> a
+    110:128:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):160 -> a
+    129:129:void rewriteIincPatterns():395:395 -> a
+    129:129:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):160 -> a
+    130:130:void rewriteIincPatterns():390:390 -> a
+    130:130:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):160 -> a
+    131:132:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):162:163 -> a
+    133:153:com.android.tools.r8.graph.CfCode buildCfCode():261:281 -> a
+    133:153:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    154:180:com.android.tools.r8.graph.CfCode buildCfCode():280:306 -> a
+    154:180:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    181:181:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    181:181:com.android.tools.r8.graph.CfCode buildCfCode():306 -> a
+    181:181:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    182:183:com.android.tools.r8.graph.CfCode buildCfCode():306:307 -> a
+    182:183:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    184:186:int stackHeightAtBlockEntry(com.android.tools.r8.ir.code.BasicBlock):253:255 -> a
+    184:186:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
+    184:186:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    187:188:void com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker.setHeight(int):120:121 -> a
+    187:188:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
+    187:188:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    189:189:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):424:424 -> a
+    189:189:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    189:189:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    190:190:boolean hasMaterializingInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):352:352 -> a
+    190:190:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):425 -> a
+    190:190:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    190:190:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    191:195:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):341:345 -> a
+    191:195:boolean hasMaterializingInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):353 -> a
+    191:195:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):425 -> a
+    191:195:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    191:195:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    196:198:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):429:431 -> a
+    196:198:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    196:198:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    199:232:void addFrame(com.android.tools.r8.ir.code.BasicBlock):543:576 -> a
+    199:232:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):431 -> a
+    199:232:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    199:232:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    233:243:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):432:442 -> a
+    233:243:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    233:243:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    244:245:void com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker.pop(com.android.tools.r8.ir.code.Value):115:116 -> a
+    244:245:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):442 -> a
+    244:245:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    244:245:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    246:263:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):445:462 -> a
+    246:263:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    246:263:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    264:281:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):471:488 -> a
+    264:281:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):464 -> a
+    264:281:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    264:281:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    282:282:void add(com.android.tools.r8.cf.code.CfInstruction):645:645 -> a
+    282:282:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):488 -> a
+    282:282:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):464 -> a
+    282:282:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    282:282:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    283:283:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):489:489 -> a
+    283:283:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):464 -> a
+    283:283:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    283:283:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    284:284:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):465:465 -> a
+    284:284:com.android.tools.r8.graph.CfCode buildCfCode():311 -> a
+    284:284:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    285:285:com.android.tools.r8.graph.CfCode buildCfCode():313:313 -> a
+    285:285:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    286:286:boolean com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker.isEmpty():105:105 -> a
+    286:286:com.android.tools.r8.graph.CfCode buildCfCode():313 -> a
+    286:286:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    287:307:com.android.tools.r8.graph.CfCode buildCfCode():313:333 -> a
+    287:307:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):164 -> a
+    308:308:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):165:165 -> a
+    309:316:boolean verifyInvokeInterface(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.AppView):170:177 -> a
+    309:316:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):165 -> a
+    317:317:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    317:317:boolean verifyInvokeInterface(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.AppView):177 -> a
+    317:317:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):165 -> a
+    318:318:boolean verifyInvokeInterface(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.AppView):178:178 -> a
+    318:318:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.DeadCodeRemover):165 -> a
+    319:325:java.util.List computeInitializers(com.android.tools.r8.ir.code.Value):212:218 -> a
+    326:326:com.android.tools.r8.cf.code.CfInstruction getLastInstruction():539:539 -> a
+    326:326:com.android.tools.r8.cf.code.CfLabel ensureLabel():529 -> a
+    327:330:com.android.tools.r8.cf.code.CfLabel ensureLabel():530:533 -> a
+    331:331:void add(com.android.tools.r8.cf.code.CfInstruction):645:645 -> a
+    331:331:com.android.tools.r8.cf.code.CfLabel ensureLabel():534 -> a
+    332:333:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):580:581 -> a
+    334:364:com.android.tools.r8.cf.code.CfFrame$FrameType findAllocator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):590:620 -> a
+    334:364:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):583 -> a
+    365:365:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):584:584 -> a
+    366:366:com.android.tools.r8.cf.code.CfFrame$FrameType findAllocator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):597:597 -> a
+    366:366:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):583 -> a
+    367:369:void emitLabel(com.android.tools.r8.cf.code.CfLabel):628:630 -> a
+    370:370:com.android.tools.r8.cf.code.CfLabel getLabel(com.android.tools.r8.ir.code.BasicBlock):637:637 -> a
+    371:371:void add(com.android.tools.r8.cf.code.CfInstruction):645:645 -> a
+    1:20:void updateLocals(com.android.tools.r8.cf.code.CfLabel):494:513 -> b
+    21:26:void updateLocals(com.android.tools.r8.cf.code.CfLabel):512:517 -> b
+    27:30:boolean localsChanged():521:524 -> b
+    31:31:com.android.tools.r8.cf.code.CfLabel lambda$getLabel$0(com.android.tools.r8.ir.code.BasicBlock):637:637 -> b
+    32:32:int getLocalRegister(com.android.tools.r8.ir.code.Value):641:641 -> b
+com.android.tools.r8.ir.conversion.CfBuilder$1 -> com.android.tools.r8.ir.conversion.j:
+com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker -> com.android.tools.r8.ir.conversion.k:
+    int height -> b
+    boolean $assertionsDisabled -> c
+    int maxHeight -> a
+    1:1:void <clinit>():100:100 -> <clinit>
+    1:3:void <init>():100:102 -> <init>
+    4:4:void <init>(com.android.tools.r8.ir.conversion.CfBuilder$1):100:100 -> <init>
+    1:3:void push(com.android.tools.r8.ir.code.Value):109:111 -> a
+com.android.tools.r8.ir.conversion.CfSourceCode -> com.android.tools.r8.ir.conversion.o:
+    int currentInstructionIndex -> o
+    com.android.tools.r8.graph.CfCode code -> h
+    com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo currentBlockInfo -> a
+    boolean inPrelude -> p
+    boolean $assertionsDisabled -> v
+    com.android.tools.r8.utils.InternalOutputMode internalOutputMode -> u
+    com.android.tools.r8.ir.code.Monitor monitorEnter -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap incomingState -> s
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap outgoingLocals -> r
+    com.android.tools.r8.origin.Origin origin -> j
+    com.android.tools.r8.graph.AppView appView -> k
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap incomingLocals -> q
+    com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList cachedLocalVariableList -> n
+    com.android.tools.r8.ir.conversion.CfState state -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap labelOffsets -> l
+    com.android.tools.r8.ir.code.CanonicalPositions canonicalPositions -> t
+    java.util.List localVariables -> g
+    com.android.tools.r8.graph.DexEncodedMethod method -> i
+    boolean hasExitingInstruction -> b
+    boolean needsGeneratedMethodSynchronization -> c
+    boolean currentlyGeneratingMethodSynchronization -> d
+    com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList cachedTryHandlerList -> m
+    1:1:void <clinit>():55:55 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.CfCode,java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.AppView):226:226 -> <init>
+    2:193:void <init>(com.android.tools.r8.graph.CfCode,java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.AppView):58:249 -> <init>
+    int getMoveExceptionRegister(int) -> a
+    void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
+    1:1:int instructionCount():262:262 -> a
+    2:6:boolean canThrowHelper(com.android.tools.r8.cf.code.CfInstruction):290:294 -> a
+    7:9:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):299:301 -> a
+    10:10:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    10:10:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):301 -> a
+    11:13:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):301:301 -> a
+    15:39:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):303:327 -> a
+    40:40:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):334:334 -> a
+    41:41:boolean com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList.validFor(int):80:80 -> a
+    41:41:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):334 -> a
+    42:45:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):335:338 -> a
+    46:53:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):336:343 -> a
+    54:78:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):384:408 -> a
+    79:81:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):428:430 -> a
+    79:81:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):409 -> a
+    82:82:boolean isStatic():416:416 -> a
+    82:82:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):432 -> a
+    82:82:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):409 -> a
+    83:91:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):433:441 -> a
+    83:91:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):409 -> a
+    92:93:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):411:412 -> a
+    94:99:void buildExceptionalExitMethodSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):445:450 -> a
+    94:99:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):509 -> a
+    100:111:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):512:523 -> a
+    112:123:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):520:531 -> a
+    124:428:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState$Snapshot.exceptionTransfer(com.android.tools.r8.graph.DexType):0:304 -> a
+    124:428:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):531 -> a
+    429:439:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):532:542 -> a
+    440:443:void endLocals(com.android.tools.r8.ir.conversion.IRBuilder):691:694 -> a
+    440:443:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):561 -> a
+    444:456:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):544:556 -> a
+    457:457:void build(com.android.tools.r8.cf.code.CfInstruction,com.android.tools.r8.ir.conversion.IRBuilder):580:580 -> a
+    457:457:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):564 -> a
+    458:464:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):566:572 -> a
+    465:470:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):700:705 -> a
+    465:470:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):575 -> a
+    471:483:java.lang.String prettyType(com.android.tools.r8.ir.code.ValueType):717:729 -> a
+    471:483:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):707 -> a
+    471:483:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):575 -> a
+    484:488:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):707:711 -> a
+    484:488:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):575 -> a
+    489:491:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):471:471 -> a
+    495:519:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):475:499 -> a
+    520:521:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):584:585 -> a
+    522:526:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):111:115 -> a
+    522:526:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
+    527:542:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):119:134 -> a
+    527:542:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
+    527:542:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
+    543:543:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    543:543:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):134 -> a
+    543:543:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
+    543:543:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
+    544:544:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):134:134 -> a
+    544:544:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
+    544:544:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
+    545:545:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):587:587 -> a
+    546:546:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):120:120 -> a
+    546:546:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
+    546:546:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
+    547:547:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    547:547:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):120 -> a
+    547:547:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
+    547:547:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
+    548:548:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):120:120 -> a
+    548:548:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
+    548:548:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
+    549:550:int getLabelOffset(com.android.tools.r8.cf.code.CfLabel):596:597 -> a
+    551:561:void setStateFromFrame(com.android.tools.r8.cf.code.CfFrame):601:611 -> a
+    562:562:void setStateFromFrame(com.android.tools.r8.cf.code.CfFrame):610:610 -> a
+    563:586:com.android.tools.r8.graph.DexType convertUninitialized(com.android.tools.r8.cf.code.CfFrame$FrameType):615:638 -> a
+    587:587:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int):652:652 -> a
+    588:594:com.android.tools.r8.ir.code.Position getCanonicalPosition(com.android.tools.r8.ir.code.Position):804:804 -> a
+    int instructionOffset(int) -> b
+    void setUp() -> b
+    1:4:void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder):455:458 -> b
+    5:6:boolean isControlFlow(com.android.tools.r8.cf.code.CfInstruction):734:735 -> b
+    1:1:boolean isCurrentlyGeneratingMethodSynchronization():420:420 -> c
+    1:1:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):742 -> c
+    2:4:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):745:747 -> c
+    5:10:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):746:751 -> c
+    11:11:boolean isCurrentlyGeneratingMethodSynchronization():420:420 -> c
+    11:11:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):662 -> c
+    12:12:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):665:665 -> c
+    13:13:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):657:657 -> c
+    13:13:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):666 -> c
+    14:16:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):668:670 -> c
+    17:17:boolean isCurrentlyGeneratingMethodSynchronization():420:420 -> c
+    17:17:boolean verifyCurrentInstructionCanThrow():761 -> c
+    18:19:boolean verifyCurrentInstructionCanThrow():761:762 -> c
+    20:20:boolean lambda$getCanonicalDebugPositionAtOffset$0(com.android.tools.r8.cf.code.CfInstruction):777:777 -> c
+    1:3:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):773:773 -> d
+    12:25:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):782:795 -> d
+    26:26:com.android.tools.r8.ir.code.Position lambda$getCanonicalDebugPositionAtOffset$1(com.android.tools.r8.cf.code.CfInstruction):778:778 -> d
+    27:27:com.android.tools.r8.ir.code.Position getCurrentPosition():800:800 -> d
+    1:1:boolean isCurrentlyGeneratingMethodSynchronization():420:420 -> e
+    1:1:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):657 -> e
+    2:2:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):657:657 -> e
+    3:3:int getCurrentInstructionIndex():592:592 -> e
+    boolean verifyRegister(int) -> f
+    1:1:com.android.tools.r8.origin.Origin getOrigin():253:253 -> f
+    int instructionIndex(int) -> g
+    1:1:com.android.tools.r8.graph.DexType getOriginalHolder():257:257 -> g
+    1:1:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):347:347 -> h
+    2:2:boolean com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList.validFor(int):175:175 -> h
+    2:2:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):347 -> h
+    3:6:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):348:351 -> h
+    7:7:java.lang.Iterable lambda$getCanonicalDebugPositionAtOffset$2():779:779 -> h
+    8:11:java.lang.Iterable lambda$getCanonicalDebugPositionAtOffset$2():776:779 -> h
+    1:25:int[] getTargets(int):355:379 -> i
+    26:27:int[] getTargets(int):359:360 -> i
+    28:28:boolean localsChanged():687:687 -> i
+    1:9:void setLocalVariableLists():674:682 -> j
+    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps.emptyMap():198:198 -> j
+    10:10:void setLocalVariableLists():683 -> j
+    11:11:void setLocalVariableLists():683:683 -> j
+com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList -> com.android.tools.r8.ir.conversion.m:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap locals -> c
+    int endOffset -> b
+    int startOffset -> a
+    1:4:void <init>(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):140:143 -> <init>
+    1:18:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):153:170 -> a
+    19:19:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps.emptyMap():198:198 -> a
+    19:19:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):171 -> a
+    20:20:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):171:171 -> a
+com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList -> com.android.tools.r8.ir.conversion.n:
+    java.util.List guards -> c
+    boolean $assertionsDisabled -> e
+    int endOffset -> b
+    int startOffset -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList offsets -> d
+    1:1:void <clinit>():65:65 -> <clinit>
+    1:5:void <init>(int,int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):72:76 -> <init>
+    1:2:boolean isEmpty():84:85 -> a
+    3:4:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):96:97 -> a
+    5:5:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> a
+    5:5:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):97 -> a
+    6:6:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):98:98 -> a
+    7:7:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet.<init>():104:104 -> a
+    7:7:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):98 -> a
+    8:36:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):100:128 -> a
+com.android.tools.r8.ir.conversion.CfState -> com.android.tools.r8.ir.conversion.t:
+    com.android.tools.r8.ir.conversion.CfState$Snapshot current -> a
+    com.android.tools.r8.ir.code.Position position -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.origin.Origin):72:72 -> <init>
+    1:1:void buildPrelude(com.android.tools.r8.ir.code.Position):79:79 -> a
+    2:2:void com.android.tools.r8.ir.conversion.CfState$BaseSnapshot.<init>():314:314 -> a
+    2:2:void buildPrelude(com.android.tools.r8.ir.code.Position):79 -> a
+    3:4:void buildPrelude(com.android.tools.r8.ir.code.Position):79:80 -> a
+    5:7:void reset(com.android.tools.r8.ir.conversion.CfState$Snapshot,boolean,com.android.tools.r8.ir.code.Position):88:90 -> a
+    8:8:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):94:94 -> a
+    9:9:int stackHeight():150:150 -> a
+    9:9:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):94 -> a
+    10:11:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):94:95 -> a
+    12:12:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.conversion.CfState$Slot):154:154 -> a
+    13:13:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.graph.DexType):158:158 -> a
+    14:14:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.code.ValueType):162:162 -> a
+    15:17:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.conversion.CfState$SlotType):166:168 -> a
+    18:18:void updateState(com.android.tools.r8.ir.conversion.CfState$Snapshot):172:172 -> a
+    19:19:com.android.tools.r8.ir.conversion.CfState$Slot peek(int):194:194 -> a
+    20:20:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.graph.DexType):202:202 -> a
+    21:22:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$SlotType):210:211 -> a
+    21:22:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.graph.DexType):202 -> a
+    23:23:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$Slot):206:206 -> a
+    24:25:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$SlotType):210:211 -> a
+    24:25:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$Slot):206 -> a
+    26:26:com.android.tools.r8.ir.code.Position getPosition():215:215 -> a
+    1:1:com.android.tools.r8.ir.conversion.CfState$Snapshot getSnapshot():107:107 -> b
+    2:2:com.android.tools.r8.ir.conversion.CfState$Slot read(int):198:198 -> b
+    3:4:void setPosition(com.android.tools.r8.ir.code.Position):219:220 -> b
+    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():190:190 -> c
+    1:2:com.android.tools.r8.ir.conversion.CfState$Slot pop():176:177 -> d
+    1:1:java.lang.String toString():225:225 -> toString
+com.android.tools.r8.ir.conversion.CfState$1 -> com.android.tools.r8.ir.conversion.p:
+com.android.tools.r8.ir.conversion.CfState$BaseSnapshot -> com.android.tools.r8.ir.conversion.q:
+    com.android.tools.r8.ir.conversion.CfState$SlotType[] locals -> c
+    com.android.tools.r8.ir.conversion.CfState$SlotType[] stack -> d
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():309:309 -> <clinit>
+    1:3:void <init>(int,int):318:320 -> <init>
+    4:5:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot):324:325 -> <init>
+    6:15:void <init>(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):329:338 -> <init>
+    com.android.tools.r8.ir.conversion.CfState$BaseSnapshot asBase() -> a
+    1:3:com.android.tools.r8.ir.conversion.CfState$SlotType getSlotType(com.android.tools.r8.graph.DexType):343:345 -> a
+    4:8:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):371:375 -> a
+    9:13:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):380:384 -> a
+    1:1:int maxLocal():355:355 -> b
+    2:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):360:360 -> b
+    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():365:365 -> c
+    2:2:int stackHeight():350:350 -> c
+    2:2:com.android.tools.r8.ir.conversion.CfState$Slot peek():365 -> c
+    3:3:com.android.tools.r8.ir.conversion.CfState$Slot peek():365:365 -> c
+    4:4:int stackHeight():350:350 -> c
+    4:4:com.android.tools.r8.ir.conversion.CfState$Slot peek():366 -> c
+    5:5:com.android.tools.r8.ir.conversion.CfState$Slot peek():366:366 -> c
+    1:1:int stackHeight():350:350 -> d
+    1:15:java.lang.String toString():395:409 -> toString
+com.android.tools.r8.ir.conversion.CfState$Pop -> com.android.tools.r8.ir.conversion.r:
+    int stackHeight -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():452:452 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot):457:459 -> <init>
+    1:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):469:470 -> b
+    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():475:475 -> c
+    1:1:int stackHeight():464:464 -> d
+    1:1:java.lang.String toString():480:480 -> toString
+com.android.tools.r8.ir.conversion.CfState$Push -> com.android.tools.r8.ir.conversion.s:
+    com.android.tools.r8.ir.conversion.CfState$Slot slot -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():413:413 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$SlotType):418:420 -> <init>
+    1:3:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):440:442 -> a
+    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):430:430 -> b
+    2:2:com.android.tools.r8.ir.conversion.CfState$Slot peek():435:435 -> b
+    2:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):430 -> b
+    3:3:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):430:430 -> b
+    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():435:435 -> c
+    1:1:int stackHeight():425:425 -> d
+    1:1:java.lang.String toString():448:448 -> toString
+com.android.tools.r8.ir.conversion.CfState$Slot -> com.android.tools.r8.ir.conversion.t$a:
+    com.android.tools.r8.ir.conversion.CfState$SlotType slotType -> d
+    com.android.tools.r8.ir.code.ValueType type -> b
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.DexType preciseType -> c
+    int register -> a
+    1:1:void <clinit>():228:228 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.ir.conversion.CfState$SlotType,com.android.tools.r8.ir.conversion.CfState$1):228:228 -> <init>
+    2:6:void <init>(int,com.android.tools.r8.ir.conversion.CfState$SlotType):240:244 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.CfState$SlotType access$100(com.android.tools.r8.ir.conversion.CfState$Slot):228:228 -> a
+    2:2:com.android.tools.r8.ir.conversion.CfState$Slot stackSlot(int,com.android.tools.r8.ir.conversion.CfState$SlotType):248:248 -> a
+    2:2:com.android.tools.r8.ir.conversion.CfState$Slot access$300(int,com.android.tools.r8.ir.conversion.CfState$SlotType):228 -> a
+    1:2:int stackPosition():252:253 -> b
+    1:2:int access$500(com.android.tools.r8.ir.conversion.CfState$Slot):228 -> b
+    1:3:java.lang.String toString():258:260 -> toString
+com.android.tools.r8.ir.conversion.CfState$SlotType -> com.android.tools.r8.ir.conversion.w:
+    1:1:void <init>():14:14 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.conversion.CfState$1):14:14 -> <init>
+    com.android.tools.r8.ir.code.ValueType getImprecise() -> a
+    com.android.tools.r8.graph.DexType getPrecise() -> b
+com.android.tools.r8.ir.conversion.CfState$SlotType$Imprecise -> com.android.tools.r8.ir.conversion.u:
+    com.android.tools.r8.ir.code.ValueType type -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.ValueType):47:48 -> <init>
+    1:1:com.android.tools.r8.ir.code.ValueType getImprecise():58:58 -> a
+    com.android.tools.r8.graph.DexType getPrecise() -> b
+    1:1:java.lang.String toString():63:63 -> toString
+com.android.tools.r8.ir.conversion.CfState$SlotType$Precise -> com.android.tools.r8.ir.conversion.v:
+    com.android.tools.r8.graph.DexType type -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexType):23:24 -> <init>
+    1:1:com.android.tools.r8.ir.code.ValueType getImprecise():34:34 -> a
+    1:1:com.android.tools.r8.graph.DexType getPrecise():29:29 -> b
+    1:1:java.lang.String toString():39:39 -> toString
+com.android.tools.r8.ir.conversion.CfState$Snapshot -> com.android.tools.r8.ir.conversion.x:
+    com.android.tools.r8.ir.conversion.CfState$Snapshot parent -> a
+    int updates -> b
+    1:1:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int,com.android.tools.r8.ir.conversion.CfState$1):264:264 -> <init>
+    2:4:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int):268:270 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):290:290 -> a
+    2:2:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):294:294 -> a
+    3:3:com.android.tools.r8.ir.conversion.CfState$BaseSnapshot asBase():298:298 -> a
+    1:1:int maxLocal():278:278 -> b
+    2:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):282:282 -> b
+    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():286:286 -> c
+    1:1:int stackHeight():274:274 -> d
+com.android.tools.r8.ir.conversion.CfState$Write -> com.android.tools.r8.ir.conversion.y:
+    com.android.tools.r8.ir.conversion.CfState$Slot slot -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():484:484 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int,com.android.tools.r8.ir.conversion.CfState$SlotType):489:491 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):501:501 -> a
+    2:3:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):506:507 -> a
+    1:1:int maxLocal():496:496 -> b
+    1:1:java.lang.String toString():512:512 -> toString
+com.android.tools.r8.ir.conversion.CodeOptimization -> com.android.tools.r8.ir.conversion.z:
+    void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor) -> a
+com.android.tools.r8.ir.conversion.DexBuilder -> com.android.tools.r8.ir.conversion.K:
+    boolean hasBackwardsBranch -> m
+    boolean $assertionsDisabled -> o
+    int outRegisterCount -> l
+    int inRegisterCount -> k
+    int minOffset -> h
+    com.android.tools.r8.utils.InternalOptions options -> c
+    com.android.tools.r8.ir.code.IRCode ir -> a
+    int maxOffset -> g
+    com.android.tools.r8.ir.conversion.DexBuilder$Info[] instructionToInfo -> i
+    com.android.tools.r8.ir.conversion.DexBuilder$Info previousNonFallthroughInfo -> j
+    com.android.tools.r8.ir.code.BasicBlock nextBlock -> n
+    java.util.List fillArrayDataInfos -> e
+    java.util.List switchPayloadInfos -> d
+    com.android.tools.r8.ir.regalloc.RegisterAllocator registerAllocator -> b
+    java.util.Set ifsNeedingRewrite -> f
+    1:1:void <clinit>():83:83 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):125:126 -> <init>
+    3:3:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.utils.InternalOptions):129:129 -> <init>
+    4:43:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.utils.InternalOptions):95:134 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.DexBuilder$Info access$000(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.BasicBlock):83:83 -> a
+    2:2:com.android.tools.r8.ir.conversion.DexBuilder$Info access$100(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.Instruction):83:83 -> a
+    3:3:boolean access$202(com.android.tools.r8.ir.conversion.DexBuilder,boolean):83:83 -> a
+    4:7:boolean identicalInstructionsAfterBuildingDexCode(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):142:145 -> a
+    8:10:com.android.tools.r8.ir.conversion.DexBuilder$Info buildInfoForComparison(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):150:152 -> a
+    11:11:boolean isBuildingForComparison():156:156 -> a
+    11:11:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):643 -> a
+    12:13:void setSingleInfo(com.android.tools.r8.ir.conversion.DexBuilder$Info):677:678 -> a
+    12:13:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):645 -> a
+    14:20:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):648:654 -> a
+    21:25:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):669:673 -> a
+    21:25:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):655 -> a
+    26:26:int instructionNumberToIndex(int):659:659 -> a
+    26:26:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):673 -> a
+    26:26:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):655 -> a
+    27:27:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):673:673 -> a
+    27:27:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):655 -> a
+    28:56:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):335:363 -> a
+    57:59:boolean isTrivialFallthroughTarget(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):325:327 -> a
+    57:59:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):364 -> a
+    60:85:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):366:391 -> a
+    86:86:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    86:86:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):391 -> a
+    87:116:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):392:421 -> a
+    117:117:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    117:117:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):421 -> a
+    118:120:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):424:426 -> a
+    121:122:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):584:585 -> a
+    121:122:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
+    123:125:boolean isNonMaterializingConstNumber(com.android.tools.r8.ir.code.Instruction):592:594 -> a
+    123:125:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):586 -> a
+    123:125:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
+    126:126:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):587:587 -> a
+    126:126:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
+    127:140:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):429:442 -> a
+    141:141:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    141:141:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):443 -> a
+    142:171:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):445:474 -> a
+    172:183:void rewriteIfs():490:501 -> a
+    172:183:com.android.tools.r8.graph.DexCode build():184 -> a
+    184:188:void rewriteIfs():500:504 -> a
+    184:188:com.android.tools.r8.graph.DexCode build():184 -> a
+    189:189:com.android.tools.r8.graph.DexCode build():188:188 -> a
+    190:195:void reset():160:165 -> a
+    190:195:com.android.tools.r8.graph.DexCode build():191 -> a
+    196:196:int instructionNumberToIndex(int):659:659 -> a
+    196:196:void reset():165 -> a
+    196:196:com.android.tools.r8.graph.DexCode build():191 -> a
+    197:200:void reset():165:168 -> a
+    197:200:com.android.tools.r8.graph.DexCode build():191 -> a
+    201:242:com.android.tools.r8.graph.DexCode build():196:237 -> a
+    243:243:boolean com.android.tools.r8.utils.InternalOptions.canHaveTracingPastInstructionsStreamBug():1420:1420 -> a
+    243:243:com.android.tools.r8.graph.DexCode build():237 -> a
+    244:287:com.android.tools.r8.graph.DexCode build():238:281 -> a
+    288:307:com.android.tools.r8.code.Nop createSwitchPayload(com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo,int):711:730 -> a
+    288:307:com.android.tools.r8.graph.DexCode build():284 -> a
+    308:322:com.android.tools.r8.graph.DexCode build():285:299 -> a
+    323:374:com.android.tools.r8.code.FillArrayDataPayload com.android.tools.r8.ir.code.NewArrayFilledData.createPayload():0:51 -> a
+    323:374:com.android.tools.r8.graph.DexCode build():299 -> a
+    375:378:com.android.tools.r8.graph.DexCode build():300:303 -> a
+    379:381:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():737:739 -> a
+    379:381:com.android.tools.r8.graph.DexCode build():307 -> a
+    382:387:com.android.tools.r8.graph.DexCode$Try[] getDexTryItems(java.util.List,java.util.Map):840:845 -> a
+    382:387:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():741 -> a
+    382:387:com.android.tools.r8.graph.DexCode build():307 -> a
+    388:388:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():742:742 -> a
+    388:388:com.android.tools.r8.graph.DexCode build():307 -> a
+    389:406:com.android.tools.r8.graph.DexCode$TryHandler[] getDexTryHandlers(java.util.Map):851:868 -> a
+    389:406:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():742 -> a
+    389:406:com.android.tools.r8.graph.DexCode build():307 -> a
+    407:415:com.android.tools.r8.graph.DexCode build():310:318 -> a
+    416:417:void requestOutgoingRegisters(int):514:515 -> a
+    418:418:int allocatedRegister(com.android.tools.r8.ir.code.Value,int):520:520 -> a
+    419:422:void addGoto(com.android.tools.r8.ir.code.Goto):530:533 -> a
+    423:437:boolean needsNopBetweenMoveAndInstanceOf(com.android.tools.r8.code.InstanceOf):538:552 -> a
+    423:437:void addInstanceOf(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.code.InstanceOf):562 -> a
+    438:440:void addInstanceOf(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.code.InstanceOf):563:565 -> a
+    441:442:void addIf(com.android.tools.r8.ir.code.If):570:571 -> a
+    443:443:void addMove(com.android.tools.r8.ir.code.Move):575:575 -> a
+    444:444:void addNop(com.android.tools.r8.ir.code.Instruction):598:598 -> a
+    444:444:void addDebugPosition(com.android.tools.r8.ir.code.DebugPosition):604 -> a
+    445:445:void addNop(com.android.tools.r8.ir.code.Instruction):598:598 -> a
+    446:447:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):608:609 -> a
+    448:449:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction[]):613:614 -> a
+    450:452:void addSwitch(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.code.Format31t):618:620 -> a
+    453:454:void addFillArrayData(com.android.tools.r8.ir.code.NewArrayFilledData,com.android.tools.r8.code.FillArrayData):624:625 -> a
+    455:456:void addArgument(com.android.tools.r8.ir.code.Argument):629:630 -> a
+    457:461:void addReturn(com.android.tools.r8.ir.code.Return,com.android.tools.r8.code.Instruction):634:638 -> a
+    462:473:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):682:693 -> a
+    474:479:com.android.tools.r8.ir.code.BasicBlock computeNextBlock(com.android.tools.r8.ir.code.BasicBlock):701:706 -> a
+    474:479:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):694 -> a
+    480:483:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):694:697 -> a
+    484:558:java.util.List computeTryItems(com.android.tools.r8.com.google.common.collect.BiMap):748:822 -> a
+    1:1:void needsIfRewriting(com.android.tools.r8.ir.code.BasicBlock):510:510 -> b
+    1:1:void access$300(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.BasicBlock):83 -> b
+    2:2:int argumentOrAllocateRegister(com.android.tools.r8.ir.code.Value,int):526:526 -> b
+    3:3:void addNothing(com.android.tools.r8.ir.code.Instruction):579:579 -> b
+    4:11:int trimEnd(com.android.tools.r8.ir.code.BasicBlock):828:835 -> b
+    12:12:com.android.tools.r8.utils.InternalOptions getOptions():874:874 -> b
+    1:2:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):664:665 -> c
+    3:3:int instructionNumberToIndex(int):659:659 -> c
+    3:3:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):665 -> c
+    4:4:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):665:665 -> c
+    5:5:com.android.tools.r8.ir.regalloc.RegisterAllocator getRegisterAllocator():878:878 -> c
+    1:1:boolean isBuildingForComparison():156:156 -> d
+com.android.tools.r8.ir.conversion.DexBuilder$FallThroughInfo -> com.android.tools.r8.ir.conversion.A:
+    1:1:void <init>(com.android.tools.r8.ir.code.Instruction):1047:1047 -> <init>
+    void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List) -> a
+    int computeSize(com.android.tools.r8.ir.conversion.DexBuilder) -> a
+    1:1:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1076:1076 -> a
+    int getSize() -> d
+    int maxSize() -> e
+    int minSize() -> f
+com.android.tools.r8.ir.conversion.DexBuilder$FillArrayDataInfo -> com.android.tools.r8.ir.conversion.B:
+    com.android.tools.r8.code.FillArrayData dex -> b
+    com.android.tools.r8.ir.code.NewArrayFilledData ir -> a
+    1:3:void <init>(com.android.tools.r8.ir.code.NewArrayFilledData,com.android.tools.r8.code.FillArrayData):1522:1524 -> <init>
+com.android.tools.r8.ir.conversion.DexBuilder$FixedSizeInfo -> com.android.tools.r8.ir.conversion.C:
+    com.android.tools.r8.code.Instruction instruction -> e
+    1:2:void <init>(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):954:955 -> <init>
+    1:2:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):975:976 -> a
+    3:3:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):981:981 -> a
+    4:5:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):986:987 -> a
+    1:1:int getSize():960:960 -> d
+    1:1:int maxSize():970:970 -> e
+    1:1:int minSize():965:965 -> f
+com.android.tools.r8.ir.conversion.DexBuilder$GotoInfo -> com.android.tools.r8.ir.conversion.D:
+    boolean $assertionsDisabled -> f
+    int size -> e
+    1:1:void <clinit>():1080:1080 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Goto):1085:1085 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.Goto):1082:1082 -> <init>
+    1:1:com.android.tools.r8.ir.code.Goto getJump():1089:1089 -> a
+    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1153 -> a
+    2:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1154:1198 -> a
+    47:51:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1187:1191 -> a
+    52:71:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1182:1201 -> a
+    72:72:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1112:1112 -> a
+    73:73:com.android.tools.r8.ir.code.Goto getJump():1089:1089 -> a
+    73:73:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1113 -> a
+    74:108:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1114:1148 -> a
+    109:109:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1207:1207 -> a
+    1:2:int getSize():1094:1095 -> d
+    1:1:int maxSize():1106:1106 -> e
+    1:1:int minSize():1100:1100 -> f
+com.android.tools.r8.ir.conversion.DexBuilder$IfInfo -> com.android.tools.r8.ir.conversion.E:
+    boolean $assertionsDisabled -> f
+    int size -> e
+    1:1:void <clinit>():1211:1211 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.If):1216:1216 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.If):1213:1213 -> <init>
+    1:1:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    1:1:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1257 -> a
+    2:2:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    2:2:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1257 -> a
+    3:13:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1258:1268 -> a
+    14:14:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    14:14:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    14:14:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1236 -> a
+    14:14:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1268 -> a
+    15:15:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    15:15:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1236 -> a
+    15:15:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1268 -> a
+    16:17:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1237:1238 -> a
+    16:17:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1268 -> a
+    18:25:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1268:1275 -> a
+    26:26:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    26:26:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    26:26:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1276 -> a
+    27:27:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    27:27:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1276 -> a
+    28:45:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1276:1293 -> a
+    46:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1290:1290 -> a
+    47:47:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1287:1287 -> a
+    48:48:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1284:1284 -> a
+    49:49:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1281:1281 -> a
+    50:69:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1278:1297 -> a
+    70:70:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    70:70:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    70:70:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1298 -> a
+    71:71:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    71:71:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1298 -> a
+    72:89:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1298:1315 -> a
+    90:90:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1312:1312 -> a
+    91:91:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1309:1309 -> a
+    92:92:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1306:1306 -> a
+    93:93:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1303:1303 -> a
+    94:94:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1300:1300 -> a
+    95:95:int getOffset():1211:1211 -> a
+    95:95:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1319 -> a
+    96:97:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1319:1320 -> a
+    98:98:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    98:98:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    98:98:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1242 -> a
+    98:98:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    99:99:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    99:99:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1242 -> a
+    99:99:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    100:100:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1242:1242 -> a
+    100:100:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    101:101:int getMaxOffset():1211:1211 -> a
+    101:101:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1243 -> a
+    101:101:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    102:102:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1244:1244 -> a
+    102:102:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    103:103:int getOffset():1211:1211 -> a
+    103:103:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1246 -> a
+    103:103:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    104:104:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1246:1246 -> a
+    104:104:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    105:105:int getOffset():1211:1211 -> a
+    105:105:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1251 -> a
+    105:105:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    106:106:int getOffset():1211:1211 -> a
+    106:106:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1252 -> a
+    106:106:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1325 -> a
+    107:107:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    107:107:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    107:107:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1326 -> a
+    108:108:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    108:108:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1326 -> a
+    109:109:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1326:1326 -> a
+    110:110:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    110:110:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    110:110:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1236 -> a
+    110:110:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
+    111:111:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    111:111:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1236 -> a
+    111:111:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
+    112:113:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1237:1238 -> a
+    112:113:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
+    114:114:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328:1328 -> a
+    115:115:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    116:116:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    116:116:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    116:116:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1220 -> a
+    117:117:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    117:117:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1220 -> a
+    118:118:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1221:1221 -> a
+    119:119:void setMaxOffset(int):1211:1211 -> a
+    120:123:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1349:1352 -> a
+    124:124:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    124:124:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    124:124:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1353 -> a
+    125:125:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    125:125:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1353 -> a
+    126:126:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1353:1353 -> a
+    127:127:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> a
+    127:127:com.android.tools.r8.ir.code.If getBranch():1232 -> a
+    127:127:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1353 -> a
+    128:128:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> a
+    128:128:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1353 -> a
+    129:130:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1353:1354 -> a
+    1:1:int getMaxOffset():1211:1211 -> b
+    2:2:com.android.tools.r8.ir.code.Instruction getIR():1211:1211 -> b
+    2:2:com.android.tools.r8.ir.code.If getBranch():1232 -> b
+    2:2:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1225 -> b
+    3:3:com.android.tools.r8.ir.code.If getBranch():1232:1232 -> b
+    3:3:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1225 -> b
+    4:7:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1225:1228 -> b
+    8:8:void setMinOffset(int):1211:1211 -> b
+    1:1:int getOffset():1211:1211 -> c
+    2:2:void setOffset(int):1211:1211 -> c
+    1:1:int getSize():1344:1344 -> d
+    int maxSize() -> e
+    int minSize() -> f
+com.android.tools.r8.ir.conversion.DexBuilder$Info -> com.android.tools.r8.ir.conversion.F:
+    com.android.tools.r8.ir.code.Instruction ir -> a
+    int offset -> b
+    int maxOffset -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():882:882 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Instruction):891:891 -> <init>
+    2:9:void <init>(com.android.tools.r8.ir.code.Instruction):886:893 -> <init>
+    void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List) -> a
+    int computeSize(com.android.tools.r8.ir.conversion.DexBuilder) -> a
+    boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder) -> a
+    1:2:void setMaxOffset(int):938:939 -> a
+    3:3:com.android.tools.r8.ir.code.Instruction getIR():943:943 -> a
+    1:1:void setMinOffset(int):928:928 -> b
+    2:3:int getMaxOffset():933:934 -> b
+    1:2:int getOffset():913:914 -> c
+    3:4:void setOffset(int):918:919 -> c
+    int getSize() -> d
+    int maxSize() -> e
+    int minSize() -> f
+com.android.tools.r8.ir.conversion.DexBuilder$MoveInfo -> com.android.tools.r8.ir.conversion.G:
+    boolean $assertionsDisabled -> f
+    int size -> e
+    1:1:void <clinit>():1358:1358 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Move):1363:1363 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.Move):1360:1360 -> <init>
+    1:1:com.android.tools.r8.ir.code.Instruction getIR():1358:1358 -> a
+    1:1:com.android.tools.r8.ir.code.Move getMove():1367 -> a
+    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1406 -> a
+    2:2:com.android.tools.r8.ir.code.Move getMove():1367:1367 -> a
+    2:2:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1406 -> a
+    3:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1407:1450 -> a
+    47:54:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1428:1435 -> a
+    55:63:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1414:1422 -> a
+    64:64:int getOffset():1358:1358 -> a
+    64:64:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1452 -> a
+    65:66:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1452:1453 -> a
+    67:67:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1424:1424 -> a
+    68:68:com.android.tools.r8.ir.code.Instruction getIR():1358:1358 -> a
+    69:69:void setMaxOffset(int):1358:1358 -> a
+    70:75:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1380:1385 -> a
+    76:87:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1390:1401 -> a
+    1:1:com.android.tools.r8.ir.code.Instruction getIR():1358:1358 -> b
+    1:1:com.android.tools.r8.ir.code.Move getMove():1367 -> b
+    1:1:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1375 -> b
+    2:2:com.android.tools.r8.ir.code.Move getMove():1367:1367 -> b
+    2:2:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1375 -> b
+    3:3:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1375:1375 -> b
+    4:4:com.android.tools.r8.ir.code.Instruction getIR():1358:1358 -> b
+    4:4:com.android.tools.r8.ir.code.Move getMove():1367 -> b
+    4:4:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1375 -> b
+    5:5:com.android.tools.r8.ir.code.Move getMove():1367:1367 -> b
+    5:5:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1375 -> b
+    6:6:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1375:1375 -> b
+    7:7:int getMaxOffset():1358:1358 -> b
+    8:8:void setMinOffset(int):1358:1358 -> b
+    1:1:int getOffset():1358:1358 -> c
+    2:2:void setOffset(int):1358:1358 -> c
+    3:3:com.android.tools.r8.ir.code.Instruction getIR():1358:1358 -> c
+    3:3:com.android.tools.r8.ir.code.Move getMove():1367 -> c
+    3:3:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1371 -> c
+    4:4:com.android.tools.r8.ir.code.Move getMove():1367:1367 -> c
+    4:4:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1371 -> c
+    5:5:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1371:1371 -> c
+    6:6:com.android.tools.r8.ir.code.Instruction getIR():1358:1358 -> c
+    6:6:com.android.tools.r8.ir.code.Move getMove():1367 -> c
+    6:6:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1371 -> c
+    7:7:com.android.tools.r8.ir.code.Move getMove():1367:1367 -> c
+    7:7:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1371 -> c
+    8:8:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1371:1371 -> c
+    1:2:int getSize():1470:1471 -> d
+    1:1:int maxSize():1464:1464 -> e
+    1:1:int minSize():1458:1458 -> f
+com.android.tools.r8.ir.conversion.DexBuilder$MultiFixedSizeInfo -> com.android.tools.r8.ir.conversion.H:
+    int size -> f
+    com.android.tools.r8.code.Instruction[] instructions -> e
+    1:7:void <init>(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction[]):998:1004 -> <init>
+    1:1:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1009:1009 -> a
+    2:6:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1014:1018 -> a
+    7:8:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1039:1040 -> a
+    1:1:int getSize():1034:1034 -> d
+    1:1:int maxSize():1029:1029 -> e
+    1:1:int minSize():1024:1024 -> f
+com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo -> com.android.tools.r8.ir.conversion.I:
+    com.android.tools.r8.ir.code.IntSwitch ir -> a
+    com.android.tools.r8.code.Format31t dex -> b
+    1:3:void <init>(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.code.Format31t):1511:1513 -> <init>
+com.android.tools.r8.ir.conversion.DexBuilder$TryItem -> com.android.tools.r8.ir.conversion.J:
+    com.android.tools.r8.ir.code.CatchHandlers handlers -> a
+    int start -> b
+    int end -> c
+    1:4:void <init>(com.android.tools.r8.ir.code.CatchHandlers,int,int):1494:1497 -> <init>
+    1:1:int compareTo(com.android.tools.r8.ir.conversion.DexBuilder$TryItem):1502:1502 -> a
+    1:1:int compareTo(java.lang.Object):1488:1488 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.ir.conversion.DexBuilder$TryItem):1502:1502 -> compareTo
+    2:2:int compareTo(java.lang.Object):1488 -> compareTo
+com.android.tools.r8.ir.conversion.DexSourceCode -> com.android.tools.r8.ir.conversion.L:
+    boolean $assertionsDisabled -> m
+    com.android.tools.r8.ir.code.Position currentPosition -> i
+    com.android.tools.r8.graph.DexMethod originalMethod -> l
+    com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver arrayFilledDataPayloadResolver -> e
+    com.android.tools.r8.ir.code.CanonicalPositions canonicalPositions -> j
+    com.android.tools.r8.graph.DexCode code -> a
+    com.android.tools.r8.graph.DexCode$Try currentTryRange -> f
+    com.android.tools.r8.ir.code.CatchHandlers currentCatchHandlers -> g
+    java.util.Map offsetToInstructionIndex -> c
+    com.android.tools.r8.code.Instruction currentDexInstruction -> h
+    com.android.tools.r8.graph.DexEncodedMethod method -> b
+    com.android.tools.r8.ir.conversion.SwitchPayloadResolver switchPayloadResolver -> d
+    java.util.List debugEntries -> k
+    1:1:void <clinit>():54:54 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):78:78 -> <init>
+    2:31:void <init>(com.android.tools.r8.graph.DexCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):60:89 -> <init>
+    void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean) -> a
+    void doNothingWriteConsumer(java.lang.Integer,com.android.tools.r8.graph.DexType) -> a
+    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
+    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
+    1:1:int instructionCount():100:100 -> a
+    2:6:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):136:140 -> a
+    7:7:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):164:164 -> a
+    8:8:int instructionOffset(int):276:276 -> a
+    8:8:void updateCurrentCatchHandlers(int,com.android.tools.r8.graph.DexItemFactory):209 -> a
+    8:8:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):164 -> a
+    9:17:void updateCurrentCatchHandlers(int,com.android.tools.r8.graph.DexItemFactory):209:217 -> a
+    9:17:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):164 -> a
+    18:18:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):235:235 -> a
+    18:18:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):165 -> a
+    19:19:int instructionOffset(int):276:276 -> a
+    19:19:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):238 -> a
+    19:19:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):165 -> a
+    20:26:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):239:245 -> a
+    20:26:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):165 -> a
+    27:28:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):166:167 -> a
+    29:32:int getMoveExceptionRegister(int):177:180 -> a
+    33:35:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):252:252 -> a
+    38:44:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):255:255 -> a
+    45:47:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):282:282 -> a
+    48:52:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):289:289 -> a
+    53:53:boolean isMoveResult(com.android.tools.r8.code.Instruction):315:315 -> a
+    54:86:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):322:354 -> a
+    87:87:java.util.Set getUniqueTryHandlerOffsets(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory):429:429 -> a
+    87:87:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):354 -> a
+    88:93:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):354:359 -> a
+    94:94:boolean isInvoke(com.android.tools.r8.code.Instruction):296:296 -> a
+    94:94:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):359 -> a
+    95:115:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):359:379 -> a
+    116:125:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexCode$Try):401:410 -> a
+    126:127:void lambda$getCurrentCatchHandlers$0(java.util.List,java.util.List,com.android.tools.r8.graph.DexType,java.lang.Integer):407:408 -> a
+    128:136:void forEachTryRange(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory,java.util.function.BiConsumer):415:423 -> a
+    137:138:java.util.List getTryHandlerOffsets(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory):433:434 -> a
+    139:139:void lambda$getTryHandlerOffsets$1(java.util.List,com.android.tools.r8.graph.DexType,java.lang.Integer):434:434 -> a
+    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
+    1:8:void setUp():121:128 -> b
+    9:9:int instructionOffset(int):276:276 -> b
+    com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int) -> c
+    1:1:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):172:172 -> c
+    2:2:boolean verifyCurrentInstructionCanThrow():200:200 -> c
+    1:2:void clear():265:266 -> clear
+    1:4:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):187:190 -> d
+    5:5:com.android.tools.r8.ir.code.Position getCurrentPosition():195:195 -> d
+    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
+    1:1:boolean verifyRegister(int):95:95 -> f
+    1:1:int instructionIndex(int):271:271 -> g
+    1:3:com.android.tools.r8.graph.DexDebugEntry getDebugEntryAtOffset(int):223:225 -> h
+    1:1:com.android.tools.r8.graph.DexCode$Try getTryForOffset(int):392:392 -> i
+    2:2:boolean inTryRange(com.android.tools.r8.graph.DexCode$Try,int):387:387 -> i
+    2:2:com.android.tools.r8.graph.DexCode$Try getTryForOffset(int):393 -> i
+com.android.tools.r8.ir.conversion.FieldOptimizationFeedback -> com.android.tools.r8.ir.conversion.M:
+    void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField) -> a
+    void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int) -> a
+    void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
+    void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
+    void recordFieldHasAbstractValue(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
+    void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField) -> b
+com.android.tools.r8.ir.conversion.IRBuilder -> com.android.tools.r8.ir.conversion.N:
+    java.util.List argumentValues -> r
+    java.util.Queue ssaWorklist -> f
+    int currentInstructionOffset -> j
+    com.android.tools.r8.ir.code.BasicBlock currentBlock -> i
+    boolean throwingInstructionInCurrentBlock -> u
+    java.util.List impreciseInstructions -> z
+    com.android.tools.r8.ir.code.Value receiverValue -> q
+    com.android.tools.r8.graph.DexEncodedMethod method -> l
+    java.util.Set processedSubroutineInstructions -> e
+    com.android.tools.r8.graph.RewrittenPrototypeDescription prototypeChanges -> p
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap offsets -> b
+    boolean[] processedInstructions -> d
+    int nextBlockNumber -> y
+    java.util.LinkedList blocks -> g
+    boolean hasImpreciseValues -> A
+    boolean $assertionsDisabled -> C
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap targets -> a
+    com.android.tools.r8.ir.conversion.SourceCode source -> t
+    com.android.tools.r8.ir.code.BasicBlock entryBlock -> h
+    com.android.tools.r8.origin.Origin origin -> o
+    java.util.Queue traceBlocksWorklist -> c
+    com.android.tools.r8.ir.code.Value previousLocalValue -> v
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap uninitializedDebugLocalValues -> x
+    java.util.List pendingArgumentInstructions -> s
+    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> k
+    java.util.List debugLocalEnds -> w
+    com.android.tools.r8.graph.DexEncodedMethod context -> m
+    com.android.tools.r8.graph.AppView appView -> n
+    com.android.tools.r8.ir.code.IRMetadata metadata -> B
+    1:1:void <clinit>():148:148 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):436:436 -> <init>
+    2:94:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):368:460 -> <init>
+    95:95:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):455:455 -> <init>
+    1:4:boolean verifyMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense):466:469 -> a
+    5:5:boolean verifyMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense):468:468 -> a
+    6:7:void addToWorklist(com.android.tools.r8.ir.code.BasicBlock,int):500:501 -> a
+    8:16:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):511:519 -> a
+    17:20:void addThisArgument(int):907:910 -> a
+    17:20:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):520 -> a
+    21:21:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2236:2236 -> a
+    21:21:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):915 -> a
+    21:21:void addThisArgument(int):911 -> a
+    21:21:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):520 -> a
+    22:23:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):916:917 -> a
+    22:23:void addThisArgument(int):911 -> a
+    22:23:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):520 -> a
+    24:24:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    24:24:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):917 -> a
+    24:24:void addThisArgument(int):911 -> a
+    24:24:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):520 -> a
+    25:26:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):918:919 -> a
+    25:26:void addThisArgument(int):911 -> a
+    25:26:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):520 -> a
+    27:40:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):525:538 -> a
+    41:41:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):537:537 -> a
+    42:45:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo):948:951 -> a
+    42:45:void addConstantOrUnusedArgument(int,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo):943 -> a
+    42:45:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):539 -> a
+    46:46:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2236:2236 -> a
+    46:46:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo):953 -> a
+    46:46:void addConstantOrUnusedArgument(int,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo):943 -> a
+    46:46:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):539 -> a
+    47:50:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo):954:957 -> a
+    47:50:void addConstantOrUnusedArgument(int,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo):943 -> a
+    47:50:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):539 -> a
+    51:63:void buildArgumentsWithUnusedArgumentStubs(int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):541:553 -> a
+    64:82:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):564:582 -> a
+    83:85:void markIndexProcessed(int):2419:2421 -> a
+    83:85:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):587 -> a
+    86:87:void ensureSubroutineProcessedInstructions():2429:2430 -> a
+    86:87:void markIndexProcessed(int):2424 -> a
+    86:87:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):587 -> a
+    88:88:void markIndexProcessed(int):2425:2425 -> a
+    88:88:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):587 -> a
+    89:99:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):588:598 -> a
+    100:100:void ensureNormalSuccessorBlock(int,int):2450:2450 -> a
+    100:100:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):599 -> a
+    101:103:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):605:607 -> a
+    104:104:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):506:506 -> a
+    104:104:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):607 -> a
+    105:110:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):608:613 -> a
+    111:116:void processWorklist():804:809 -> a
+    111:116:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    117:117:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):506:506 -> a
+    117:117:void processWorklist():809 -> a
+    117:117:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    118:122:void processWorklist():810:814 -> a
+    118:122:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    123:147:void processMoveExceptionItem(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):855:879 -> a
+    123:147:void processWorklist():814 -> a
+    123:147:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    148:153:void processMoveExceptionItem(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):878:883 -> a
+    148:153:void processWorklist():814 -> a
+    148:153:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    154:161:void processWorklist():815:822 -> a
+    154:161:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    162:172:void processWorklist():821:831 -> a
+    162:172:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    173:173:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    173:173:void processWorklist():831 -> a
+    173:173:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    174:183:void processWorklist():835:844 -> a
+    174:183:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    184:187:void closeCurrentBlockWithFallThrough(com.android.tools.r8.ir.code.BasicBlock):2495:2498 -> a
+    184:187:void processWorklist():844 -> a
+    184:187:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    188:189:void processWorklist():847:848 -> a
+    188:189:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    190:190:void processWorklist():804:804 -> a
+    190:190:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
+    191:196:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):617:622 -> a
+    197:198:boolean verifyFilledPredecessors():743:744 -> a
+    197:198:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    199:204:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):750:755 -> a
+    199:204:boolean verifyFilledPredecessors():744 -> a
+    199:204:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    205:205:int com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.predecessorCount():299:299 -> a
+    205:205:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):755 -> a
+    205:205:boolean verifyFilledPredecessors():744 -> a
+    205:205:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    206:213:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):772:779 -> a
+    206:213:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):755 -> a
+    206:213:boolean verifyFilledPredecessors():744 -> a
+    206:213:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    214:217:boolean trivialGotoBlockPotentiallyWithMoveException(com.android.tools.r8.ir.code.BasicBlock):795:798 -> a
+    214:217:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):779 -> a
+    214:217:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):755 -> a
+    214:217:boolean verifyFilledPredecessors():744 -> a
+    214:217:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    218:218:boolean trivialGotoBlockPotentiallyWithMoveException(com.android.tools.r8.ir.code.BasicBlock):796:796 -> a
+    218:218:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):779 -> a
+    218:218:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):755 -> a
+    218:218:boolean verifyFilledPredecessors():744 -> a
+    218:218:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    219:226:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):783:790 -> a
+    219:226:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):755 -> a
+    219:226:boolean verifyFilledPredecessors():744 -> a
+    219:226:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    227:233:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):755:761 -> a
+    227:233:boolean verifyFilledPredecessors():744 -> a
+    227:233:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    234:234:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):758:758 -> a
+    234:234:boolean verifyFilledPredecessors():744 -> a
+    234:234:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):622 -> a
+    235:241:void insertDebugPositions():712:718 -> a
+    235:241:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):625 -> a
+    242:242:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.next():29:29 -> a
+    242:242:void insertDebugPositions():719 -> a
+    242:242:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):625 -> a
+    243:255:void insertDebugPositions():720:732 -> a
+    243:255:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):625 -> a
+    256:256:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> a
+    256:256:void insertDebugPositions():733 -> a
+    256:256:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):625 -> a
+    257:257:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
+    257:257:void insertDebugPositions():734 -> a
+    257:257:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):625 -> a
+    258:258:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.next():29:29 -> a
+    258:258:void insertDebugPositions():735 -> a
+    258:258:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):625 -> a
+    259:260:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):628:629 -> a
+    261:261:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    261:261:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):629 -> a
+    262:264:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):630:632 -> a
+    265:265:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> a
+    265:265:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):632 -> a
+    266:271:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):633:638 -> a
+    272:272:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
+    272:272:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):639 -> a
+    273:274:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):646:647 -> a
+    275:305:void joinPredecessorsWithIdenticalPhis():2583:2613 -> a
+    275:305:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    306:306:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    306:306:void joinPredecessorsWithIdenticalPhis():2613 -> a
+    306:306:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    307:307:void joinPredecessorsWithIdenticalPhis():2613:2613 -> a
+    307:307:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    308:322:void joinPredecessorsWithIdenticalPhis():2612:2626 -> a
+    308:322:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    323:334:void com.android.tools.r8.ir.code.BasicBlock.removePredecessorsByIndex(java.util.List):506:517 -> a
+    323:334:void joinPredecessorsWithIdenticalPhis():2630 -> a
+    323:334:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    335:335:void joinPredecessorsWithIdenticalPhis():2631:2631 -> a
+    335:335:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    336:336:void joinPredecessorsWithIdenticalPhis():2589:2589 -> a
+    336:336:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    337:337:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    337:337:void joinPredecessorsWithIdenticalPhis():2589 -> a
+    337:337:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    338:382:void joinPredecessorsWithIdenticalPhis():2589:2633 -> a
+    338:382:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):652 -> a
+    383:390:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):655:662 -> a
+    391:391:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(com.android.tools.r8.ir.conversion.IRBuilder):1129:1129 -> a
+    391:391:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):665 -> a
+    392:400:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):666:674 -> a
+    401:401:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    401:401:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):674 -> a
+    402:402:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):674:674 -> a
+    403:420:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):671:688 -> a
+    421:421:boolean com.android.tools.r8.utils.InternalOptions.isStringSwitchConversionEnabled():1167:1167 -> a
+    421:421:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):688 -> a
+    422:422:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689:689 -> a
+    423:434:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):124:135 -> a
+    423:434:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
+    423:434:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    435:435:boolean com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils.isComparisonOfStringHashValue(com.android.tools.r8.ir.code.JumpInstruction,com.android.tools.r8.graph.DexItemFactory):793:793 -> a
+    435:435:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):135 -> a
+    435:435:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
+    435:435:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    436:444:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):144:152 -> a
+    436:444:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
+    436:444:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    445:445:boolean com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils.isComparisonOfStringHashValue(com.android.tools.r8.ir.code.JumpInstruction,com.android.tools.r8.graph.DexItemFactory):793:793 -> a
+    445:445:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):152 -> a
+    445:445:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
+    445:445:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    446:450:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):165:169 -> a
+    446:450:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
+    446:450:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    451:451:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):110:110 -> a
+    451:451:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    452:452:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo$Builder com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo.builder(com.android.tools.r8.graph.DexItemFactory):268:268 -> a
+    452:452:boolean com.android.tools.r8.ir.conversion.StringSwitchConverter.convertRewritingCandidateToStringSwitchInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexItemFactory):175 -> a
+    452:452:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):111 -> a
+    452:452:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    453:455:boolean com.android.tools.r8.ir.conversion.StringSwitchConverter.convertRewritingCandidateToStringSwitchInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexItemFactory):175:177 -> a
+    453:455:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):111 -> a
+    453:455:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    456:457:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):116:117 -> a
+    456:457:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):689 -> a
+    458:462:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):692:696 -> a
+    463:463:void constrainType(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):701:701 -> a
+    464:464:void resolveAndBuildSwitch(int,int,int):888:888 -> a
+    465:465:void add(com.android.tools.r8.ir.code.Instruction):902:902 -> a
+    466:466:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    466:466:void add(com.android.tools.r8.ir.code.Instruction):903 -> a
+    467:468:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):935:936 -> a
+    469:469:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    469:469:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):938 -> a
+    470:470:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):939:939 -> a
+    471:475:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):995:999 -> a
+    476:476:boolean com.android.tools.r8.ir.code.Value.isUninitializedLocal():614:614 -> a
+    476:476:boolean isValidFor(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DebugLocalInfo):971 -> a
+    476:476:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):1000 -> a
+    477:477:boolean isValidFor(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DebugLocalInfo):971:971 -> a
+    477:477:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):1000 -> a
+    478:478:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):1001:1001 -> a
+    479:485:void addDebugPosition(com.android.tools.r8.ir.code.Position):1006:1012 -> a
+    486:486:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    486:486:void addDebugPosition(com.android.tools.r8.ir.code.Position):1012 -> a
+    487:491:void addDebugPosition(com.android.tools.r8.ir.code.Position):1019:1023 -> a
+    492:492:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    492:492:void addDebugPosition(com.android.tools.r8.ir.code.Position):1023 -> a
+    493:494:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1067:1068 -> a
+    495:515:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):153:173 -> a
+    495:515:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1069 -> a
+    516:516:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):168:168 -> a
+    516:516:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1069 -> a
+    517:521:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):162:166 -> a
+    517:521:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1069 -> a
+    522:522:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):164:164 -> a
+    522:522:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1069 -> a
+    523:523:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):160:160 -> a
+    523:523:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1069 -> a
+    524:537:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):158:171 -> a
+    524:537:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1069 -> a
+    538:541:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1070:1073 -> a
+    542:545:void addImpreciseInstruction(com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction):705:708 -> a
+    542:545:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1074 -> a
+    546:546:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1076:1076 -> a
+    547:551:void addArrayLength(int,int):1080:1084 -> a
+    552:558:void addCheckCast(int,com.android.tools.r8.graph.DexType):1099:1105 -> a
+    559:562:void addConst(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int,long):1118:1121 -> a
+    563:571:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1154:1162 -> a
+    572:576:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1161:1165 -> a
+    577:577:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1155:1155 -> a
+    578:586:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1169:1177 -> a
+    587:591:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1176:1180 -> a
+    592:592:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1170:1170 -> a
+    593:594:void addConstString(int,com.android.tools.r8.graph.DexString):1190:1191 -> a
+    595:595:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1184:1184 -> a
+    595:595:void addConstString(int,com.android.tools.r8.graph.DexString):1192 -> a
+    596:596:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    596:596:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1184 -> a
+    596:596:void addConstString(int,com.android.tools.r8.graph.DexString):1192 -> a
+    597:598:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1185:1186 -> a
+    597:598:void addConstString(int,com.android.tools.r8.graph.DexString):1192 -> a
+    599:599:void addConstString(int,com.android.tools.r8.graph.DexString):1193:1193 -> a
+    600:601:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1198:1199 -> a
+    602:602:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1184:1184 -> a
+    602:602:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1200 -> a
+    603:603:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    603:603:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1184 -> a
+    603:603:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1200 -> a
+    604:605:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1185:1186 -> a
+    604:605:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1200 -> a
+    606:607:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1201:1202 -> a
+    608:610:com.android.tools.r8.ir.code.Monitor addMonitor(com.android.tools.r8.ir.code.Monitor$Type,int):1229:1231 -> a
+    611:612:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1240:1241 -> a
+    613:613:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2236:2236 -> a
+    613:613:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1243 -> a
+    614:616:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1244:1246 -> a
+    617:617:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    617:617:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1246 -> a
+    618:619:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1251:1252 -> a
+    620:620:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    620:620:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1252 -> a
+    621:621:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1255:1255 -> a
+    622:623:void addNop():1281:1282 -> a
+    624:624:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    624:624:void addNop():1282 -> a
+    625:631:void addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int,int):1361:1367 -> a
+    632:632:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int):1375:1375 -> a
+    633:636:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int):1388:1391 -> a
+    633:636:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int):1373 -> a
+    637:640:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int):1388:1391 -> a
+    641:645:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1396:1400 -> a
+    646:651:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1398:1403 -> a
+    652:652:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    652:652:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1404 -> a
+    653:656:void addInstanceOf(int,int,com.android.tools.r8.graph.DexType):1408:1411 -> a
+    657:657:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    657:657:void addInstanceOf(int,int,com.android.tools.r8.graph.DexType):1412 -> a
+    658:667:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1424:1433 -> a
+    668:688:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1427:1447 -> a
+    689:689:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    689:689:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1447 -> a
+    690:700:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1448:1458 -> a
+    701:705:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,java.util.List,boolean):1468:1472 -> a
+    706:709:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,java.util.List,boolean):1471:1474 -> a
+    710:727:void addInvokeCustomRange(com.android.tools.r8.graph.DexCallSite,int,int):1501:1518 -> a
+    728:732:void addInvokeCustom(com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):1523:1527 -> a
+    733:736:void addInvokeCustom(com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):1526:1529 -> a
+    737:760:void addInvokeRegisters(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int[]):1540:1563 -> a
+    761:777:void addInvokeNewArray(com.android.tools.r8.graph.DexType,int,int[]):1567:1583 -> a
+    778:802:void addInvokeRange(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int):1604:1628 -> a
+    803:817:void addInvokeRangeNewArray(com.android.tools.r8.graph.DexType,int,int):1632:1646 -> a
+    818:818:boolean lambda$addMoveException$1(com.android.tools.r8.ir.code.BasicBlock):1659:1659 -> a
+    819:822:void addNewArrayFilledData(int,int,long,short[]):1731:1734 -> a
+    823:823:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    823:823:void addNewArrayFilledData(int,int,long,short[]):1735 -> a
+    824:827:void addStaticGet(int,com.android.tools.r8.graph.DexField):1771:1774 -> a
+    828:833:void addStaticGet(int,com.android.tools.r8.graph.DexField):1772:1777 -> a
+    834:834:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    834:834:void addStaticGet(int,com.android.tools.r8.graph.DexField):1778 -> a
+    835:878:void addSwitch(int,int[],int,int[]):1810:1853 -> a
+    879:879:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> a
+    879:879:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> a
+    879:879:void addSwitch(int,int[],int,int[]):1858 -> a
+    880:880:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> a
+    880:880:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> a
+    880:880:void addSwitch(int,int[],int,int[]):1859 -> a
+    881:885:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1866:1870 -> a
+    881:885:void addSwitch(int,int[],int,int[]):1860 -> a
+    886:886:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2468:2468 -> a
+    886:886:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1872 -> a
+    886:886:void addSwitch(int,int[],int,int[]):1860 -> a
+    887:910:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1873:1896 -> a
+    887:910:void addSwitch(int,int[],int,int[]):1860 -> a
+    911:911:void addSwitch(int,int[],int,int[]):1861:1861 -> a
+    912:913:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2066:2067 -> a
+    914:933:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2082:2101 -> a
+    914:933:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    934:934:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2147:2147 -> a
+    934:934:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    934:934:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    935:971:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isPrecise():0:36 -> a
+    935:971:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2147 -> a
+    935:971:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    935:971:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    972:972:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2147:2147 -> a
+    972:972:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    972:972:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    973:997:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isObject():0:24 -> a
+    973:997:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2149 -> a
+    973:997:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    973:997:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    998:998:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2149:2149 -> a
+    998:998:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    998:998:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    999:1009:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():161:171 -> a
+    999:1009:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2149 -> a
+    999:1009:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    999:1009:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    1010:1010:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():167:167 -> a
+    1010:1010:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2149 -> a
+    1010:1010:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    1010:1010:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    1011:1011:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():165:165 -> a
+    1011:1011:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2149 -> a
+    1011:1011:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    1011:1011:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    1012:1012:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():163:163 -> a
+    1012:1012:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2149 -> a
+    1012:1012:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    1012:1012:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    1013:1031:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2150:2168 -> a
+    1013:1031:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2106 -> a
+    1013:1031:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    1032:1034:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,com.android.tools.r8.ir.code.BasicBlock):2138:2140 -> a
+    1032:1034:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2108 -> a
+    1032:1034:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    1035:1059:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2109:2133 -> a
+    1035:1059:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2070 -> a
+    1060:1060:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> a
+    1060:1060:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):1028 -> a
+    1061:1061:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> a
+    1061:1061:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):1029 -> a
+    1062:1062:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):1030:1030 -> a
+    1063:1063:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> a
+    1063:1063:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):1030 -> a
+    1064:1065:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):1031:1032 -> a
+    1066:1066:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    1066:1066:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):1033 -> a
+    1067:1067:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> a
+    1067:1067:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1109 -> a
+    1068:1068:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> a
+    1068:1068:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1110 -> a
+    1069:1072:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1111:1114 -> a
+    1073:1073:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> a
+    1073:1073:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):2022 -> a
+    1074:1074:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):2023:2023 -> a
+    1075:1075:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> a
+    1075:1075:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):2023 -> a
+    1076:1077:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):2024:2025 -> a
+    1078:1078:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    1078:1078:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):2026 -> a
+    1079:1079:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> a
+    1079:1079:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1698 -> a
+    1080:1080:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1699:1699 -> a
+    1081:1081:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> a
+    1081:1081:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1699 -> a
+    1082:1083:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1700:1701 -> a
+    1084:1084:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    1084:1084:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1702 -> a
+    1085:1088:com.android.tools.r8.ir.code.Value readIntLiteral(long):2193:2196 -> a
+    1089:1091:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo,com.android.tools.r8.graph.DebugLocalInfo):2203:2205 -> a
+    1092:1092:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):2232:2232 -> a
+    1092:1092:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2032 -> a
+    1093:1097:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2033:2037 -> a
+    1098:1098:boolean com.android.tools.r8.ir.code.Value.isUninitializedLocal():614:614 -> a
+    1098:1098:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2037 -> a
+    1099:1109:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2038:2048 -> a
+    1110:1114:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2046:2050 -> a
+    1115:1115:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):2232:2232 -> a
+    1115:1115:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2210 -> a
+    1116:1116:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2236:2236 -> a
+    1116:1116:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2211 -> a
+    1117:1118:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2223:2224 -> a
+    1119:1119:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2236:2236 -> a
+    1119:1119:void addBooleanNonThisArgument(int):929 -> a
+    1120:1121:void addBooleanNonThisArgument(int):930:931 -> a
+    1122:1122:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2236:2236 -> a
+    1122:1122:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):923 -> a
+    1123:1124:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):924:925 -> a
+    1125:1125:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2306:2306 -> a
+    1126:1129:boolean verifyOutValueType(com.android.tools.r8.ir.code.Instruction):2338:2338 -> a
+    1126:1129:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2306 -> a
+    1132:1136:boolean verifyOutValueType(com.android.tools.r8.ir.code.Instruction):2341:2341 -> a
+    1132:1136:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2306 -> a
+    1137:1162:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2307:2332 -> a
+    1163:1167:void lambda$addInstruction$3(java.util.List,java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Integer):2321:2325 -> a
+    1168:1174:void lambda$addInstruction$3(java.util.List,java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Integer):2323:2329 -> a
+    1175:1175:boolean isOffsetProcessed(int):2407:2407 -> a
+    1175:1175:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlock(int):2400 -> a
+    1175:1175:void ensureSuccessorBlock(int,int,boolean):2436 -> a
+    1176:1178:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlock(int):2401:2403 -> a
+    1176:1178:void ensureSuccessorBlock(int,int,boolean):2436 -> a
+    1179:1182:int getBlockStartOffset(int):2391:2394 -> a
+    1179:1182:void ensureSuccessorBlock(int,int,boolean):2437 -> a
+    1183:1183:void ensureSuccessorBlock(int,int,boolean):2438:2438 -> a
+    1184:1184:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalSuccessor(int):282:282 -> a
+    1184:1184:void ensureSuccessorBlock(int,int,boolean):2440 -> a
+    1185:1185:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalPredecessor(int):278:278 -> a
+    1185:1185:void ensureSuccessorBlock(int,int,boolean):2441 -> a
+    1186:1186:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalSuccessor(int):295:295 -> a
+    1186:1186:void ensureSuccessorBlock(int,int,boolean):2443 -> a
+    1187:1187:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalPredecessor(int):291:291 -> a
+    1187:1187:void ensureSuccessorBlock(int,int,boolean):2444 -> a
+    1188:1188:void ensureSuccessorBlock(int,int,boolean):2446:2446 -> a
+    1189:1189:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2468:2468 -> a
+    1189:1189:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1332 -> a
+    1190:1190:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2468:2468 -> a
+    1190:1190:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1333 -> a
+    1191:1196:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1334:1339 -> a
+    1197:1200:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2485:2488 -> a
+    1201:1201:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2487:2487 -> a
+    1202:1204:void generateSplitEdgeBlocks():2502:2504 -> a
+    1202:1204:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1205:1205:int getOffset(com.android.tools.r8.ir.code.BasicBlock):2472:2472 -> a
+    1205:1205:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(com.android.tools.r8.ir.code.BasicBlock):2464 -> a
+    1205:1205:void generateSplitEdgeBlocks():2504 -> a
+    1205:1205:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1206:1206:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(int):2460:2460 -> a
+    1206:1206:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(com.android.tools.r8.ir.code.BasicBlock):2464 -> a
+    1206:1206:void generateSplitEdgeBlocks():2504 -> a
+    1206:1206:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1207:1207:void generateSplitEdgeBlocks():2505:2505 -> a
+    1207:1207:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1208:1209:boolean com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.hasMoreThanASingleNormalExit():310:311 -> a
+    1208:1209:void generateSplitEdgeBlocks():2506 -> a
+    1208:1209:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1210:1210:void generateSplitEdgeBlocks():2509:2509 -> a
+    1210:1210:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1211:1211:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(int):2460:2460 -> a
+    1211:1211:void generateSplitEdgeBlocks():2510 -> a
+    1211:1211:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1212:1212:int com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.predecessorCount():299:299 -> a
+    1212:1212:void generateSplitEdgeBlocks():2511 -> a
+    1212:1212:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1213:1223:void generateSplitEdgeBlocks():2514:2524 -> a
+    1213:1223:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1224:1232:void generateSplitEdgeBlocks():2521:2529 -> a
+    1224:1232:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1233:1238:com.android.tools.r8.ir.code.BasicBlock createSplitEdgeBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2545:2550 -> a
+    1233:1238:void generateSplitEdgeBlocks():2529 -> a
+    1233:1238:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1239:1249:void generateSplitEdgeBlocks():2530:2540 -> a
+    1239:1249:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1250:1252:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.allSuccessors():303:305 -> a
+    1250:1252:void generateSplitEdgeBlocks():2540 -> a
+    1250:1252:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1253:1253:void generateSplitEdgeBlocks():2540:2540 -> a
+    1253:1253:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2489 -> a
+    1254:1254:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> a
+    1254:1254:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2490 -> a
+    1255:1255:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2491:2491 -> a
+    1256:1256:boolean isIntegerType(com.android.tools.r8.ir.code.NumericType):2639:2639 -> a
+    1:20:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):63:82 -> b
+    1:20:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1088 -> b
+    21:21:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):78:78 -> b
+    21:21:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1088 -> b
+    22:26:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):72:76 -> b
+    22:26:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1088 -> b
+    27:27:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):74:74 -> b
+    27:27:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1088 -> b
+    28:28:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):70:70 -> b
+    28:28:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1088 -> b
+    29:41:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):68:80 -> b
+    29:41:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1088 -> b
+    42:46:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1088:1092 -> b
+    47:50:void addImpreciseInstruction(com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction):705:708 -> b
+    47:50:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1093 -> b
+    51:51:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1095:1095 -> b
+    52:65:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):975:988 -> b
+    66:68:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):987:989 -> b
+    69:69:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> b
+    69:69:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):990 -> b
+    70:70:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1037:1037 -> b
+    71:71:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> b
+    71:71:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1038 -> b
+    72:73:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1039:1040 -> b
+    74:74:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> b
+    74:74:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1040 -> b
+    75:76:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1041:1042 -> b
+    77:77:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> b
+    77:77:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1043 -> b
+    78:83:void addConstClass(int,com.android.tools.r8.graph.DexType):1145:1150 -> b
+    84:84:void addTrivialIf(int,int):1318:1318 -> b
+    85:85:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2468:2468 -> b
+    85:85:void addTrivialIf(int,int):1322 -> b
+    86:89:void addTrivialIf(int,int):1325:1328 -> b
+    90:93:void addInstancePut(int,int,com.android.tools.r8.graph.DexField):1416:1419 -> b
+    94:94:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1587:1587 -> b
+    95:95:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> b
+    95:95:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1587 -> b
+    96:102:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1587:1593 -> b
+    103:109:void addNewArrayEmpty(int,int,com.android.tools.r8.graph.DexType):1720:1726 -> b
+    110:110:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> b
+    110:110:void addNewArrayEmpty(int,int,com.android.tools.r8.graph.DexType):1727 -> b
+    111:111:void addReturn():1760:1760 -> b
+    112:114:void addReturn(com.android.tools.r8.ir.code.Return):1765:1767 -> b
+    112:114:void addReturn():1760 -> b
+    115:118:void addStaticPut(int,com.android.tools.r8.graph.DexField):1782:1785 -> b
+    119:119:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> b
+    119:119:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1706 -> b
+    120:120:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1707:1707 -> b
+    121:121:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> b
+    121:121:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1707 -> b
+    122:125:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1709:1712 -> b
+    126:129:com.android.tools.r8.ir.code.Value readLiteral(com.android.tools.r8.ir.code.ValueTypeConstraint,long):2177:2180 -> b
+    126:129:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1712 -> b
+    130:133:com.android.tools.r8.ir.code.Value readLongLiteral(long):2186:2189 -> b
+    130:133:com.android.tools.r8.ir.code.Value readLiteral(com.android.tools.r8.ir.code.ValueTypeConstraint,long):2181 -> b
+    130:133:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1712 -> b
+    134:136:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1713:1715 -> b
+    137:137:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> b
+    137:137:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1716 -> b
+    138:138:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> b
+    139:139:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2468:2468 -> b
+    139:139:void addGoto(int):1310 -> b
+    140:143:void addGoto(int):1311:1314 -> b
+    144:144:boolean isNonLongIntegerType(com.android.tools.r8.ir.code.NumericType):2643:2643 -> b
+    1:1:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1047:1047 -> c
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> c
+    2:2:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1048 -> c
+    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> c
+    3:3:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1049 -> c
+    4:4:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1050:1050 -> c
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> c
+    5:5:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1050 -> c
+    6:7:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1051:1052 -> c
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> c
+    8:8:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1053 -> c
+    9:9:void checkInvokeArgumentRegisters(int,int):1651:1651 -> c
+    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> c
+    10:10:void checkInvokeArgumentRegisters(int,int):1651 -> c
+    11:11:void checkInvokeArgumentRegisters(int,int):1651:1651 -> c
+    12:17:void addMoveException(int):1658:1663 -> c
+    18:23:boolean verifyValueIsMoveException(com.android.tools.r8.ir.code.Value):1667:1672 -> c
+    18:23:void addMoveException(int):1663 -> c
+    24:27:void addNewInstance(int,com.android.tools.r8.graph.DexType):1740:1743 -> c
+    28:28:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> c
+    28:28:void addNewInstance(int,com.android.tools.r8.graph.DexType):1744 -> c
+    29:31:com.android.tools.r8.ir.code.Value readRegisterForDebugLocal(int,com.android.tools.r8.graph.DebugLocalInfo):2055:2057 -> c
+    32:49:void attachLocalValues(com.android.tools.r8.ir.code.Instruction):2349:2366 -> c
+    50:51:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2476:2477 -> c
+    52:52:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):506:506 -> c
+    52:52:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2478 -> c
+    53:55:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2479:2481 -> c
+    1:1:boolean lambda$build$0(com.android.tools.r8.ir.code.Instruction):631:631 -> d
+    2:4:void flushArgumentInstructions():962:964 -> d
+    5:5:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1057:1057 -> d
+    6:6:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> d
+    6:6:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1058 -> d
+    7:8:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1059:1060 -> d
+    9:9:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> d
+    9:9:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1060 -> d
+    10:11:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1061:1062 -> d
+    12:12:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> d
+    12:12:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1063 -> d
+    13:21:void addMoveResult(int):1678:1686 -> d
+    22:31:void addMoveResult(int):1685:1694 -> d
+    32:32:void ensureExceptionalSuccessorBlock(int,int):2454:2454 -> d
+    1:2:java.util.List getArgumentValues():490:491 -> e
+    3:3:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1206:1206 -> e
+    4:4:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> e
+    4:4:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1207 -> e
+    5:5:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> e
+    5:5:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1208 -> e
+    6:6:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1210:1210 -> e
+    7:7:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> e
+    7:7:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1209 -> e
+    8:10:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1211:1213 -> e
+    11:18:void addReturn(int):1748:1755 -> e
+    19:21:void addReturn(com.android.tools.r8.ir.code.Return):1765:1767 -> e
+    19:21:void addReturn(int):1755 -> e
+    22:22:void ensureNormalSuccessorBlock(int,int):2450:2450 -> e
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getCFG():486:486 -> f
+    2:2:void resolveAndBuildNewArrayFilledData(int,int):893:893 -> f
+    3:4:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1217:1218 -> f
+    5:5:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> f
+    5:5:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1219 -> f
+    6:8:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1220:1222 -> f
+    9:9:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> f
+    9:9:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1221 -> f
+    10:12:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1223:1225 -> f
+    13:17:void addThrow(int):1900:1904 -> f
+    18:18:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> f
+    18:18:void addThrow(int):1904 -> f
+    19:19:void addThrow(int):1905:1905 -> f
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getMethod():474:474 -> g
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> g
+    2:2:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1259 -> g
+    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> g
+    3:3:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1260 -> g
+    4:4:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1261:1261 -> g
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> g
+    5:5:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1261 -> g
+    6:7:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1262:1263 -> g
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> g
+    8:8:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1264 -> g
+    9:10:void checkRegister(int):2243:2244 -> g
+    11:11:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> g
+    11:11:void checkRegister(int):2244 -> g
+    12:12:void checkRegister(int):2244:2244 -> g
+    13:13:void checkRegister(int):2241:2241 -> g
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription getPrototypeChanges():478:478 -> h
+    2:2:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1268:1268 -> h
+    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> h
+    3:3:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1269 -> h
+    4:5:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1270:1271 -> h
+    6:6:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> h
+    6:6:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1271 -> h
+    7:8:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1272:1273 -> h
+    9:9:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> h
+    9:9:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1274 -> h
+    10:11:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2373:2374 -> h
+    12:12:boolean isOffsetProcessed(int):2407:2407 -> h
+    12:12:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2377 -> h
+    13:16:int getBlockStartOffset(int):2391:2394 -> h
+    13:16:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2378 -> h
+    17:18:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2379:2380 -> h
+    19:336:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):0:317 -> h
+    19:336:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    337:338:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(java.util.Collection):87:88 -> h
+    337:338:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):317 -> h
+    337:338:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    339:344:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):317:322 -> h
+    339:344:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    345:346:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.replaceNormalPredecessor(int,int):286:287 -> h
+    345:346:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):323 -> h
+    345:346:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    347:348:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):325:326 -> h
+    347:348:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    349:350:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(java.util.Collection):87:88 -> h
+    349:350:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):326 -> h
+    349:350:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    351:355:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):326:330 -> h
+    351:355:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    356:356:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalPredecessor(int):291:291 -> h
+    356:356:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):331 -> h
+    356:356:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    357:357:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):333:333 -> h
+    357:357:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    358:359:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):76:77 -> h
+    358:359:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):333 -> h
+    358:359:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    360:360:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):333:333 -> h
+    360:360:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2380 -> h
+    361:364:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2382:2385 -> h
+    1:1:com.android.tools.r8.ir.code.Value getReceiverValue():495:495 -> i
+    2:2:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1909:1909 -> i
+    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> i
+    3:3:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1910 -> i
+    4:4:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> i
+    4:4:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1911 -> i
+    5:5:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1912:1912 -> i
+    6:6:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> i
+    6:6:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1912 -> i
+    7:8:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1913:1914 -> i
+    9:9:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> i
+    9:9:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1915 -> i
+    10:10:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2468:2468 -> i
+    1:1:boolean isDebugMode():482:482 -> j
+    2:2:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1919:1919 -> j
+    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> j
+    3:3:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1920 -> j
+    4:5:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1921:1922 -> j
+    6:6:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> j
+    6:6:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1922 -> j
+    7:8:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1923:1924 -> j
+    9:9:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> j
+    9:9:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1925 -> j
+    10:11:boolean isIndexProcessed(int):2411:2412 -> j
+    12:13:void ensureSubroutineProcessedInstructions():2429:2430 -> j
+    12:13:boolean isIndexProcessed(int):2414 -> j
+    14:14:boolean isIndexProcessed(int):2415:2415 -> j
+    1:1:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1287:1287 -> k
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> k
+    2:2:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1288 -> k
+    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> k
+    3:3:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1289 -> k
+    4:4:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1291:1291 -> k
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> k
+    5:5:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1290 -> k
+    6:7:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1292:1293 -> k
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> k
+    8:8:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1294 -> k
+    1:2:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1298:1299 -> l
+    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> l
+    3:3:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1300 -> l
+    4:6:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1301:1303 -> l
+    7:7:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> l
+    7:7:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1302 -> l
+    8:9:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1304:1305 -> l
+    10:10:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> l
+    10:10:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1306 -> l
+    1:1:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1798:1798 -> m
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> m
+    2:2:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1799 -> m
+    3:4:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1800:1801 -> m
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> m
+    5:5:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1801 -> m
+    6:7:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1804:1805 -> m
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> m
+    8:8:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1806 -> m
+    1:1:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1929:1929 -> n
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> n
+    2:2:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1930 -> n
+    3:4:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1931:1932 -> n
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> n
+    5:5:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1932 -> n
+    6:7:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1933:1934 -> n
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> n
+    8:8:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1935 -> n
+    1:1:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1939:1939 -> o
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> o
+    2:2:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1940 -> o
+    3:4:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1941:1942 -> o
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> o
+    5:5:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1942 -> o
+    6:7:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1943:1944 -> o
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> o
+    8:8:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1945 -> o
+    1:1:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1949:1949 -> p
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> p
+    2:2:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1950 -> p
+    3:4:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1951:1952 -> p
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> p
+    5:5:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1952 -> p
+    6:7:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1953:1954 -> p
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> p
+    8:8:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1955 -> p
+    1:1:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1959:1959 -> q
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> q
+    2:2:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1960 -> q
+    3:4:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1961:1962 -> q
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> q
+    5:5:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1962 -> q
+    6:7:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1963:1964 -> q
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> q
+    8:8:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1965 -> q
+    1:1:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> r
+    1:1:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1789 -> r
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> r
+    2:2:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1790 -> r
+    3:3:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1791:1791 -> r
+    4:4:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> r
+    4:4:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1791 -> r
+    5:6:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1792:1793 -> r
+    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> r
+    7:7:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1794 -> r
+    1:1:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1969:1969 -> s
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> s
+    2:2:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1970 -> s
+    3:4:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1971:1972 -> s
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> s
+    5:5:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1972 -> s
+    6:7:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1973:1974 -> s
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> s
+    8:8:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1975 -> s
+    1:1:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1979:1979 -> t
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> t
+    2:2:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1980 -> t
+    3:4:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1981:1982 -> t
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> t
+    5:5:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1982 -> t
+    6:7:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1983:1984 -> t
+    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> t
+    8:8:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1985 -> t
+    1:7:java.lang.String toString():2652:2658 -> toString
+    1:1:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1989:1989 -> u
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> u
+    2:2:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1990 -> u
+    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> u
+    3:3:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1991 -> u
+    4:4:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1992:1992 -> u
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> u
+    5:5:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1992 -> u
+    6:13:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1994:2001 -> u
+    14:14:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> u
+    14:14:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):2002 -> u
+    1:1:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):2006:2006 -> v
+    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2173:2173 -> v
+    2:2:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):2007 -> v
+    3:4:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):2009:2010 -> v
+    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> v
+    5:5:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):2010 -> v
+    6:9:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):2011:2014 -> v
+    10:10:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2228:2228 -> v
+    10:10:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):2014 -> v
+    11:13:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):2015:2017 -> v
+    14:14:void addInstruction(com.android.tools.r8.ir.code.Instruction):2302:2302 -> v
+    14:14:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):2018 -> v
+com.android.tools.r8.ir.conversion.IRBuilder$1 -> com.android.tools.r8.ir.conversion.N$a:
+com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo -> com.android.tools.r8.ir.conversion.N$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet exceptionalPredecessors -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet exceptionalSuccessors -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet normalPredecessors -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet normalSuccessors -> c
+    com.android.tools.r8.ir.code.BasicBlock block -> a
+    1:6:void <init>():270:275 -> <init>
+    1:25:java.lang.String toString():339:363 -> toString
+com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem -> com.android.tools.r8.ir.conversion.N$c:
+    com.android.tools.r8.graph.DexType guard -> d
+    int targetOffset -> f
+    int sourceOffset -> e
+    1:1:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType,int,int,com.android.tools.r8.ir.conversion.IRBuilder$1):195:195 -> <init>
+    2:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType,int,int):202:205 -> <init>
+    1:1:int access$600(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):195:195 -> a
+    1:1:com.android.tools.r8.graph.DexType access$700(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):195:195 -> b
+    1:1:int access$800(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):195:195 -> c
+com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem -> com.android.tools.r8.ir.conversion.N$d:
+    int sourceOffset -> d
+    int targetOffset -> e
+    com.android.tools.r8.ir.code.Position position -> f
+    1:4:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,int,int):220:223 -> <init>
+    1:1:int access$200(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):209:209 -> a
+    1:1:int access$300(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):209:209 -> b
+    1:1:com.android.tools.r8.ir.code.Position access$500(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):209:209 -> c
+com.android.tools.r8.ir.conversion.IRBuilder$ValueList -> com.android.tools.r8.ir.conversion.N$e:
+    java.util.List values -> a
+    1:3:void <init>():232:234 -> <init>
+    1:3:com.android.tools.r8.ir.conversion.IRBuilder$ValueList fromPhis(java.util.List,int):240:242 -> a
+    1:9:boolean equals(java.lang.Object):254:262 -> equals
+    1:1:int hashCode():249:249 -> hashCode
+com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem -> com.android.tools.r8.ir.conversion.N$f:
+    int firstInstructionIndex -> b
+    boolean $assertionsDisabled -> c
+    com.android.tools.r8.ir.code.BasicBlock block -> a
+    1:1:void <clinit>():183:183 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.ir.conversion.IRBuilder$1):183:183 -> <init>
+    2:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):188:191 -> <init>
+    1:1:com.android.tools.r8.ir.code.BasicBlock access$100(com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem):183:183 -> a
+    1:1:int access$400(com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem):183:183 -> b
+com.android.tools.r8.ir.conversion.IRConverter -> com.android.tools.r8.ir.conversion.O:
+    com.android.tools.r8.graph.DexString highestSortingString -> Q
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization uninstantiatedTypeOptimization -> D
+    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization classInitializerDefaultsOptimization -> d
+    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed delayedOptimizationFeedback -> O
+    com.android.tools.r8.utils.CfgPrinter printer -> t
+    java.util.List neverMergePrefixes -> S
+    boolean $assertionsDisabled -> V
+    com.android.tools.r8.ir.optimize.ConstantCanonicalizer constantCanonicalizer -> v
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer enumUnboxer -> I
+    com.android.tools.r8.ir.optimize.Inliner inliner -> y
+    com.android.tools.r8.ir.desugar.StringConcatRewriter stringConcatRewriter -> g
+    boolean seenNotNeverMergePrefix -> T
+    com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer idempotentFunctionCallCanonicalizer -> j
+    com.android.tools.r8.ir.desugar.BackportedMethodRewriter backportedMethodRewriter -> o
+    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> u
+    com.android.tools.r8.ir.optimize.DeadCodeRemover deadCodeRemover -> M
+    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer stringBuilderOptimizer -> i
+    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer classStaticizer -> r
+    com.android.tools.r8.utils.Timing timing -> b
+    com.android.tools.r8.utils.InternalOptions options -> s
+    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter desugaredLibraryAPIConverter -> F
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector methodOptimizationInfoCollector -> N
+    com.android.tools.r8.ir.desugar.D8NestBasedAccessDesugaring d8NestBasedAccessDesugaring -> l
+    com.android.tools.r8.ir.conversion.StringSwitchRemover stringSwitchRemover -> C
+    com.android.tools.r8.ir.analysis.TypeChecker typeChecker -> E
+    com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer enumValueOptimizer -> H
+    com.android.tools.r8.naming.IdentifierNameStringMarker identifierNameStringMarker -> z
+    java.util.List onWaveDoneActions -> R
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner classInliner -> q
+    com.android.tools.r8.ir.desugar.CovariantReturnTypeAnnotationTransformer covariantReturnTypeAnnotationTransformer -> B
+    com.android.tools.r8.ir.optimize.MemberValuePropagation memberValuePropagation -> w
+    com.android.tools.r8.ir.optimize.DynamicTypeOptimization dynamicTypeOptimization -> K
+    boolean seenNeverMergePrefix -> U
+    com.android.tools.r8.ir.optimize.Outliner outliner -> c
+    com.android.tools.r8.ir.optimize.ServiceLoaderRewriter serviceLoaderRewriter -> G
+    com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis libraryMethodOverrideAnalysis -> f
+    java.util.Collection assumers -> J
+    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> k
+    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter interfaceMethodRewriter -> m
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger lambdaMerger -> p
+    com.android.tools.r8.ir.optimize.Devirtualizer devirtualizer -> A
+    com.android.tools.r8.ir.optimize.AssertionsRewriter assertionsRewriter -> L
+    com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter twrCloseResourceRewriter -> n
+    com.android.tools.r8.ir.optimize.info.OptimizationFeedback simpleOptimizationFeedback -> P
+    com.android.tools.r8.ir.analysis.fieldaccess.FieldAccessAnalysis fieldAccessAnalysis -> e
+    com.android.tools.r8.ir.conversion.LensCodeRewriter lensCodeRewriter -> x
+    com.android.tools.r8.ir.optimize.string.StringOptimizer stringOptimizer -> h
+    1:1:void <clinit>():123:123 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter,com.android.tools.r8.shaking.MainDexClasses):191:191 -> <init>
+    2:200:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter,com.android.tools.r8.shaking.MainDexClasses):166:364 -> <init>
+    201:201:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing):369:369 -> <init>
+    boolean lambda$materializeInstructionBeforeLongOperationsWorkaround$16(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
+    1:1:java.lang.String lambda$new$0(java.lang.String):213:213 -> a
+    2:3:boolean removeLambdaDeserializationMethods():396:397 -> a
+    2:3:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):462 -> a
+    4:9:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):464:469 -> a
+    10:11:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):404:405 -> a
+    10:11:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):471 -> a
+    12:13:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):472:473 -> a
+    14:15:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):435:436 -> a
+    14:15:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):473 -> a
+    16:17:void synthesizeTwrCloseResourceUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):444:445 -> a
+    16:17:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):474 -> a
+    18:18:void synthesizeJava8UtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):451:451 -> a
+    18:18:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):475 -> a
+    19:20:void processCovariantReturnTypeAnnotations(com.android.tools.r8.graph.DexApplication$Builder):455:456 -> a
+    19:20:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):476 -> a
+    21:22:void generateDesugaredLibraryAPIWrappers(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):925:926 -> a
+    21:22:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):477 -> a
+    23:26:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):479:482 -> a
+    27:29:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):411:413 -> a
+    30:36:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):486:492 -> a
+    37:39:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):517:519 -> a
+    37:39:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):493 -> a
+    40:47:com.android.tools.r8.graph.DexAnnotationSet com.android.tools.r8.graph.DexAnnotationSet.getWithout(com.android.tools.r8.graph.DexType):119:126 -> a
+    40:47:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):519 -> a
+    40:47:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):493 -> a
+    48:48:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):518:518 -> a
+    48:48:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):493 -> a
+    49:51:void lambda$convertMethods$3(boolean,com.android.tools.r8.graph.DexEncodedMethod):565:567 -> a
+    52:80:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):573:601 -> a
+    81:81:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    81:81:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
+    82:82:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    82:82:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    82:82:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
+    83:87:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):601:605 -> a
+    88:88:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    88:88:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):605 -> a
+    89:97:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):605:613 -> a
+    98:102:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):608:608 -> a
+    109:109:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):615:615 -> a
+    110:110:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    110:110:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):615 -> a
+    111:115:void updateHighestSortingStrings(com.android.tools.r8.graph.DexEncodedMethod):1677:1681 -> a
+    111:115:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):616 -> a
+    116:118:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):632:634 -> a
+    119:120:void collectLambdaMergingCandidates(com.android.tools.r8.graph.DexApplication):905:906 -> a
+    119:120:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):635 -> a
+    121:122:void collectStaticizerCandidates(com.android.tools.r8.graph.DexApplication):425:426 -> a
+    121:122:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):636 -> a
+    123:134:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):644:655 -> a
+    135:195:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):654:714 -> a
+    196:196:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    196:196:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):714 -> a
+    197:197:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):715:715 -> a
+    198:199:void staticizeClasses(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):419:420 -> a
+    198:199:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):717 -> a
+    200:215:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):718:733 -> a
+    216:217:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):435:436 -> a
+    216:217:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):733 -> a
+    218:220:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):734:736 -> a
+    221:222:void synthesizeTwrCloseResourceUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):444:445 -> a
+    221:222:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):737 -> a
+    223:223:void synthesizeJava8UtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):451:451 -> a
+    223:223:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):738 -> a
+    224:226:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):739:741 -> a
+    227:228:void finalizeLambdaMerging(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):916:917 -> a
+    227:228:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):743 -> a
+    229:229:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):745:745 -> a
+    230:231:void generateDesugaredLibraryAPIWrappers(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):925:926 -> a
+    230:231:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):746 -> a
+    232:234:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):748:750 -> a
+    235:254:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):749:768 -> a
+    255:267:com.android.tools.r8.graph.DexType computeOutlineClassType():968:980 -> a
+    255:267:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):768 -> a
+    268:268:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    268:268:com.android.tools.r8.graph.DexType computeOutlineClassType():980 -> a
+    268:268:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):768 -> a
+    269:326:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):768:825 -> a
+    327:334:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):819:826 -> a
+    335:335:com.android.tools.r8.utils.Timing lambda$optimize$4(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.PrimaryMethodProcessor,com.android.tools.r8.graph.DexEncodedMethod):662:662 -> a
+    336:337:void lambda$optimize$5(com.android.tools.r8.ir.code.IRCode):764:765 -> a
+    338:344:void waveDone(java.util.Collection):834:840 -> a
+    345:345:void addWaveDoneAction(com.android.tools.r8.utils.Action):844:844 -> a
+    346:346:boolean isInWave():854:854 -> a
+    346:346:void addWaveDoneAction(com.android.tools.r8.utils.Action):847 -> a
+    347:347:void addWaveDoneAction(com.android.tools.r8.utils.Action):850:850 -> a
+    348:348:void addWaveDoneAction(com.android.tools.r8.utils.Action):848:848 -> a
+    349:349:void addWaveDoneAction(com.android.tools.r8.utils.Action):845:845 -> a
+    350:350:void computeReachabilitySensitivity(com.android.tools.r8.graph.DexApplication):858:858 -> a
+    351:353:void forEachSelectedOutliningMethod(java.util.function.Consumer,java.util.concurrent.ExecutorService):868:870 -> a
+    354:364:void lambda$forEachSelectedOutliningMethod$9(java.util.function.Consumer,com.android.tools.r8.graph.DexEncodedMethod):873:883 -> a
+    365:365:void processSynthesizedServiceLoaderMethods(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService):891:891 -> a
+    366:366:void processSynthesizedServiceLoaderMethods(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService):890:890 -> a
+    367:367:void clearDexMethodCompilationState():931:931 -> a
+    368:368:void clearDexMethodCompilationState(com.android.tools.r8.graph.DexProgramClass):935:935 -> a
+    369:380:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):948:959 -> a
+    381:381:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1022:1022 -> a
+    381:381:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):959 -> a
+    382:382:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):959:959 -> a
+    383:383:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):958:958 -> a
+    384:387:void optimizeSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,java.util.concurrent.ExecutorService):987:990 -> a
+    388:392:void optimizeSynthesizedClasses(java.util.Collection,java.util.concurrent.ExecutorService):996:1000 -> a
+    393:393:void lambda$processMethodsConcurrently$10(com.android.tools.r8.ir.conversion.OneTimeMethodProcessor,com.android.tools.r8.graph.DexEncodedMethod):1018:1018 -> a
+    394:402:com.android.tools.r8.utils.Timing processMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1038:1046 -> a
+    403:405:com.android.tools.r8.utils.Timing rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1080:1082 -> a
+    406:411:com.android.tools.r8.utils.Timing rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1081:1086 -> a
+    412:412:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1022:1022 -> a
+    412:412:com.android.tools.r8.utils.Timing rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1086 -> a
+    413:413:com.android.tools.r8.utils.Timing rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1086:1086 -> a
+    414:426:com.android.tools.r8.utils.Timing rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1085:1097 -> a
+    427:431:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1103:1107 -> a
+    432:437:void printC1VisualizerHeader(com.android.tools.r8.graph.DexEncodedMethod):1885:1890 -> a
+    432:437:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1110 -> a
+    438:444:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1111:1117 -> a
+    445:445:boolean com.android.tools.r8.utils.InternalOptions.canHaveArtStringNewInitBug():1372:1372 -> a
+    445:445:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1117 -> a
+    446:466:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1118:1138 -> a
+    467:493:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1137:1163 -> a
+    494:494:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1626:1626 -> a
+    494:494:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1164 -> a
+    495:495:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    495:495:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1626 -> a
+    495:495:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1164 -> a
+    496:498:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1626:1628 -> a
+    496:498:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1164 -> a
+    499:499:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    499:499:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1628 -> a
+    499:499:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1164 -> a
+    500:503:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1629:1632 -> a
+    500:503:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1164 -> a
+    504:517:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1172:1185 -> a
+    518:518:void com.android.tools.r8.naming.IdentifierNameStringMarker.decoupleIdentifierNameStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):97:97 -> a
+    518:518:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1185 -> a
+    519:556:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1186:1223 -> a
+    557:557:void com.android.tools.r8.ir.optimize.Inliner.performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):844:844 -> a
+    557:557:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1223 -> a
+    558:558:void com.android.tools.r8.ir.optimize.Inliner.performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):839:839 -> a
+    558:558:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1223 -> a
+    559:677:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1224:1342 -> a
+    678:680:void invertConditionalsForTesting(com.android.tools.r8.ir.code.IRCode):1050:1052 -> a
+    678:680:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1343 -> a
+    681:692:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1346:1357 -> a
+    693:736:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1356:1399 -> a
+    737:783:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1389:1435 -> a
+    784:784:void com.android.tools.r8.ir.optimize.enums.EnumUnboxer.unboxEnums(com.android.tools.r8.ir.code.IRCode):0:0 -> a
+    784:784:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1435 -> a
+    785:828:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1439:1482 -> a
+    829:829:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    829:829:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1482 -> a
+    830:848:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1483:1501 -> a
+    849:854:boolean com.android.tools.r8.utils.InternalOptions.methodMatchesLogArgumentsFilter(com.android.tools.r8.graph.DexEncodedMethod):926:931 -> a
+    849:854:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1501 -> a
+    855:897:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1502:1544 -> a
+    898:898:boolean com.android.tools.r8.utils.InternalOptions.canHaveNumberConversionRegisterAllocationBug():1380:1380 -> a
+    898:898:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1544 -> a
+    899:907:com.android.tools.r8.utils.Timing optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1545:1553 -> a
+    908:908:void lambda$optimize$11(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):1212:1212 -> a
+    909:909:void lambda$optimize$12(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):1216:1216 -> a
+    910:910:com.android.tools.r8.ir.optimize.InliningOracle lambda$optimize$13(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):1401:1401 -> a
+    911:949:void collectOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.utils.Timing):1566:1604 -> a
+    950:951:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1616:1617 -> a
+    952:952:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    952:952:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1617 -> a
+    953:957:void finalizeToCf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1636:1640 -> a
+    953:957:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1618 -> a
+    958:958:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1620:1620 -> a
+    959:964:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1646:1651 -> a
+    959:964:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1621 -> a
+    965:969:void updateHighestSortingStrings(com.android.tools.r8.graph.DexEncodedMethod):1677:1681 -> a
+    965:969:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1652 -> a
+    965:969:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1621 -> a
+    970:972:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1653:1655 -> a
+    970:972:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1621 -> a
+    973:973:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1022:1022 -> a
+    973:973:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1655 -> a
+    973:973:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1621 -> a
+    974:974:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1655:1655 -> a
+    974:974:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1621 -> a
+    975:981:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1654:1660 -> a
+    975:981:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1621 -> a
+    982:987:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1666:1671 -> a
+    988:992:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1669:1673 -> a
+    993:1000:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Timing):1690:1697 -> a
+    1001:1001:boolean com.android.tools.r8.utils.InternalOptions.canHaveExceptionTargetingLoopHeaderBug():1405:1405 -> a
+    1001:1001:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Timing):1697 -> a
+    1002:1002:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Timing):1698:1698 -> a
+    1003:4508:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):0:3505 -> a
+    1003:4508:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Timing):1698 -> a
+    4509:4509:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    4509:4509:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3506 -> a
+    4509:4509:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Timing):1698 -> a
+    4510:4511:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3506:3507 -> a
+    4510:4511:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Timing):1698 -> a
+    4512:4525:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Timing):1700:1713 -> a
+    4526:4526:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Timing):1712:1712 -> a
+    4527:4528:com.android.tools.r8.graph.DexMethod lambda$materializeInstructionBeforeLongOperationsWorkaround$15(com.android.tools.r8.graph.DexItemFactory):1778:1779 -> a
+    4529:4529:com.android.tools.r8.graph.DexMethod lambda$materializeInstructionBeforeLongOperationsWorkaround$15(com.android.tools.r8.graph.DexItemFactory):1777:1777 -> a
+    4530:4530:boolean isNotPseudoInstruction(com.android.tools.r8.ir.code.Instruction):1825:1825 -> a
+    4531:4531:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1901:1901 -> a
+    4532:4532:void com.android.tools.r8.utils.CfgPrinter.resetUnusedValue():24:24 -> a
+    4532:4532:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1902 -> a
+    4533:4550:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1903:1920 -> a
+    1:7:boolean enableTryWithResourcesDesugaring():386:392 -> b
+    8:13:void updateMainDexListWithSynthesizedClassMap(com.android.tools.r8.graph.DexApplication$Builder):498:503 -> b
+    14:25:void updateMainDexListWithSynthesizedClassMap(com.android.tools.r8.graph.DexApplication$Builder):501:512 -> b
+    26:35:void convertMethods(com.android.tools.r8.graph.DexProgramClass):554:563 -> b
+    36:39:void lambda$optimize$6(com.android.tools.r8.ir.code.IRCode):773:776 -> b
+    40:40:void lambda$optimize$6(com.android.tools.r8.ir.code.IRCode):775:775 -> b
+    41:41:void waveStart(java.util.Collection):830:830 -> b
+    42:46:void forEachSynthesizedServiceLoaderMethod(com.android.tools.r8.graph.DexEncodedMethod):897:901 -> b
+    47:48:void removeDeadCodeAndFinalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1610:1611 -> b
+    47:48:void forEachSynthesizedServiceLoaderMethod(com.android.tools.r8.graph.DexEncodedMethod):900 -> b
+    49:50:void processMethodsConcurrently(java.util.Collection,java.util.concurrent.ExecutorService):1016:1017 -> b
+    51:58:com.android.tools.r8.utils.Timing rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1059:1066 -> b
+    59:59:com.android.tools.r8.utils.Timing rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1064:1064 -> b
+    60:61:void removeDeadCodeAndFinalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.utils.Timing):1610:1611 -> b
+    62:66:boolean lambda$workaroundForwardingInitializerBug$14(com.android.tools.r8.ir.code.Instruction):1741:1745 -> b
+    67:68:void printPhase(java.lang.String):1895:1896 -> b
+    1:1:boolean enableTwrCloseResourceDesugaring():382:382 -> c
+    2:21:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):525:544 -> c
+    22:28:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):543:549 -> c
+    29:42:com.android.tools.r8.graph.DexAnnotationSet com.android.tools.r8.graph.DexAnnotationSet.getWithAddedOrReplaced(com.android.tools.r8.graph.DexAnnotation):142:155 -> c
+    29:42:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):549 -> c
+    43:43:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):549:549 -> c
+    44:45:void lambda$computeReachabilitySensitivity$8(com.android.tools.r8.graph.DexProgramClass):859:860 -> c
+    46:46:void lambda$computeReachabilitySensitivity$7(com.android.tools.r8.graph.DexEncodedMethod):860:860 -> c
+    47:47:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1770:1770 -> c
+    48:48:boolean com.android.tools.r8.utils.InternalOptions.canHaveDex2OatLinkedListBug():1356:1356 -> c
+    48:48:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1770 -> c
+    49:60:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1773:1784 -> c
+    61:63:boolean isLongMul(com.android.tools.r8.ir.code.Instruction):1830:1832 -> c
+    61:63:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1785 -> c
+    64:64:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1788:1788 -> c
+    65:66:boolean isLongAddOrSub(com.android.tools.r8.ir.code.Instruction):1837:1838 -> c
+    65:66:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1789 -> c
+    67:68:boolean isFallthoughTarget(com.android.tools.r8.ir.code.BasicBlock):1842:1843 -> c
+    67:68:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1792 -> c
+    69:70:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1795:1796 -> c
+    71:75:boolean isAliasOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):1816:1820 -> c
+    71:75:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1797 -> c
+    76:81:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1798:1803 -> c
+    82:93:void ensureThrowingInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction):1852:1863 -> c
+    82:93:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1804 -> c
+    1:1:com.android.tools.r8.graph.DexType lambda$updateMainDexListWithSynthesizedClassMap$1(com.android.tools.r8.graph.DexProgramClass):502:502 -> d
+    2:7:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):1004:1009 -> d
+    8:8:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):1006:1006 -> d
+    9:9:java.util.List getOptimizationsForPostIRProcessing():1032:1032 -> d
+    10:10:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1719:1719 -> d
+    11:11:boolean com.android.tools.r8.utils.InternalOptions.canHaveForwardingInitInliningBug():1393:1393 -> d
+    11:11:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1719 -> d
+    12:28:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1723:1739 -> d
+    29:32:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1869:1872 -> d
+    29:32:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1750 -> d
+    33:33:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> d
+    33:33:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1872 -> d
+    33:33:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1750 -> d
+    34:42:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1873:1881 -> d
+    34:42:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1750 -> d
+    1:1:com.android.tools.r8.graph.DexType lambda$updateSynthesizedClassMapping$2(com.android.tools.r8.graph.DexProgramClass):541:541 -> e
+    2:2:boolean isInWave():854:854 -> e
+    1:5:com.android.tools.r8.graph.DexApplication optimize():623:627 -> f
+com.android.tools.r8.ir.conversion.LensCodeRewriter -> com.android.tools.r8.ir.conversion.Q:
+    java.util.Map protoFixupCache -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():73:73 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):79:79 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.AppView):77:80 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.conversion.LensCodeRewriter):73:73 -> a
+    2:2:com.android.tools.r8.ir.code.Value access$100(com.android.tools.r8.ir.conversion.LensCodeRewriter,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):73:73 -> a
+    3:7:com.android.tools.r8.ir.code.Value makeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):84:88 -> a
+    8:18:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):95:105 -> a
+    19:39:boolean unlinkDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):469:489 -> a
+    19:39:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):107 -> a
+    40:94:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):110:164 -> a
+    95:128:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):424:457 -> a
+    95:128:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):164 -> a
+    129:129:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):448:448 -> a
+    129:129:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):164 -> a
+    130:130:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):447:447 -> a
+    130:130:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):164 -> a
+    131:153:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):166:188 -> a
+    154:170:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):187:203 -> a
+    171:198:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):198:225 -> a
+    199:199:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):224:224 -> a
+    200:200:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
+    200:200:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):228 -> a
+    201:238:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):229:266 -> a
+    239:248:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):265:274 -> a
+    249:264:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):273:288 -> a
+    265:281:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):287:303 -> a
+    282:304:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):302:324 -> a
+    305:315:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):323:333 -> a
+    316:322:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):332:338 -> a
+    323:329:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):337:343 -> a
+    330:336:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):342:348 -> a
+    337:344:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):347:354 -> a
+    345:351:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):353:359 -> a
+    352:384:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):358:390 -> a
+    385:391:com.android.tools.r8.ir.code.Instruction lambda$rewrite$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):149:155 -> a
+    392:392:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
+    392:392:com.android.tools.r8.ir.code.Instruction lambda$rewrite$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):155 -> a
+    393:393:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> a
+    393:393:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):532 -> a
+    394:428:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):533:567 -> a
+    429:429:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    429:429:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):567 -> a
+    430:441:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):568:579 -> a
+    442:442:com.android.tools.r8.ir.code.Instruction lambda$rewrite$1(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):333:333 -> a
+    443:443:com.android.tools.r8.ir.code.Instruction lambda$rewrite$2(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):338:338 -> a
+    444:444:com.android.tools.r8.ir.code.Instruction lambda$rewrite$3(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):343:343 -> a
+    445:445:com.android.tools.r8.ir.code.Instruction lambda$rewrite$4(com.android.tools.r8.ir.code.InvokeMultiNewArray,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):349:349 -> a
+    446:446:com.android.tools.r8.ir.code.Instruction lambda$rewrite$5(com.android.tools.r8.ir.code.InvokeNewArray,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):354:354 -> a
+    447:447:com.android.tools.r8.ir.code.Instruction lambda$rewrite$7(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):365:365 -> a
+    448:451:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):394:397 -> a
+    452:461:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):396:405 -> a
+    462:466:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):496:500 -> a
+    462:466:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):405 -> a
+    467:469:com.android.tools.r8.graph.DexValue$DexValueMethodHandle rewriteDexValueMethodHandle(com.android.tools.r8.graph.DexValue$DexValueMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):525:527 -> a
+    467:469:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):500 -> a
+    467:469:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):405 -> a
+    470:486:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):501:517 -> a
+    470:486:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):405 -> a
+    487:490:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):406:409 -> a
+    491:496:com.android.tools.r8.graph.DexValue$DexValueMethodType rewriteDexMethodType(com.android.tools.r8.graph.DexValue$DexValueMethodType):586:591 -> a
+    1:1:com.android.tools.r8.ir.code.Instruction lambda$rewrite$6(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):360:360 -> b
+com.android.tools.r8.ir.conversion.LensCodeRewriter$InstructionReplacer -> com.android.tools.r8.ir.conversion.P:
+    com.android.tools.r8.ir.code.Instruction current -> b
+    java.util.Set affectedPhis -> d
+    com.android.tools.r8.ir.conversion.LensCodeRewriter this$0 -> e
+    com.android.tools.r8.ir.code.IRCode code -> a
+    com.android.tools.r8.ir.code.InstructionListIterator iterator -> c
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():594:594 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.ir.conversion.LensCodeRewriter,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):602:606 -> <init>
+    1:14:void replaceInstructionIfTypeChanged(com.android.tools.r8.graph.DexType,java.util.function.BiFunction):611:624 -> a
+    15:15:void replaceInstructionIfTypeChanged(com.android.tools.r8.graph.DexType,java.util.function.BiFunction):621:621 -> a
+com.android.tools.r8.ir.conversion.MethodOptimizationFeedback -> com.android.tools.r8.ir.conversion.S:
+    void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget) -> a
+    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
+    void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
+    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> a
+    void methodReturnsAbstractValue(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
+    void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
+    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
+    void methodReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
+    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo) -> a
+    void setInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo) -> a
+    void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> a
+    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo) -> a
+    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
+    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> b
+    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
+    void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod) -> c
+    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> d
+    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> e
+    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> f
+    void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod) -> g
+    void setInitializerEnablingJavaVmAssertions(com.android.tools.r8.graph.DexEncodedMethod) -> h
+com.android.tools.r8.ir.conversion.MethodProcessor -> com.android.tools.r8.ir.conversion.T:
+    boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod) -> a
+    1:1:boolean isPrimary():19:19 -> a
+    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> b
+    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation getCallSiteInformation():27 -> b
+    com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase() -> c
+    1:1:boolean isPost():23:23 -> d
+com.android.tools.r8.ir.conversion.MethodProcessor$Phase -> com.android.tools.r8.ir.conversion.T$a:
+    com.android.tools.r8.ir.conversion.MethodProcessor$Phase POST -> c
+    com.android.tools.r8.ir.conversion.MethodProcessor$Phase PRIMARY -> b
+    com.android.tools.r8.ir.conversion.MethodProcessor$Phase ONE_TIME -> a
+    1:3:void <clinit>():11:13 -> <clinit>
+    1:1:void <init>(java.lang.String,int):10:10 -> <init>
+com.android.tools.r8.ir.conversion.OneTimeMethodProcessor -> com.android.tools.r8.ir.conversion.U:
+    java.util.Collection wave -> a
+    1:2:void <init>(java.util.Collection):21:22 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.OneTimeMethodProcessor getInstance(java.util.Collection):30:30 -> a
+    2:2:boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod):40:40 -> a
+    3:3:void forEachWave(com.android.tools.r8.utils.ThrowingConsumer,java.util.concurrent.ExecutorService):46:46 -> a
+    1:1:com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase():35:35 -> c
+    1:1:com.android.tools.r8.ir.conversion.OneTimeMethodProcessor getInstance():26:26 -> e
+com.android.tools.r8.ir.conversion.PartialCallGraphBuilder -> com.android.tools.r8.ir.conversion.V:
+    java.util.Set seeds -> f
+    boolean $assertionsDisabled -> g
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):18:20 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):14:14 -> a
+    2:2:void populateGraph(java.util.concurrent.ExecutorService):25:25 -> a
+    3:4:boolean verifyAllMethodsWithCodeExists():37:38 -> a
+    1:3:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):29:31 -> b
+    4:4:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):30:30 -> b
+com.android.tools.r8.ir.conversion.PostMethodProcessor -> com.android.tools.r8.ir.conversion.X:
+    java.util.Map methodsMap -> b
+    java.util.Deque waves -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Collection wave -> d
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.ir.conversion.CallGraph,com.android.tools.r8.ir.conversion.PostMethodProcessor$1):30:30 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.ir.conversion.CallGraph):40:43 -> <init>
+    1:2:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):111:112 -> a
+    3:3:boolean com.android.tools.r8.ir.conversion.CallGraph.isEmpty():266:266 -> a
+    3:3:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):115 -> a
+    4:7:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):116:119 -> a
+    8:8:boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod):128:128 -> a
+    9:12:void forEachWave(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):133:136 -> a
+    13:14:void lambda$forEachWave$0(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):139:140 -> a
+    15:27:void forEachMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):153:165 -> a
+    15:27:void lambda$forEachWave$0(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):141 -> a
+    1:1:com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase():48:48 -> c
+com.android.tools.r8.ir.conversion.PostMethodProcessor$1 -> com.android.tools.r8.ir.conversion.W:
+com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder -> com.android.tools.r8.ir.conversion.X$a:
+    java.util.Map methodsMap -> b
+    java.util.Collection defaultCodeOptimizations -> a
+    1:1:void <init>(java.util.Collection):56:56 -> <init>
+    2:5:void <init>(java.util.Collection):54:57 -> <init>
+    1:11:void put(java.util.Set,java.util.Collection):62:72 -> a
+    12:12:java.util.Collection lambda$put$0(com.android.tools.r8.graph.DexEncodedMethod):71:71 -> a
+    13:13:void put(java.util.Set):77:77 -> a
+    14:18:void put(com.android.tools.r8.ir.conversion.PostOptimization):82:86 -> a
+    19:24:com.android.tools.r8.ir.conversion.PostMethodProcessor build(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):92:97 -> a
+    25:25:void put(java.util.Set):77:77 -> a
+    25:25:com.android.tools.r8.ir.conversion.PostMethodProcessor build(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):93 -> a
+    26:33:com.android.tools.r8.ir.conversion.PostMethodProcessor build(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):99:106 -> a
+com.android.tools.r8.ir.conversion.PostOptimization -> com.android.tools.r8.ir.conversion.Y:
+    java.util.Set methodsToRevisit() -> a
+    java.util.Collection codeOptimizationsForPostProcessing() -> b
+com.android.tools.r8.ir.conversion.PrimaryMethodProcessor -> com.android.tools.r8.ir.conversion.Z:
+    java.util.Deque waves -> c
+    java.util.Collection wave -> d
+    com.android.tools.r8.ir.conversion.CallSiteInformation callSiteInformation -> a
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder postMethodProcessorBuilder -> b
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder,com.android.tools.r8.ir.conversion.CallGraph):46:49 -> <init>
+    1:2:com.android.tools.r8.ir.conversion.PrimaryMethodProcessor create(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):58:59 -> a
+    3:25:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph,com.android.tools.r8.ir.conversion.CallSiteInformation):74:96 -> a
+    26:26:boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod):102:102 -> a
+    27:28:int com.android.tools.r8.utils.ThreadUtils.getNumberOfThreads(java.util.concurrent.ExecutorService):108:109 -> a
+    27:28:void forEachMethod(com.android.tools.r8.utils.ThrowingFunction,com.android.tools.r8.ir.conversion.PrimaryMethodProcessor$WaveStartAction,java.util.function.Consumer,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):119 -> a
+    29:35:void forEachMethod(com.android.tools.r8.utils.ThrowingFunction,com.android.tools.r8.ir.conversion.PrimaryMethodProcessor$WaveStartAction,java.util.function.Consumer,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):119:125 -> a
+    36:47:void forEachMethod(com.android.tools.r8.utils.ThrowingFunction,com.android.tools.r8.ir.conversion.PrimaryMethodProcessor$WaveStartAction,java.util.function.Consumer,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):124:135 -> a
+    48:49:com.android.tools.r8.utils.Timing lambda$forEachMethod$0(com.android.tools.r8.utils.ThrowingFunction,com.android.tools.r8.graph.DexEncodedMethod):128:129 -> a
+    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation getCallSiteInformation():69:69 -> b
+    1:1:com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase():64:64 -> c
+com.android.tools.r8.ir.conversion.PrimaryMethodProcessor$WaveStartAction -> com.android.tools.r8.ir.conversion.Z$a:
+    void notifyWaveStart(java.util.Collection) -> a
+com.android.tools.r8.ir.conversion.SourceCode -> com.android.tools.r8.ir.conversion.a0:
+    void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean) -> a
+    void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean) -> a
+    void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
+    int getMoveExceptionRegister(int) -> a
+    int instructionCount() -> a
+    void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
+    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
+    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
+    int instructionOffset(int) -> b
+    void setUp() -> b
+    com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder) -> c
+    com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int) -> c
+    boolean verifyCurrentInstructionCanThrow() -> c
+    com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int) -> d
+    com.android.tools.r8.ir.code.Position getCurrentPosition() -> d
+    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
+    boolean verifyRegister(int) -> f
+    int instructionIndex(int) -> g
+com.android.tools.r8.ir.conversion.StringSwitchConverter -> com.android.tools.r8.ir.conversion.j0:
+    1:7:boolean isDefinedByStringHashCode(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):184:190 -> a
+    1:7:boolean access$700(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):104 -> a
+com.android.tools.r8.ir.conversion.StringSwitchConverter$1 -> com.android.tools.r8.ir.conversion.b0:
+com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping -> com.android.tools.r8.ir.conversion.d0:
+    com.android.tools.r8.ir.code.Phi idValue -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap mapping -> c
+    com.android.tools.r8.ir.code.BasicBlock fallthroughBlock -> a
+    1:1:void <init>(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.conversion.StringSwitchConverter$1):587:587 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.Phi):727:727 -> <init>
+    3:6:void <init>(com.android.tools.r8.ir.code.Phi):725:728 -> <init>
+    1:1:com.android.tools.r8.ir.code.BasicBlock access$000(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping):587:587 -> a
+    2:2:com.android.tools.r8.ir.code.BasicBlock access$002(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):587:587 -> a
+    1:1:com.android.tools.r8.ir.code.Phi access$100(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping):587:587 -> b
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap access$300(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping):587:587 -> c
+com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping$Builder -> com.android.tools.r8.ir.conversion.c0:
+    1:1:void <init>():589:589 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping build(com.android.tools.r8.ir.code.BasicBlock):616:616 -> a
+    2:2:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):628:628 -> a
+    3:3:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
+    3:3:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):631 -> a
+    4:18:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):633:647 -> a
+    19:19:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
+    19:19:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):651 -> a
+    20:23:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):655:658 -> a
+    24:24:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
+    24:24:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):658 -> a
+    25:62:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):663:700 -> a
+    63:63:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):687:687 -> a
+    64:64:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
+    64:64:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):687 -> a
+    65:65:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):675:675 -> a
+    66:66:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
+    66:66:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):675 -> a
+    67:81:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.IntSwitch):705:719 -> a
+    82:82:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.IntSwitch):708:708 -> a
+    83:83:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
+    83:83:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.IntSwitch):708 -> a
+com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo -> com.android.tools.r8.ir.conversion.f0:
+    java.util.Map mapping -> c
+    com.android.tools.r8.ir.code.Value value -> d
+    com.android.tools.r8.ir.code.BasicBlock insertionBlock -> b
+    com.android.tools.r8.ir.code.BasicBlock fallthroughBlock -> a
+    1:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,java.util.Map,com.android.tools.r8.ir.code.Value):260:264 -> <init>
+    1:29:void createAndInsertStringSwitch(com.android.tools.r8.ir.code.IRCode):273:301 -> a
+    30:30:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
+    30:30:void createAndInsertStringSwitch(com.android.tools.r8.ir.code.IRCode):301 -> a
+    31:31:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    31:31:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
+    31:31:void createAndInsertStringSwitch(com.android.tools.r8.ir.code.IRCode):301 -> a
+com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo$Builder -> com.android.tools.r8.ir.conversion.e0:
+    boolean $assertionsDisabled -> b
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
+    1:1:void <clinit>():195:195 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.conversion.StringSwitchConverter$1):195:195 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexItemFactory):199:200 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):204:204 -> a
+    2:2:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping$Builder com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping.builder():732:732 -> a
+    2:2:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):205 -> a
+    3:14:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):205:216 -> a
+    15:16:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils.getStringValueFromHashValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):787:788 -> a
+    15:16:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):216 -> a
+    17:19:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):217:219 -> a
+    20:46:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):218:244 -> a
+com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping -> com.android.tools.r8.ir.conversion.h0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap mapping -> c
+    com.android.tools.r8.ir.code.Value stringHashValue -> b
+    boolean $assertionsDisabled -> d
+    com.android.tools.r8.ir.code.BasicBlock insertionBlock -> a
+    1:1:void <clinit>():305:305 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.conversion.StringSwitchConverter$1):305:305 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):573:573 -> <init>
+    3:7:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):571:575 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap access$200(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping):305:305 -> a
+    2:2:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping$Builder builder(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value):583:583 -> a
+    1:1:com.android.tools.r8.ir.code.Value access$500(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping):305:305 -> b
+com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping$Builder -> com.android.tools.r8.ir.conversion.g0:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.ir.code.Phi idValue -> c
+    com.android.tools.r8.ir.code.Value stringValue -> d
+    com.android.tools.r8.ir.code.BasicBlock continuationBlock -> a
+    1:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value):318:322 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping build(com.android.tools.r8.ir.code.BasicBlock):356:356 -> a
+    2:4:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):360:362 -> a
+    5:35:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.If):404:434 -> a
+    5:35:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):362 -> a
+    36:36:boolean addMappingsForStringsWithHash(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):487:487 -> a
+    36:36:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.If):435 -> a
+    36:36:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):362 -> a
+    37:45:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.If):441:449 -> a
+    37:45:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):362 -> a
+    46:47:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):364:365 -> a
+    48:60:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.IntSwitch):454:466 -> a
+    48:60:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):365 -> a
+    61:61:boolean addMappingsForStringsWithHash(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):487:487 -> a
+    61:61:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.IntSwitch):467 -> a
+    61:61:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):365 -> a
+    62:70:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.IntSwitch):474:482 -> a
+    62:70:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):365 -> a
+    71:115:boolean addMappingsForStringsWithHash(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.util.Set):495:539 -> a
+    116:116:boolean addMappingsForStringsWithHash(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.util.Set):529:529 -> a
+    117:130:boolean addMappingForString(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexString,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):547:560 -> a
+    1:27:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithPredecessor(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):373:399 -> b
+    28:1508:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.startOfGotoChain():0:1480 -> b
+    28:1508:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithPredecessor(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):399 -> b
+    1509:1509:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithPredecessor(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):400:400 -> b
+com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils -> com.android.tools.r8.ir.conversion.i0:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():736:736 -> <clinit>
+    1:2:com.android.tools.r8.ir.code.BasicBlock getTrueTarget(com.android.tools.r8.ir.code.If):739:740 -> a
+    3:10:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock(com.android.tools.r8.ir.code.JumpInstruction):744:751 -> a
+    11:15:com.android.tools.r8.ir.code.Value getStringHashValueFromJump(com.android.tools.r8.ir.code.JumpInstruction,com.android.tools.r8.graph.DexItemFactory):756:760 -> a
+    16:17:com.android.tools.r8.ir.code.Value getStringHashValueFromSwitch(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.graph.DexItemFactory):779:780 -> a
+    16:17:com.android.tools.r8.ir.code.Value getStringHashValueFromJump(com.android.tools.r8.ir.code.JumpInstruction,com.android.tools.r8.graph.DexItemFactory):760 -> a
+    18:23:com.android.tools.r8.ir.code.Value getStringHashValueFromIf(com.android.tools.r8.ir.code.If,com.android.tools.r8.graph.DexItemFactory):766:771 -> a
+    24:25:com.android.tools.r8.ir.code.Value getStringHashValueFromSwitch(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.graph.DexItemFactory):779:780 -> a
+    26:28:boolean isSameStringHashValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):797:799 -> a
+com.android.tools.r8.ir.conversion.StringSwitchRemover -> com.android.tools.r8.ir.conversion.k0:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.naming.IdentifierNameStringMarker identifierNameStringMarker -> b
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement stringType -> c
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> d
+    1:1:void <clinit>():36:36 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.IdentifierNameStringMarker):43:47 -> <init>
+    1:21:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):51:71 -> a
+    22:45:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):80:103 -> a
+    46:46:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    46:46:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):104 -> a
+    47:53:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):104:110 -> a
+    54:54:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    54:54:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):110 -> a
+    55:76:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):111:132 -> a
+    77:89:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):129:141 -> a
+    90:91:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> a
+    90:91:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):141 -> a
+    92:92:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
+    92:92:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):141 -> a
+    93:93:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    93:93:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
+    93:93:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):141 -> a
+    94:106:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):142:154 -> a
+com.android.tools.r8.ir.conversion.SwitchPayloadResolver -> com.android.tools.r8.ir.conversion.m0:
+    java.util.Map unresolvedPayload -> a
+    java.util.Map payloadToData -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:17:void <init>():16:32 -> <init>
+    1:15:void resolve(com.android.tools.r8.code.SwitchPayload):45:59 -> a
+    16:17:int[] absoluteTargets(com.android.tools.r8.code.Instruction):63:64 -> a
+    18:18:int[] absoluteTargets(int):68:68 -> a
+    18:18:int[] absoluteTargets(com.android.tools.r8.code.Instruction):64 -> a
+    19:19:int[] absoluteTargets(int):68:68 -> a
+    20:20:void clear():84:84 -> a
+    1:6:void addPayloadUser(com.android.tools.r8.code.Instruction):35:40 -> b
+    7:7:int[] getKeys(int):72:72 -> b
+com.android.tools.r8.ir.conversion.SwitchPayloadResolver$PayloadData -> com.android.tools.r8.ir.conversion.l0:
+    int[] absoluteTargets -> b
+    int[] keys -> c
+    int userOffset -> a
+    1:1:void <init>(int):26:26 -> <init>
+    2:7:void <init>(int):22:27 -> <init>
+com.android.tools.r8.ir.conversion.TypeConstraintResolver -> com.android.tools.r8.ir.conversion.n0:
+    java.util.Map unificationParents -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.conversion.IRBuilder builder -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():51:51 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRBuilder):57:57 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRBuilder):55:59 -> <init>
+    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint constraintForType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):64:64 -> a
+    2:24:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):68:90 -> a
+    25:25:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):88:88 -> a
+    26:26:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):86:86 -> a
+    27:27:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):84:84 -> a
+    28:28:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):82:82 -> a
+    29:29:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):80:80 -> a
+    30:30:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):78:78 -> a
+    31:31:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):76:76 -> a
+    32:32:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):70:70 -> a
+    33:59:java.util.List resolveRoundOne(com.android.tools.r8.ir.code.IRCode):106:132 -> a
+    33:59:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode):96 -> a
+    60:60:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode):99:99 -> a
+    61:75:void resolveRoundTwo(com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.List):140:154 -> a
+    61:75:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode):102 -> a
+    76:78:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    76:78:void resolveRoundTwo(com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.List):149 -> a
+    76:78:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode):102 -> a
+    79:83:java.util.ArrayList constrainValues(boolean,java.util.List):161:165 -> a
+    84:97:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):173:186 -> a
+    98:140:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):28:70 -> a
+    98:140:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    141:141:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):65:65 -> a
+    141:141:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    142:143:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):60:61 -> a
+    142:143:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    144:145:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):55:56 -> a
+    144:145:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    146:146:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):50:50 -> a
+    146:146:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    147:147:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):45:45 -> a
+    147:147:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    148:149:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):40:41 -> a
+    148:149:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    150:151:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):35:36 -> a
+    150:151:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    152:152:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):30:30 -> a
+    152:152:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187 -> a
+    153:153:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):187:187 -> a
+    154:154:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):191:191 -> a
+    155:157:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):247:249 -> a
+    155:157:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):191 -> a
+    158:158:com.android.tools.r8.ir.code.ValueTypeConstraint constraintForType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):64:64 -> a
+    158:158:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):250 -> a
+    158:158:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):191 -> a
+    159:159:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):251:251 -> a
+    159:159:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):191 -> a
+    160:160:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    160:160:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):251 -> a
+    160:160:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):191 -> a
+    161:176:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):251:266 -> a
+    161:176:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):191 -> a
+    177:187:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):195:205 -> a
+    188:188:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value):213:213 -> a
+    188:188:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):205 -> a
+    189:189:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):206:206 -> a
+    190:193:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):199:202 -> a
+    194:194:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value):213:213 -> a
+    194:194:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):202 -> a
+    195:195:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):203:203 -> a
+    196:208:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):217:229 -> a
+    209:218:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):227:236 -> a
+    219:221:com.android.tools.r8.ir.code.Value canonical(com.android.tools.r8.ir.code.Value):274:276 -> a
+com.android.tools.r8.ir.desugar.AccessorMethodSourceCode -> com.android.tools.r8.t.c.a:
+    boolean $assertionsDisabled -> o
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):23:28 -> <init>
+    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> a
+    1:1:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():64 -> a
+    1:1:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
+    2:13:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():64:75 -> a
+    2:13:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
+    14:14:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():73:73 -> a
+    14:14:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
+    15:15:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():71:71 -> a
+    15:15:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
+    16:18:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():66:68 -> a
+    16:18:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
+    19:19:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109:109 -> a
+    20:20:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):108:108 -> a
+    21:21:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):92:92 -> a
+    22:22:void lambda$prepareInstructions$2(java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):121:121 -> a
+    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):125:125 -> b
+    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):126:126 -> c
+    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> h
+    1:1:void prepareInstructions():81 -> h
+    2:26:void prepareInstructions():81:105 -> h
+    27:27:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> h
+    27:27:void prepareInstructions():105 -> h
+    28:49:void prepareInstructions():105:126 -> h
+    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> l
+    1:1:boolean checkSignatures():32 -> l
+    2:12:boolean checkSignatures():32:42 -> l
+    13:13:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> l
+    13:13:boolean checkSignatures():42 -> l
+    14:24:boolean checkSignatures():42:52 -> l
+    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> m
+    1:1:boolean delegatingToConstructor():60 -> m
+    2:2:boolean delegatingToConstructor():60:60 -> m
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter -> com.android.tools.r8.t.c.b:
+    com.android.tools.r8.graph.DexItemFactory factory -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set holders -> f
+    com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RewritableMethods rewritableMethods -> d
+    boolean enabled -> e
+    boolean $assertionsDisabled -> h
+    java.util.Map methodProviders -> g
+    com.android.tools.r8.ir.conversion.IRConverter converter -> b
+    1:1:void <clinit>():75:75 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):90:90 -> <init>
+    2:18:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):87:103 -> <init>
+    1:19:java.util.List generateListOfBackportedMethods(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):109:127 -> a
+    20:24:void desugar(com.android.tools.r8.ir.code.IRCode):132:136 -> a
+    25:25:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    25:25:void desugar(com.android.tools.r8.ir.code.IRCode):137 -> a
+    26:66:void desugar(com.android.tools.r8.ir.code.IRCode):138:178 -> a
+    67:67:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():295:295 -> a
+    67:67:void desugar(com.android.tools.r8.ir.code.IRCode):180 -> a
+    68:75:void desugar(com.android.tools.r8.ir.code.IRCode):181:188 -> a
+    76:76:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    76:76:void desugar(com.android.tools.r8.ir.code.IRCode):187 -> a
+    77:86:void desugar(com.android.tools.r8.ir.code.IRCode):194:203 -> a
+    87:87:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    87:87:void desugar(com.android.tools.r8.ir.code.IRCode):203 -> a
+    88:88:void desugar(com.android.tools.r8.ir.code.IRCode):203:203 -> a
+    89:89:boolean hasRewrittenMethodPrefix(com.android.tools.r8.graph.DexType):217:217 -> a
+    90:93:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):222:225 -> a
+    94:94:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    94:94:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):225 -> a
+    95:95:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):360:360 -> a
+    95:95:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    96:96:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    96:96:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):360 -> a
+    96:96:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    97:111:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):360:374 -> a
+    97:111:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    112:112:com.android.tools.r8.graph.DexType dispatchInterfaceTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):484:484 -> a
+    112:112:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):374 -> a
+    112:112:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    113:119:com.android.tools.r8.graph.DexEncodedMethod generateInterfaceDispatchMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):437:443 -> a
+    113:119:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):376 -> a
+    113:119:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    120:120:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    120:120:com.android.tools.r8.graph.DexEncodedMethod generateInterfaceDispatchMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):443 -> a
+    120:120:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):376 -> a
+    120:120:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    121:129:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):377:385 -> a
+    121:129:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    130:130:com.android.tools.r8.graph.DexType dispatchHolderTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):488:488 -> a
+    130:130:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):385 -> a
+    130:130:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    131:131:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):386:386 -> a
+    131:131:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    132:147:com.android.tools.r8.graph.DexEncodedMethod generateHolderDispatchMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):457:472 -> a
+    132:147:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):387 -> a
+    132:147:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    148:148:com.android.tools.r8.graph.DexEncodedMethod generateHolderDispatchMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):467:467 -> a
+    148:148:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):387 -> a
+    148:148:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    149:149:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):388:388 -> a
+    149:149:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226 -> a
+    150:150:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):284:284 -> a
+    150:150:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    151:151:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    151:151:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):284 -> a
+    151:151:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    152:152:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):284:284 -> a
+    152:152:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    153:153:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
+    153:153:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):285 -> a
+    153:153:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    154:164:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):286:296 -> a
+    154:164:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    165:165:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    165:165:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):296 -> a
+    165:165:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    166:169:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):300:303 -> a
+    166:169:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    170:174:boolean inherit(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexType):317:321 -> a
+    170:174:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):303 -> a
+    170:174:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    175:175:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    175:175:boolean inherit(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexType):321 -> a
+    175:175:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):303 -> a
+    175:175:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    176:176:boolean inherit(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexType):321:321 -> a
+    176:176:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):303 -> a
+    176:176:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    177:177:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304:304 -> a
+    177:177:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    178:181:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):332:335 -> a
+    178:181:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304 -> a
+    178:181:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    182:182:com.android.tools.r8.graph.DexType dispatchInterfaceTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):484:484 -> a
+    182:182:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):336 -> a
+    182:182:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304 -> a
+    182:182:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    183:185:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):336:338 -> a
+    183:185:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304 -> a
+    183:185:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    186:189:com.android.tools.r8.graph.DexEncodedMethod createForwardingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):352:355 -> a
+    186:189:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):340 -> a
+    186:189:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304 -> a
+    186:189:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    190:190:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    190:190:com.android.tools.r8.graph.DexEncodedMethod createForwardingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):356 -> a
+    190:190:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):340 -> a
+    190:190:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304 -> a
+    190:190:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    191:191:com.android.tools.r8.graph.DexEncodedMethod createForwardingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):356:356 -> a
+    191:191:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):340 -> a
+    191:191:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304 -> a
+    191:191:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    192:192:com.android.tools.r8.graph.DexEncodedMethod createForwardingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):355:355 -> a
+    192:192:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):340 -> a
+    192:192:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304 -> a
+    192:192:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    193:194:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):341:342 -> a
+    193:194:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304 -> a
+    193:194:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    195:203:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):304:312 -> a
+    195:203:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):228 -> a
+    204:210:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):230:236 -> a
+    211:211:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    211:211:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):236 -> a
+    212:212:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):208:208 -> a
+    212:212:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):238 -> a
+    213:213:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    213:213:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):209 -> a
+    213:213:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):238 -> a
+    214:214:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):210:210 -> a
+    214:214:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):238 -> a
+    215:235:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):239:259 -> a
+    236:236:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    236:236:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):259 -> a
+    237:240:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):262:265 -> a
+    241:241:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    241:241:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):265 -> a
+    242:253:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):267:278 -> a
+    254:254:boolean lambda$synthesizeUtilityClasses$0(com.android.tools.r8.graph.DexProgramClass):268:268 -> a
+    255:280:com.android.tools.r8.graph.DexProgramClass synthesizeClassWithUniqueMethod(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod,java.lang.String,boolean):405:430 -> a
+    281:284:com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier getChecksumSupplier(com.android.tools.r8.graph.DexEncodedMethod):477:480 -> a
+    285:285:long lambda$getChecksumSupplier$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):480:480 -> a
+    286:286:com.android.tools.r8.graph.DexType dispatchHolderTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):488:488 -> a
+    287:299:com.android.tools.r8.graph.DexType dispatchTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod,java.lang.String):493:505 -> a
+    300:318:com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider getMethodProviderOrNull(com.android.tools.r8.graph.DexMethod):509:527 -> a
+    319:321:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppView):532:534 -> a
+    322:322:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    322:322:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppView):535 -> a
+    323:323:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppView):537:537 -> a
+    1:1:com.android.tools.r8.graph.DexType dispatchInterfaceTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):484:484 -> b
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter$InvokeRewriter -> com.android.tools.r8.t.c.b$a:
+    com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter rewriter -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():1832:1832 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter):1837:1838 -> <init>
+    boolean requiresGenerationOfCode() -> a
+    1:2:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,java.util.Set):1848:1849 -> a
+    3:3:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1859:1859 -> a
+    4:4:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1864:1864 -> a
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodGenerator -> com.android.tools.r8.t.c.b$b:
+    com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory factory -> b
+    com.android.tools.r8.graph.DexMethod generatedMethod -> d
+    java.lang.String methodName -> c
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory):1875:1875 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory,java.lang.String):1879:1881 -> <init>
+    boolean requiresGenerationOfCode() -> a
+    1:3:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,java.util.Set):1891:1891 -> a
+    4:27:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1897:1920 -> a
+    28:28:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1926:1926 -> a
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter -> com.android.tools.r8.t.c.b$c:
+    void rewrite(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set) -> a
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider -> com.android.tools.r8.t.c.b$d:
+    com.android.tools.r8.graph.DexMethod method -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod):1768:1769 -> <init>
+    com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod) -> a
+    com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView) -> a
+    boolean requiresGenerationOfCode() -> a
+    void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,java.util.Set) -> a
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RetargetCoreLibraryMethodProvider -> com.android.tools.r8.t.c.b$e:
+    com.android.tools.r8.graph.DexType newHolder -> b
+    com.android.tools.r8.graph.DexMethod targetMethod -> c
+    boolean isStatic -> d
+    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,boolean):1793:1795 -> <init>
+    boolean requiresGenerationOfCode() -> a
+    1:3:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,java.util.Set):1805:1805 -> a
+    4:10:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1811:1817 -> a
+    11:11:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1823:1823 -> a
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RewritableMethods -> com.android.tools.r8.t.c.b$f:
+    java.util.Map rewritable -> a
+    java.util.Map virtualRewrites -> b
+    java.util.Set emulatedDispatchMethods -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():543:543 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.AppView):554:554 -> <init>
+    2:47:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.AppView):546:591 -> <init>
+    1:1:java.util.Set getEmulatedDispatchMethods():609:609 -> a
+    2:2:void visit(java.util.function.Consumer):617:617 -> a
+    3:132:void initializeAndroidKMethodProviders(com.android.tools.r8.graph.DexItemFactory):622:751 -> a
+    133:133:com.android.tools.r8.graph.Code lambda$initializeAndroidRMethodProviders$0(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1321:1321 -> a
+    134:139:void warnMissingRetargetCoreLibraryMember(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1687:1692 -> a
+    134:139:void access$000(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):543 -> a
+    140:145:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1696:1701 -> a
+    146:146:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    146:146:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1702 -> a
+    147:147:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1704:1704 -> a
+    148:154:java.util.List findDexEncodedMethodsWithName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexClass):1733:1739 -> a
+    148:154:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1705 -> a
+    155:159:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1706:1710 -> a
+    160:160:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():295:295 -> a
+    160:160:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1713 -> a
+    161:161:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1716:1716 -> a
+    162:163:void handleEmulateDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):1744:1745 -> a
+    162:163:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1716 -> a
+    164:164:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    164:164:void handleEmulateDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):1745 -> a
+    164:164:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1716 -> a
+    165:168:void handleEmulateDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):1747:1750 -> a
+    165:168:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1716 -> a
+    169:176:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1717:1724 -> a
+    177:177:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1722:1722 -> a
+    178:179:void addProvider(com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider):1755:1756 -> a
+    180:180:com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider getProvider(com.android.tools.r8.graph.DexMethod):1760:1760 -> a
+    1:6:boolean matchesVirtualRewrite(com.android.tools.r8.graph.DexMethod):596:601 -> b
+    7:7:boolean isEmpty():613:613 -> b
+    8:346:void initializeAndroidNMethodProviders(com.android.tools.r8.graph.DexItemFactory):757:1095 -> b
+    347:347:com.android.tools.r8.graph.Code lambda$initializeAndroidRMethodProviders$1(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1343:1343 -> b
+    1:6:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators.generateMapOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):74:79 -> c
+    1:6:com.android.tools.r8.graph.Code lambda$initializeAndroidRMethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1364 -> c
+    7:40:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators.generateMapOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):77:110 -> c
+    7:40:com.android.tools.r8.graph.Code lambda$initializeAndroidRMethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1364 -> c
+    41:41:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators.generateMapOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):105:105 -> c
+    41:41:com.android.tools.r8.graph.Code lambda$initializeAndroidRMethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1364 -> c
+    42:60:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators.generateMapOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):102:120 -> c
+    42:60:com.android.tools.r8.graph.Code lambda$initializeAndroidRMethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1364 -> c
+    61:218:void initializeAndroidOMethodProviders(com.android.tools.r8.graph.DexItemFactory):1102:1259 -> c
+    1:48:void initializeAndroidRMethodProviders(com.android.tools.r8.graph.DexItemFactory):1271:1318 -> d
+    49:74:void initializeAndroidRMethodProviders(com.android.tools.r8.graph.DexItemFactory):1315:1340 -> d
+    75:99:void initializeAndroidRMethodProviders(com.android.tools.r8.graph.DexItemFactory):1337:1361 -> d
+    100:118:void initializeAndroidRMethodProviders(com.android.tools.r8.graph.DexItemFactory):1358:1376 -> d
+    1:29:void initializeJava10MethodProviders(com.android.tools.r8.graph.DexItemFactory):1445:1473 -> e
+    1:26:void initializeJava10OptionalMethodProviders(com.android.tools.r8.graph.DexItemFactory):1618:1643 -> f
+    1:61:void initializeJava11MethodProviders(com.android.tools.r8.graph.DexItemFactory):1480:1540 -> g
+    1:20:void initializeJava11OptionalMethodProviders(com.android.tools.r8.graph.DexItemFactory):1649:1668 -> h
+    1:60:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):1381:1440 -> i
+    1:65:void initializeJava9OptionalMethodProviders(com.android.tools.r8.graph.DexItemFactory):1547:1611 -> j
+    1:7:void initializeStreamMethodProviders(com.android.tools.r8.graph.DexItemFactory):1675:1681 -> k
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter$StatifyingMethodGenerator -> com.android.tools.r8.t.c.b$g:
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.graph.DexType receiverType -> e
+    1:1:void <clinit>():1938:1938 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory,java.lang.String,com.android.tools.r8.graph.DexType):1944:1945 -> <init>
+    1:8:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1950:1957 -> a
+com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory -> com.android.tools.r8.t.c.b$h:
+    com.android.tools.r8.graph.Code create(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod) -> a
+com.android.tools.r8.ir.desugar.ClassProcessor -> com.android.tools.r8.t.c.g:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.function.Consumer newSynthesizedMethodConsumer -> d
+    boolean $assertionsDisabled -> k
+    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> e
+    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter rewriter -> c
+    java.util.Map interfaceInfo -> i
+    boolean needsLibraryInfo -> f
+    java.util.Map newSyntheticMethods -> j
+    java.util.Map classInfo -> g
+    java.util.Map libraryClassInfo -> h
+    1:1:void <clinit>():47:47 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter,java.util.function.Consumer):201:201 -> <init>
+    2:32:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter,java.util.function.Consumer):182:212 -> <init>
+    1:5:void addSyntheticMethods():228:232 -> a
+    6:10:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):268:272 -> a
+    11:20:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):287:296 -> a
+    11:20:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    21:21:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    21:21:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):296 -> a
+    21:21:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    22:22:boolean needsLibraryInfo():216:216 -> a
+    22:22:boolean dontRewrite(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):346 -> a
+    22:22:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):298 -> a
+    22:22:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    23:23:boolean dontRewrite(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):346:346 -> a
+    23:23:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):298 -> a
+    23:23:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    24:31:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):303:310 -> a
+    24:31:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    32:32:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):335:335 -> a
+    32:32:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
+    32:32:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    33:33:boolean needsLibraryInfo():216:216 -> a
+    33:33:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):335 -> a
+    33:33:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
+    33:33:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    34:36:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):335:337 -> a
+    34:36:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
+    34:36:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    37:37:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():295:295 -> a
+    37:37:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):338 -> a
+    37:37:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
+    37:37:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    38:38:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):341:341 -> a
+    38:38:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
+    38:38:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    39:52:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):315:328 -> a
+    39:52:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    53:53:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    53:53:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):328 -> a
+    53:53:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    54:54:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):329:329 -> a
+    54:54:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
+    55:55:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):280:280 -> a
+    56:57:void lambda$computeClassInfo$0(com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):274:275 -> a
+    58:73:void addForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):377:392 -> a
+    58:73:void lambda$computeClassInfo$0(com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):276 -> a
+    74:74:void addSyntheticMethod(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):352:352 -> a
+    75:75:java.util.List lambda$addSyntheticMethod$1(com.android.tools.r8.graph.DexProgramClass):352:352 -> a
+    76:85:void addICCEThrowingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):356:365 -> a
+    86:86:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    86:86:void addICCEThrowingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):365 -> a
+    87:87:void addICCEThrowingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):371:371 -> a
+    88:88:com.android.tools.r8.ir.conversion.SourceCode lambda$addICCEThrowingMethod$2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):368:368 -> a
+    89:94:com.android.tools.r8.graph.DexClass definitionOrNull(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):399:404 -> a
+    95:99:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):416:420 -> a
+    100:101:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):426:427 -> a
+    100:101:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
+    102:103:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfo(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):411:412 -> a
+    102:103:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):427 -> a
+    102:103:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
+    104:105:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):428:429 -> a
+    104:105:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
+    106:222:boolean com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo.isEmpty():0:116 -> a
+    106:222:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):429 -> a
+    106:222:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
+    223:223:boolean com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures.isEmpty():85:85 -> a
+    223:223:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):429 -> a
+    223:223:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
+    224:228:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):429:433 -> a
+    224:228:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
+    229:233:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitLibraryClassInfo(com.android.tools.r8.graph.DexType):438:442 -> a
+    234:237:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitLibraryClassInfo(com.android.tools.r8.graph.DexClass):446:449 -> a
+    238:241:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitLibraryClassInfoRaw(com.android.tools.r8.graph.DexLibraryClass):453:456 -> a
+    1:1:boolean ignoreLibraryInfo():220:220 -> b
+    2:2:void processClass(com.android.tools.r8.graph.DexProgramClass):224:224 -> b
+    3:4:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfo(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):462:463 -> b
+    5:8:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):467:470 -> b
+    9:12:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):474:477 -> b
+    9:12:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures lambda$visitInterfaceInfo$4(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):470 -> b
+    13:16:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures computeInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):239:242 -> b
+    13:16:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):479 -> b
+    13:16:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures lambda$visitInterfaceInfo$4(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):470 -> b
+    17:17:boolean needsLibraryInfo():216:216 -> b
+    17:17:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures computeInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):242 -> b
+    17:17:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):479 -> b
+    17:17:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures lambda$visitInterfaceInfo$4(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):470 -> b
+    18:27:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures computeInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):242:251 -> b
+    18:27:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):479 -> b
+    18:27:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures lambda$visitInterfaceInfo$4(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):470 -> b
+com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo -> com.android.tools.r8.t.c.c:
+    com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo parent -> a
+    com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo EMPTY -> c
+    com.android.tools.r8.com.google.common.collect.ImmutableList forwardedMethodTargets -> b
+    1:1:void <clinit>():94:94 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.com.google.common.collect.ImmutableList):103:105 -> <init>
+    1:3:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo create(com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.com.google.common.collect.ImmutableList):110:112 -> a
+    4:5:boolean isTargetedByForwards(com.android.tools.r8.graph.DexEncodedMethod):120:121 -> a
+com.android.tools.r8.ir.desugar.ClassProcessor$LibraryReportingContext -> com.android.tools.r8.t.c.d:
+    com.android.tools.r8.ir.desugar.ClassProcessor$LibraryReportingContext LIBRARY_CONTEXT -> c
+    1:1:void <clinit>():156:156 -> <clinit>
+    1:1:void <init>():159:159 -> <init>
+    com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext forClass(com.android.tools.r8.graph.DexClass) -> a
+    void reportMissingType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter) -> a
+    1:1:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):169 -> a
+com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures -> com.android.tools.r8.t.c.e:
+    java.util.Set signatures -> a
+    com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures EMPTY -> b
+    1:1:void <clinit>():52:52 -> <clinit>
+    1:2:void <init>(java.util.Set):60:61 -> <init>
+    1:1:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures create(java.util.Set):55:55 -> a
+    2:2:boolean isEmpty():85:85 -> a
+    2:2:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures merge(com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):65 -> a
+    3:3:boolean isEmpty():85:85 -> a
+    3:3:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures merge(com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):68 -> a
+    4:6:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures merge(com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):71:73 -> a
+com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext -> com.android.tools.r8.t.c.f:
+    com.android.tools.r8.graph.DexClass directSubClass -> a
+    com.android.tools.r8.graph.DexProgramClass closestProgramSubClass -> b
+    1:3:void <init>(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):131:133 -> <init>
+    1:5:com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext forClass(com.android.tools.r8.graph.DexClass):137:141 -> a
+    6:6:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):145:145 -> a
+    7:7:void reportMissingType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):149:149 -> a
+com.android.tools.r8.ir.desugar.CovariantReturnTypeAnnotationTransformer -> com.android.tools.r8.t.c.h:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.ir.conversion.IRConverter converter -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():50:50 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexItemFactory):54:56 -> <init>
+    1:3:void process(com.android.tools.r8.graph.DexApplication$Builder):61:63 -> a
+    4:6:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):109:111 -> a
+    4:6:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
+    7:7:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):131:131 -> a
+    7:7:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
+    7:7:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
+    8:11:java.util.Set getCovariantReturnTypes(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):183:186 -> a
+    8:11:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):132 -> a
+    8:11:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
+    8:11:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
+    12:15:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):132:135 -> a
+    12:15:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
+    12:15:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
+    16:23:void process(com.android.tools.r8.graph.DexApplication$Builder):67:74 -> a
+    24:24:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):84:84 -> a
+    25:26:boolean hasVirtualMethodWithSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):258:259 -> a
+    25:26:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):85 -> a
+    27:27:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):86:86 -> a
+    28:28:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    28:28:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):90 -> a
+    29:29:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):90:90 -> a
+    30:30:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87:87 -> a
+    31:31:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    31:31:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87 -> a
+    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    32:32:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87 -> a
+    33:42:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87:96 -> a
+    43:47:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):95:99 -> a
+    48:49:boolean methodHasCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedMethod):118:119 -> a
+    50:70:com.android.tools.r8.graph.DexEncodedMethod buildCovariantReturnTypeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):146:166 -> a
+    71:71:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    71:71:com.android.tools.r8.graph.DexEncodedMethod buildCovariantReturnTypeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):166 -> a
+    72:72:com.android.tools.r8.graph.DexEncodedMethod buildCovariantReturnTypeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):170:170 -> a
+    73:73:boolean lambda$buildCovariantReturnTypeMethod$1(com.android.tools.r8.graph.DexAnnotation):165:165 -> a
+    74:89:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):198:213 -> a
+    90:94:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):205:209 -> a
+    95:95:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):206:206 -> a
+    96:96:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    96:96:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):206 -> a
+    97:123:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):206:232 -> a
+    124:128:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):220:224 -> a
+    129:129:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):221:221 -> a
+    130:130:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    130:130:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):221 -> a
+    131:150:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):221:240 -> a
+    151:151:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    151:151:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):244 -> a
+    152:152:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):244:244 -> a
+    153:153:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):241:241 -> a
+    154:154:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    154:154:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):241 -> a
+    155:155:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):241:241 -> a
+    156:156:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):249:249 -> a
+    157:157:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):253:253 -> a
+    157:157:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):249 -> a
+    158:158:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):253:253 -> a
+    1:1:boolean lambda$updateClass$0(com.android.tools.r8.graph.DexAnnotation):96:96 -> b
+com.android.tools.r8.ir.desugar.D8NestBasedAccessDesugaring -> com.android.tools.r8.t.c.i:
+    boolean $assertionsDisabled -> i
+    java.util.Map metNestHosts -> h
+    1:1:void <clinit>():40:40 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):47:47 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.AppView):44:44 -> <init>
+    1:1:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):52:52 -> a
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    2:2:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):52 -> a
+    3:19:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):53:69 -> a
+    20:20:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    20:20:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):69 -> a
+    21:31:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):71:81 -> a
+    32:32:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
+    32:32:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):81 -> a
+    33:37:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):80:84 -> a
+    38:45:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):83:90 -> a
+    46:46:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):195:195 -> a
+    46:46:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):90 -> a
+    47:56:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):91:100 -> a
+    57:57:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):99:99 -> a
+    58:60:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):93:95 -> a
+    61:61:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):94:94 -> a
+    62:66:void processNestsConcurrently(java.util.concurrent.ExecutorService):109:113 -> a
+    62:66:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):142 -> a
+    67:69:void addDeferredBridges():117:119 -> a
+    67:69:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):143 -> a
+    70:70:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):144:144 -> a
+    71:75:void optimizeDeferredBridgesConcurrently(java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):132:136 -> a
+    71:75:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):145 -> a
+    76:79:void addDeferredBridges(java.util.Collection):123:126 -> a
+    80:80:boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List):151:151 -> a
+    81:81:void reportIncompleteNest(java.util.List):161:161 -> a
+    1:1:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):156:156 -> d
+com.android.tools.r8.ir.desugar.DefaultMethodsHelper -> com.android.tools.r8.t.c.k:
+    java.util.Set candidates -> a
+    java.util.Set hidden -> b
+    1:5:void <init>():17:21 -> <init>
+    1:2:void merge(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):60:61 -> a
+    3:5:void hideMatches(com.android.tools.r8.graph.DexMethod):65:67 -> a
+    6:161:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):0:155 -> a
+    6:161:void hideMatches(com.android.tools.r8.graph.DexMethod):68 -> a
+    162:163:void hideMatches(com.android.tools.r8.graph.DexMethod):69:70 -> a
+    164:164:void addDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):76:76 -> a
+    165:167:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection wrapInCollection():81:83 -> a
+com.android.tools.r8.ir.desugar.DefaultMethodsHelper$1 -> com.android.tools.r8.t.c.j:
+com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection -> com.android.tools.r8.t.c.k$a:
+    java.util.List hidden -> b
+    java.util.List live -> a
+    com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection EMPTY -> c
+    1:2:void <clinit>():29:30 -> <clinit>
+    1:1:void <init>(java.util.List,java.util.List,com.android.tools.r8.ir.desugar.DefaultMethodsHelper$1):28:28 -> <init>
+    2:4:void <init>(java.util.List,java.util.List):37:39 -> <init>
+    1:1:java.util.List access$000(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):28:28 -> a
+    2:4:com.android.tools.r8.graph.DexMethod getSingleCandidate(com.android.tools.r8.graph.DexMethod):46:48 -> a
+    1:1:java.util.List access$100(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):28:28 -> b
+com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter -> com.android.tools.r8.t.c.l:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    java.util.Set trackedAPIs -> g
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer wrapperSynthesizor -> d
+    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter$Mode mode -> c
+    java.util.Set trackedCallBackAPIs -> f
+    boolean $assertionsDisabled -> h
+    java.util.Map callBackMethods -> e
+    1:1:void <clinit>():62:62 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter$Mode):82:82 -> <init>
+    2:21:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter$Mode):73:92 -> <init>
+    1:1:boolean canGenerateWrappersAndCallbacks():101:101 -> a
+    2:2:void desugar(com.android.tools.r8.ir.code.IRCode):106:106 -> a
+    3:3:boolean canGenerateWrappersAndCallbacks():101:101 -> a
+    3:3:void desugar(com.android.tools.r8.ir.code.IRCode):110 -> a
+    4:4:void desugar(com.android.tools.r8.ir.code.IRCode):111:111 -> a
+    5:11:boolean validateCallbackWasGeneratedInEnqueuer(com.android.tools.r8.graph.DexEncodedMethod):137:143 -> a
+    5:11:void desugar(com.android.tools.r8.ir.code.IRCode):111 -> a
+    12:28:void desugar(com.android.tools.r8.ir.code.IRCode):113:129 -> a
+    29:43:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):391:405 -> a
+    29:43:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    44:45:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):522:523 -> a
+    44:45:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):408 -> a
+    44:45:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    46:46:com.android.tools.r8.ir.code.Value createConversionValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):560:560 -> a
+    46:46:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):523 -> a
+    46:46:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):408 -> a
+    46:46:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    47:47:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    47:47:com.android.tools.r8.ir.code.Value createConversionValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):560 -> a
+    47:47:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):523 -> a
+    47:47:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):408 -> a
+    47:47:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    48:53:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):524:529 -> a
+    48:53:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):408 -> a
+    48:53:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    54:54:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):528:528 -> a
+    54:54:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):408 -> a
+    54:54:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    55:58:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):527:530 -> a
+    55:58:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):408 -> a
+    55:58:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    59:82:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):411:434 -> a
+    59:82:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    83:86:com.android.tools.r8.ir.code.Instruction createParameterConversion(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):513:516 -> a
+    83:86:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):436 -> a
+    83:86:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    87:87:com.android.tools.r8.ir.code.Value createConversionValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):560:560 -> a
+    87:87:com.android.tools.r8.ir.code.Instruction createParameterConversion(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):516 -> a
+    87:87:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):436 -> a
+    87:87:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    88:88:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    88:88:com.android.tools.r8.ir.code.Value createConversionValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):560 -> a
+    88:88:com.android.tools.r8.ir.code.Instruction createParameterConversion(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):516 -> a
+    88:88:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):436 -> a
+    88:88:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    89:89:com.android.tools.r8.ir.code.Instruction createParameterConversion(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):517:517 -> a
+    89:89:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):436 -> a
+    89:89:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    90:111:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):435:456 -> a
+    90:111:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    112:112:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
+    112:112:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):452 -> a
+    112:112:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    113:115:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):458:458 -> a
+    113:115:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    119:135:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):462:478 -> a
+    119:135:void desugar(com.android.tools.r8.ir.code.IRCode):130 -> a
+    136:137:void registerCallbackIfRequired(com.android.tools.r8.graph.DexEncodedMethod):160:161 -> a
+    138:138:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    138:138:void registerCallbackIfRequired(com.android.tools.r8.graph.DexEncodedMethod):161 -> a
+    139:139:void registerCallbackIfRequired(com.android.tools.r8.graph.DexEncodedMethod):162:162 -> a
+    140:144:void registerCallback(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):236:240 -> a
+    140:144:void registerCallbackIfRequired(com.android.tools.r8.graph.DexEncodedMethod):163 -> a
+    145:145:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    145:145:void registerCallback(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):240 -> a
+    145:145:void registerCallbackIfRequired(com.android.tools.r8.graph.DexEncodedMethod):163 -> a
+    146:147:void registerCallback(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):244:245 -> a
+    146:147:void registerCallbackIfRequired(com.android.tools.r8.graph.DexEncodedMethod):163 -> a
+    148:150:void addCallBackSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):251:253 -> a
+    148:150:void registerCallback(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):247 -> a
+    148:150:void registerCallbackIfRequired(com.android.tools.r8.graph.DexEncodedMethod):163 -> a
+    151:160:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):198:207 -> a
+    161:161:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    161:161:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):207 -> a
+    162:166:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):211:215 -> a
+    167:167:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    167:167:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):215 -> a
+    168:171:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):218:221 -> a
+    172:186:com.android.tools.r8.graph.DexMethod methodWithVivifiedTypeInSignature(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):258:272 -> a
+    187:192:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):280:285 -> a
+    193:193:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):309:309 -> a
+    194:200:void generateTrackDesugaredAPIWarnings(java.util.Set,java.lang.String):332:338 -> a
+    201:205:void warnInvalidInvoke(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,java.lang.String):342:346 -> a
+    206:208:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):362:364 -> a
+    209:221:void registerWrappersForLibraryInvokeIfRequired(com.android.tools.r8.graph.DexMethod):369:381 -> a
+    222:239:void splitIfCatchHandlers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,java.util.ListIterator):487:504 -> a
+    240:244:void registerConversionWrappers(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):534:538 -> a
+    245:255:com.android.tools.r8.graph.DexMethod createConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):546:556 -> a
+    256:256:com.android.tools.r8.graph.DexMethod createConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):555:555 -> a
+    257:258:boolean canConvert(com.android.tools.r8.graph.DexType):564:565 -> a
+    1:1:boolean isVivifiedType(com.android.tools.r8.graph.DexType):97:97 -> b
+    2:6:boolean shouldRewriteInvoke(com.android.tools.r8.graph.DexMethod):148:152 -> b
+    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    7:7:boolean shouldRewriteInvoke(com.android.tools.r8.graph.DexMethod):152 -> b
+    8:11:boolean shouldRewriteInvoke(com.android.tools.r8.graph.DexMethod):153:156 -> b
+    12:25:boolean shouldRegisterCallback(com.android.tools.r8.graph.DexEncodedMethod):175:188 -> b
+    26:26:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    26:26:boolean shouldRegisterCallback(com.android.tools.r8.graph.DexEncodedMethod):188 -> b
+    27:27:boolean shouldRegisterCallback(com.android.tools.r8.graph.DexEncodedMethod):192:192 -> b
+    28:35:java.util.List generateCallbackMethods():289:296 -> b
+    36:49:java.util.List generateCallbackMethods(java.util.Set,com.android.tools.r8.graph.DexClass):314:327 -> b
+    36:49:java.util.List generateCallbackMethods():296 -> b
+    50:51:java.util.List generateCallbackMethods():297:298 -> b
+    1:1:java.util.Map synthesizeWrappersAndMapToReverse():304:304 -> c
+com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter$Mode -> com.android.tools.r8.t.c.l$a:
+    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter$Mode GENERATE_CALLBACKS_AND_WRAPPERS -> a
+    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter$Mode ASSERT_CALLBACKS_AND_WRAPPERS_GENERATED -> b
+    1:2:void <clinit>():78:79 -> <clinit>
+    1:1:void <init>(java.lang.String,int):77:77 -> <init>
+com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration -> com.android.tools.r8.t.c.m:
+    java.util.Map rewritePrefix -> d
+    java.util.List extraKeepRules -> j
+    java.util.List dontRewriteInvocation -> i
+    java.lang.String synthesizedLibraryClassesPackagePrefix -> c
+    java.util.Map emulateLibraryInterface -> e
+    boolean libraryCompilation -> b
+    java.util.Map retargetCoreLibMember -> f
+    java.util.Map backportCoreLibraryMember -> g
+    com.android.tools.r8.utils.AndroidApiLevel requiredCompilationAPILevel -> a
+    java.util.Map customConversions -> h
+    1:11:void <init>(com.android.tools.r8.utils.AndroidApiLevel,boolean,java.lang.String,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.List,java.util.List):86:96 -> <init>
+    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder builder(com.android.tools.r8.graph.DexItemFactory):44:44 -> a
+    2:12:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration withOnlyRewritePrefixForTesting(java.util.Map):49:59 -> a
+    13:23:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration empty():63:73 -> a
+    24:24:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.utils.InternalOptions):100:100 -> a
+    25:25:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty() -> a
+    25:25:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.utils.InternalOptions):101 -> a
+    26:26:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.utils.InternalOptions):102:102 -> a
+    27:27:java.lang.String getSynthesizedLibraryClassesPackagePrefix(com.android.tools.r8.graph.AppView):114:114 -> a
+    28:28:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    28:28:java.lang.String getSynthesizedLibraryClassesPackagePrefix(com.android.tools.r8.graph.AppView):114 -> a
+    29:29:java.lang.String getSynthesizedLibraryClassesPackagePrefix(com.android.tools.r8.graph.AppView):115:115 -> a
+    30:36:com.android.tools.r8.graph.DexMethod retargetMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppView):133:139 -> a
+    37:37:com.android.tools.r8.graph.DexMethod retargetMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppView):137:137 -> a
+    1:1:java.util.Map getBackportCoreLibraryMember():150:150 -> b
+    1:1:java.util.Map getCustomConversions():154:154 -> c
+    1:1:java.util.List getDontRewriteInvocation():158:158 -> d
+    1:1:java.util.Map getEmulateLibraryInterface():128:128 -> e
+    1:1:java.util.List getExtraKeepRules():162:162 -> f
+    1:1:com.android.tools.r8.utils.AndroidApiLevel getRequiredCompilationApiLevel():106:106 -> g
+    1:1:java.util.Map getRetargetCoreLibMember():146:146 -> h
+    1:1:java.util.Map getRewritePrefix():124:124 -> i
+    1:1:java.lang.String getSynthesizedLibraryClassesPackagePrefix():120:120 -> j
+    1:1:boolean isLibraryCompilation():110:110 -> k
+com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder -> com.android.tools.r8.t.c.m$a:
+    boolean $assertionsDisabled -> l
+    java.util.Map customConversions -> i
+    java.util.List dontRewriteInvocation -> j
+    com.android.tools.r8.utils.AndroidApiLevel requiredCompilationAPILevel -> b
+    java.util.Map rewritePrefix -> e
+    java.util.Map emulateLibraryInterface -> f
+    boolean libraryCompilation -> c
+    java.util.Map retargetCoreLibMember -> g
+    com.android.tools.r8.graph.DexItemFactory factory -> a
+    java.lang.String synthesizedLibraryClassesPackagePrefix -> d
+    java.util.Map backportCoreLibraryMember -> h
+    java.util.List extraKeepRules -> k
+    1:1:void <clinit>():165:165 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):181:181 -> <init>
+    2:14:void <init>(com.android.tools.r8.graph.DexItemFactory):170:182 -> <init>
+    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setRequiredCompilationAPILevel(com.android.tools.r8.utils.AndroidApiLevel):192:192 -> a
+    2:2:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setExtraKeepRules(java.util.List):207:207 -> a
+    3:7:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder addDontRewriteInvocation(java.lang.String):251:255 -> a
+    8:8:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder addDontRewriteInvocation(java.lang.String):252:252 -> a
+    9:9:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> a
+    9:9:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):244 -> a
+    10:10:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> a
+    10:10:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):245 -> a
+    11:11:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):246:246 -> a
+    12:22:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration build():273:283 -> a
+    1:2:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setSynthesizedLibraryClassesPackagePrefix(java.lang.String):186:187 -> b
+    3:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setLibraryCompilation():202:202 -> b
+    4:4:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> b
+    4:4:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):225 -> b
+    5:5:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> b
+    5:5:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):226 -> b
+    6:6:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):227:227 -> b
+    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setProgramCompilation():197:197 -> c
+    2:2:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> c
+    2:2:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):218 -> c
+    3:3:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> c
+    3:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):219 -> c
+    4:4:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):220:220 -> c
+    5:5:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> c
+    1:5:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):232:236 -> d
+    6:6:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> d
+    6:6:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):237 -> d
+    7:8:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):238:239 -> d
+    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRewritePrefix(java.lang.String,java.lang.String):212:212 -> e
+    1:3:int sharpIndex(java.lang.String,java.lang.String):260:262 -> f
+    4:4:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> f
+    4:4:int sharpIndex(java.lang.String,java.lang.String):262 -> f
+    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> f
+    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> f
+    5:5:int sharpIndex(java.lang.String,java.lang.String):262 -> f
+    6:6:int sharpIndex(java.lang.String,java.lang.String):262:262 -> f
+com.android.tools.r8.ir.desugar.DesugaredLibraryConfigurationParser -> com.android.tools.r8.t.c.n:
+    int minAPILevel -> d
+    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder configurationBuilder -> a
+    com.android.tools.r8.utils.Reporter reporter -> b
+    boolean libraryCompilation -> c
+    1:9:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,boolean,int):33:41 -> <init>
+    1:26:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):48:73 -> a
+    27:39:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):72:84 -> a
+    40:52:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):83:95 -> a
+    53:57:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):109:113 -> a
+    53:57:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
+    58:66:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):112:120 -> a
+    58:66:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
+    67:75:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):119:127 -> a
+    67:75:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
+    76:90:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):126:140 -> a
+    76:90:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
+    91:98:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):139:146 -> a
+    91:98:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
+    99:107:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):97:105 -> a
+    108:108:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):58:58 -> a
+    109:111:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    109:111:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):58 -> a
+    112:112:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):50:50 -> a
+    113:115:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    113:115:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):50 -> a
+com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer -> com.android.tools.r8.t.c.o:
+    com.android.tools.r8.graph.DexString dexWrapperPrefix -> b
+    java.util.Map typeWrappers -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map vivifiedTypeWrappers -> d
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.graph.DexItemFactory factory -> f
+    java.util.Set invalidWrappers -> e
+    com.android.tools.r8.graph.DexString vivifiedSourceFile -> h
+    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter converter -> g
+    1:1:void <clinit>():96:96 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter):115:115 -> <init>
+    2:18:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter):104:120 -> <init>
+    1:1:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):134:134 -> a
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    2:2:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):134 -> a
+    3:3:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):138:138 -> a
+    4:4:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    4:4:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):138 -> a
+    5:14:com.android.tools.r8.graph.DexType createWrapperType(com.android.tools.r8.graph.DexType,java.lang.String):150:159 -> a
+    5:14:com.android.tools.r8.graph.DexType lambda$getWrapper$0(com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):169 -> a
+    15:15:com.android.tools.r8.graph.DexType createWrapperType(com.android.tools.r8.graph.DexType,java.lang.String):155:155 -> a
+    15:15:com.android.tools.r8.graph.DexType lambda$getWrapper$0(com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):169 -> a
+    16:18:com.android.tools.r8.graph.DexType lambda$getWrapper$0(com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):170:170 -> a
+    19:20:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map):165:166 -> a
+    21:38:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedField):229:246 -> a
+    39:42:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):498:501 -> a
+    39:42:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedField):249 -> a
+    43:51:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):499:507 -> a
+    43:51:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedField):249 -> a
+    52:57:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):512:517 -> a
+    52:57:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):503 -> a
+    52:57:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedField):249 -> a
+    58:58:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    58:58:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):517 -> a
+    58:58:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):503 -> a
+    58:58:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedField):249 -> a
+    59:63:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedField):249:253 -> a
+    64:64:com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier getChecksumSupplier(com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer,com.android.tools.r8.graph.DexType):258:258 -> a
+    65:69:long lambda$getChecksumSupplier$1(com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):263:267 -> a
+    70:77:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):377:384 -> a
+    78:89:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):381:392 -> a
+    90:94:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):357:361 -> a
+    90:94:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):396 -> a
+    95:95:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    95:95:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):361 -> a
+    95:95:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):396 -> a
+    96:96:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):362:362 -> a
+    96:96:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):396 -> a
+    97:97:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    97:97:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):362 -> a
+    97:97:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):396 -> a
+    98:98:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):362:362 -> a
+    98:98:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):396 -> a
+    99:99:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():295:295 -> a
+    99:99:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):363 -> a
+    99:99:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):396 -> a
+    100:108:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):364:372 -> a
+    100:108:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):396 -> a
+    109:110:com.android.tools.r8.graph.DexClasspathClass synthesizeClasspathMock(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType,boolean):396:397 -> a
+    111:111:java.lang.String lambda$reportFinalMethodsInWrapper$2(com.android.tools.r8.graph.DexMethod):412:412 -> a
+    112:112:java.lang.String[] lambda$reportFinalMethodsInWrapper$3(int):412:412 -> a
+    113:122:void reportFinalMethodsInWrapper(java.util.Set):412:421 -> a
+    123:123:void reportFinalMethodsInWrapper(java.util.Set):416:416 -> a
+    124:138:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.Code):427:441 -> a
+    139:139:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    139:139:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.Code):441 -> a
+    140:162:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):447:469 -> a
+    163:163:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    163:163:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):469 -> a
+    164:164:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):471:471 -> a
+    165:165:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    165:165:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):471 -> a
+    166:172:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):471:477 -> a
+    173:173:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    173:173:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):477 -> a
+    174:175:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):478:479 -> a
+    176:177:void finalizeWrappersForD8(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):525:526 -> a
+    178:182:void registerAndProcessWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,java.util.Collection):579:583 -> a
+    178:182:void finalizeWrappersForD8(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):526 -> a
+    183:190:java.util.Map synthesizeWrappers():530:537 -> a
+    191:191:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):200:200 -> a
+    191:191:java.util.Map synthesizeWrappers():537 -> a
+    192:192:com.android.tools.r8.graph.DexField wrappedValueField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):486:486 -> a
+    192:192:com.android.tools.r8.graph.DexEncodedField synthesizeWrappedValueEncodedField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):490 -> a
+    192:192:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):201 -> a
+    192:192:java.util.Map synthesizeWrappers():537 -> a
+    193:194:com.android.tools.r8.graph.DexEncodedField synthesizeWrappedValueEncodedField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):493:494 -> a
+    193:194:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):201 -> a
+    193:194:java.util.Map synthesizeWrappers():537 -> a
+    195:195:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):196:196 -> a
+    195:195:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):203 -> a
+    195:195:java.util.Map synthesizeWrappers():537 -> a
+    196:210:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):317:331 -> a
+    196:210:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):205 -> a
+    196:210:java.util.Map synthesizeWrappers():537 -> a
+    211:211:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    211:211:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):331 -> a
+    211:211:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):205 -> a
+    211:211:java.util.Map synthesizeWrappers():537 -> a
+    212:212:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):332:332 -> a
+    212:212:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):205 -> a
+    212:212:java.util.Map synthesizeWrappers():537 -> a
+    213:213:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    213:213:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):332 -> a
+    213:213:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):205 -> a
+    213:213:java.util.Map synthesizeWrappers():537 -> a
+    214:217:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):332:335 -> a
+    214:217:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):205 -> a
+    214:217:java.util.Map synthesizeWrappers():537 -> a
+    218:218:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():295:295 -> a
+    218:218:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):338 -> a
+    218:218:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):205 -> a
+    218:218:java.util.Map synthesizeWrappers():537 -> a
+    219:230:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):339:350 -> a
+    219:230:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):205 -> a
+    219:230:java.util.Map synthesizeWrappers():537 -> a
+    231:236:com.android.tools.r8.graph.DexEncodedMethod[] finalizeWrapperMethods(java.util.List,java.util.Set):402:407 -> a
+    231:236:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):352 -> a
+    231:236:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):205 -> a
+    231:236:java.util.Map synthesizeWrappers():537 -> a
+    237:237:com.android.tools.r8.graph.DexEncodedMethod generateTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):587:587 -> a
+    237:237:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):206 -> a
+    237:237:java.util.Map synthesizeWrappers():537 -> a
+    238:238:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):196:196 -> a
+    238:238:com.android.tools.r8.graph.DexEncodedMethod generateTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):592 -> a
+    238:238:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):206 -> a
+    238:238:java.util.Map synthesizeWrappers():537 -> a
+    239:239:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):196:196 -> a
+    239:239:com.android.tools.r8.graph.DexEncodedMethod generateTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):593 -> a
+    239:239:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):206 -> a
+    239:239:java.util.Map synthesizeWrappers():537 -> a
+    240:240:com.android.tools.r8.graph.DexField wrappedValueField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):486:486 -> a
+    240:240:com.android.tools.r8.graph.DexEncodedMethod generateTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):593 -> a
+    240:240:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):206 -> a
+    240:240:java.util.Map synthesizeWrappers():537 -> a
+    241:241:com.android.tools.r8.graph.DexEncodedMethod generateTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):588:588 -> a
+    241:241:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):206 -> a
+    241:241:java.util.Map synthesizeWrappers():537 -> a
+    242:242:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):202:202 -> a
+    242:242:java.util.Map synthesizeWrappers():537 -> a
+    243:252:java.util.Map synthesizeWrappers():536:545 -> a
+    253:253:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):212:212 -> a
+    253:253:java.util.Map synthesizeWrappers():545 -> a
+    254:254:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):196:196 -> a
+    254:254:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):214 -> a
+    254:254:java.util.Map synthesizeWrappers():545 -> a
+    255:255:com.android.tools.r8.graph.DexField wrappedValueField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):486:486 -> a
+    255:255:com.android.tools.r8.graph.DexEncodedField synthesizeWrappedValueEncodedField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):490 -> a
+    255:255:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):214 -> a
+    255:255:java.util.Map synthesizeWrappers():545 -> a
+    256:257:com.android.tools.r8.graph.DexEncodedField synthesizeWrappedValueEncodedField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):493:494 -> a
+    256:257:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):214 -> a
+    256:257:java.util.Map synthesizeWrappers():545 -> a
+    258:271:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):273:286 -> a
+    258:271:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):218 -> a
+    258:271:java.util.Map synthesizeWrappers():545 -> a
+    272:272:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    272:272:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):286 -> a
+    272:272:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):218 -> a
+    272:272:java.util.Map synthesizeWrappers():545 -> a
+    273:275:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):287:289 -> a
+    273:275:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):218 -> a
+    273:275:java.util.Map synthesizeWrappers():545 -> a
+    276:276:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():295:295 -> a
+    276:276:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):294 -> a
+    276:276:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):218 -> a
+    276:276:java.util.Map synthesizeWrappers():545 -> a
+    277:292:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):295:310 -> a
+    277:292:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):218 -> a
+    277:292:java.util.Map synthesizeWrappers():545 -> a
+    293:298:com.android.tools.r8.graph.DexEncodedMethod[] finalizeWrapperMethods(java.util.List,java.util.Set):402:407 -> a
+    293:298:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):312 -> a
+    293:298:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):218 -> a
+    293:298:java.util.Map synthesizeWrappers():545 -> a
+    299:299:com.android.tools.r8.graph.DexEncodedMethod generateVivifiedTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):598:598 -> a
+    299:299:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
+    299:299:java.util.Map synthesizeWrappers():545 -> a
+    300:300:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):196:196 -> a
+    300:300:com.android.tools.r8.graph.DexEncodedMethod generateVivifiedTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):602 -> a
+    300:300:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
+    300:300:java.util.Map synthesizeWrappers():545 -> a
+    301:301:com.android.tools.r8.graph.DexField wrappedValueField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):486:486 -> a
+    301:301:com.android.tools.r8.graph.DexEncodedMethod generateVivifiedTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):604 -> a
+    301:301:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
+    301:301:java.util.Map synthesizeWrappers():545 -> a
+    302:302:com.android.tools.r8.graph.DexEncodedMethod generateVivifiedTypeConversion(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):599:599 -> a
+    302:302:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
+    302:302:java.util.Map synthesizeWrappers():545 -> a
+    303:303:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):215:215 -> a
+    303:303:java.util.Map synthesizeWrappers():545 -> a
+    304:304:java.util.Map synthesizeWrappers():543:543 -> a
+    305:307:com.android.tools.r8.graph.DexEncodedMethod synthesizeConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):613:615 -> a
+    308:328:com.android.tools.r8.graph.DexEncodedMethod synthesizeConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):614:634 -> a
+    329:334:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):512:517 -> a
+    329:334:com.android.tools.r8.graph.DexEncodedMethod synthesizeConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):636 -> a
+    335:335:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    335:335:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):517 -> a
+    335:335:com.android.tools.r8.graph.DexEncodedMethod synthesizeConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):636 -> a
+    1:1:com.android.tools.r8.graph.DexType getTypeWrapper(com.android.tools.r8.graph.DexType):142:142 -> b
+    2:2:java.util.Map synthesizeWrappersAndMapToReverse():564:564 -> b
+    3:8:java.util.Map reverseWrapperMap():553:558 -> b
+    3:8:java.util.Map synthesizeWrappersAndMapToReverse():565 -> b
+    9:11:java.util.Map synthesizeWrappersAndMapToReverse():566:568 -> b
+    1:1:com.android.tools.r8.graph.DexClass getValidClassToWrap(com.android.tools.r8.graph.DexType):178:178 -> c
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    2:2:com.android.tools.r8.graph.DexClass getValidClassToWrap(com.android.tools.r8.graph.DexType):178 -> c
+    3:4:com.android.tools.r8.graph.DexClass getValidClassToWrap(com.android.tools.r8.graph.DexType):180:181 -> c
+    5:5:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> c
+    5:5:com.android.tools.r8.graph.DexClass getValidClassToWrap(com.android.tools.r8.graph.DexType):181 -> c
+    6:10:com.android.tools.r8.graph.DexClass getValidClassToWrap(com.android.tools.r8.graph.DexType):180:184 -> c
+    11:13:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> c
+    11:13:com.android.tools.r8.graph.DexClass getValidClassToWrap(com.android.tools.r8.graph.DexType):186 -> c
+    1:1:com.android.tools.r8.graph.DexType getVivifiedTypeWrapper(com.android.tools.r8.graph.DexType):146:146 -> d
+    1:1:boolean hasSynthesized(com.android.tools.r8.graph.DexType):130:130 -> e
+    1:1:boolean isSynthesizedWrapper(com.android.tools.r8.graph.DexType):126:126 -> f
+com.android.tools.r8.ir.desugar.InterfaceMethodRewriter -> com.android.tools.r8.t.c.p:
+    java.util.Set synthesizedMethods -> g
+    com.android.tools.r8.graph.DexItemFactory factory -> d
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.concurrent.ConcurrentMap requiredDispatchClasses -> i
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.utils.InternalOptions options -> c
+    java.util.Set emulatedMethods -> f
+    java.util.Map emulatedInterfaces -> e
+    com.android.tools.r8.ir.conversion.IRConverter converter -> b
+    java.util.Map cache -> h
+    1:1:void <clinit>():92:92 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):134:134 -> <init>
+    2:39:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):105:142 -> <init>
+    1:6:void initializeEmulatedInterfaceVariables():146:151 -> a
+    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    7:7:void initializeEmulatedInterfaceVariables():151 -> a
+    8:9:void initializeEmulatedInterfaceVariables():154:155 -> a
+    10:10:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):162:162 -> a
+    11:11:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
+    11:11:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):163 -> a
+    12:14:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):163:165 -> a
+    15:15:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):164:164 -> a
+    16:23:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):162:169 -> a
+    24:24:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):168:168 -> a
+    25:25:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):166:166 -> a
+    26:65:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):180:219 -> a
+    66:66:boolean isNonDesugaredLibraryClass(com.android.tools.r8.graph.DexClass):436:436 -> a
+    66:66:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):220 -> a
+    67:71:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):231:235 -> a
+    72:72:com.android.tools.r8.graph.DexMethod staticAsMethodOfDispatchClass(com.android.tools.r8.graph.DexMethod):740:740 -> a
+    72:72:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):236 -> a
+    73:73:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):237:237 -> a
+    74:82:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):235:243 -> a
+    83:83:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735:735 -> a
+    83:83:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):244 -> a
+    84:84:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
+    84:84:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735 -> a
+    84:84:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):244 -> a
+    85:85:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735:735 -> a
+    85:85:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):244 -> a
+    86:86:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):245:245 -> a
+    87:116:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):243:272 -> a
+    117:118:com.android.tools.r8.graph.DexMethod amendDefaultMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):767:768 -> a
+    117:118:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):271 -> a
+    119:119:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273:273 -> a
+    120:120:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779:779 -> a
+    120:120:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):274 -> a
+    121:121:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):775:775 -> a
+    121:121:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779 -> a
+    121:121:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):274 -> a
+    122:122:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275:275 -> a
+    123:138:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273:288 -> a
+    139:139:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    139:139:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):288 -> a
+    140:151:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):289:300 -> a
+    152:152:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
+    152:152:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):302 -> a
+    153:154:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):302:303 -> a
+    155:162:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):301:308 -> a
+    163:169:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):306:312 -> a
+    170:212:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):310:352 -> a
+    213:213:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779:779 -> a
+    213:213:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):353 -> a
+    214:214:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):775:775 -> a
+    214:214:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779 -> a
+    214:214:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):353 -> a
+    215:215:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):354:354 -> a
+    216:225:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):352:361 -> a
+    226:226:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):789:789 -> a
+    226:226:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):362 -> a
+    227:227:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):785:785 -> a
+    227:227:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):789 -> a
+    227:227:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):362 -> a
+    228:228:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):363:363 -> a
+    229:229:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):361:361 -> a
+    230:232:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):335:337 -> a
+    233:233:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    233:233:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    233:233:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):337 -> a
+    234:268:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):337:371 -> a
+    269:269:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):424:424 -> a
+    269:269:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    270:270:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    270:270:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):424 -> a
+    270:270:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    271:273:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):424:426 -> a
+    271:273:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    274:274:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():291:291 -> a
+    274:274:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):426 -> a
+    274:274:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    275:276:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):426:427 -> a
+    275:276:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    277:279:com.android.tools.r8.graph.DexMethod emulateInterfaceLibraryMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):541:543 -> a
+    277:279:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):429 -> a
+    277:279:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    280:280:com.android.tools.r8.graph.DexMethod emulateInterfaceLibraryMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):540:540 -> a
+    280:280:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):429 -> a
+    280:280:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    281:282:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):430:431 -> a
+    281:282:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    283:283:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):427:427 -> a
+    283:283:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
+    284:284:java.util.Set lambda$rewriteMethodReferences$0(com.android.tools.r8.graph.DexLibraryClass):239:239 -> a
+    285:285:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):440:440 -> a
+    286:286:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    286:286:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):440 -> a
+    287:291:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):440:444 -> a
+    292:297:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):499:504 -> a
+    298:298:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    298:298:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):504 -> a
+    299:308:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):506:515 -> a
+    309:309:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    309:309:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):515 -> a
+    310:310:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):517:517 -> a
+    311:316:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):548:553 -> a
+    317:323:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):552:558 -> a
+    324:324:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
+    324:324:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):560 -> a
+    325:325:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):560:560 -> a
+    326:344:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):559:577 -> a
+    345:345:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    345:345:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):577 -> a
+    346:346:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):578:578 -> a
+    347:353:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):524:530 -> a
+    347:353:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):578 -> a
+    354:354:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    354:354:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):530 -> a
+    354:354:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):578 -> a
+    355:355:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):532:532 -> a
+    355:355:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):578 -> a
+    356:361:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):579:584 -> a
+    362:362:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):582:582 -> a
+    363:377:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):579:593 -> a
+    378:378:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    378:378:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):593 -> a
+    379:381:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):594:596 -> a
+    382:382:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():291:291 -> a
+    382:382:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):597 -> a
+    383:383:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):598:598 -> a
+    384:384:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
+    384:384:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):602 -> a
+    385:386:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):602:603 -> a
+    387:387:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):601:601 -> a
+    388:399:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):598:609 -> a
+    400:402:com.android.tools.r8.graph.DexMethod emulateInterfaceLibraryMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):541:543 -> a
+    400:402:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):612 -> a
+    403:403:com.android.tools.r8.graph.DexMethod emulateInterfaceLibraryMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):540:540 -> a
+    403:403:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):612 -> a
+    404:404:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):612:612 -> a
+    405:405:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):610:610 -> a
+    406:449:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):609:652 -> a
+    450:451:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):669:670 -> a
+    452:452:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    452:452:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):670 -> a
+    453:457:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):674:678 -> a
+    458:458:java.lang.String getCompanionClassDescriptor(java.lang.String):685:685 -> a
+    459:462:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):690:693 -> a
+    463:467:com.android.tools.r8.graph.DexType getDispatchClassType(com.android.tools.r8.graph.DexType):702:706 -> a
+    468:477:com.android.tools.r8.graph.DexMethod instanceAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,java.lang.String,com.android.tools.r8.graph.DexItemFactory):751:760 -> a
+    478:478:com.android.tools.r8.graph.DexMethod instanceAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,java.lang.String,com.android.tools.r8.graph.DexItemFactory):757:757 -> a
+    479:479:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):775:775 -> a
+    480:480:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779:779 -> a
+    481:481:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):775:775 -> a
+    481:481:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779 -> a
+    482:484:com.android.tools.r8.graph.DexEncodedMethod[] renameHolder(java.util.List,com.android.tools.r8.graph.DexType):840:842 -> a
+    485:485:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):919:919 -> a
+    486:486:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    486:486:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):919 -> a
+    487:490:java.util.Map processEmulatedInterfaceHierarchy() -> a
+    487:490:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):468 -> a
+    487:490:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
+    491:492:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):469:470 -> a
+    491:492:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
+    493:493:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    493:493:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):470 -> a
+    493:493:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
+    494:498:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):472:476 -> a
+    494:498:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
+    499:499:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):475:475 -> a
+    499:499:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
+    500:500:boolean isInMainDexList(com.android.tools.r8.graph.DexType):729:729 -> a
+    500:500:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):478 -> a
+    500:500:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
+    501:502:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):478:479 -> a
+    501:502:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
+    503:513:void duplicateEmulatedInterfaces():850:860 -> a
+    503:513:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    514:514:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    514:514:void duplicateEmulatedInterfaces():860 -> a
+    514:514:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    515:516:void duplicateEmulatedInterfaces():861:862 -> a
+    515:516:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    517:517:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    517:517:void duplicateEmulatedInterfaces():862 -> a
+    517:517:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    518:518:void duplicateEmulatedInterfaces():863:863 -> a
+    518:518:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    519:527:java.util.List emulatedInterfacesOf(com.android.tools.r8.graph.DexClass):885:893 -> a
+    519:527:void duplicateEmulatedInterfaces():864 -> a
+    519:527:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    528:528:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    528:528:java.util.List emulatedInterfacesOf(com.android.tools.r8.graph.DexClass):893 -> a
+    528:528:void duplicateEmulatedInterfaces():864 -> a
+    528:528:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    529:536:java.util.List emulatedInterfacesOf(com.android.tools.r8.graph.DexClass):895:902 -> a
+    529:536:void duplicateEmulatedInterfaces():864 -> a
+    529:536:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    537:547:void duplicateEmulatedInterfaces():865:875 -> a
+    537:547:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    548:553:void duplicateEmulatedInterfaces():874:879 -> a
+    548:553:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
+    554:554:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):926:926 -> a
+    555:557:void processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.function.Consumer):982:984 -> a
+    555:557:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):926 -> a
+    558:559:boolean shouldProcess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,boolean):959:960 -> a
+    558:559:void processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.function.Consumer):985 -> a
+    558:559:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):926 -> a
+    560:564:void processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.function.Consumer):986:990 -> a
+    560:564:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):926 -> a
+    565:565:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):932:932 -> a
+    566:568:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):964:966 -> a
+    566:568:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):933 -> a
+    569:570:boolean shouldProcess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,boolean):959:960 -> a
+    569:570:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):967 -> a
+    569:570:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):933 -> a
+    571:580:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):968:977 -> a
+    571:580:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):933 -> a
+    581:585:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):933:937 -> a
+    586:586:boolean isInMainDexList(com.android.tools.r8.graph.DexType):729:729 -> a
+    586:586:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):937 -> a
+    587:591:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):937:941 -> a
+    592:592:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    592:592:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):941 -> a
+    593:594:void renameEmulatedInterfaces():795:796 -> a
+    593:594:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
+    595:603:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):808:816 -> a
+    595:603:void renameEmulatedInterfaces():797 -> a
+    595:603:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
+    604:607:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):827:830 -> a
+    604:607:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):816 -> a
+    604:607:void renameEmulatedInterfaces():797 -> a
+    604:607:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
+    608:608:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):818:818 -> a
+    608:608:void renameEmulatedInterfaces():797 -> a
+    608:608:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
+    609:609:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    609:609:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):818 -> a
+    609:609:void renameEmulatedInterfaces():797 -> a
+    609:609:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
+    610:610:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):820:820 -> a
+    610:610:void renameEmulatedInterfaces():797 -> a
+    610:610:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
+    611:613:void renameEmulatedInterfaces():798:800 -> a
+    611:613:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
+    614:616:void renameEmulatedInterfaces(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):834:836 -> a
+    614:616:void renameEmulatedInterfaces():801 -> a
+    614:616:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
+    617:617:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):945:945 -> a
+    618:620:void clear():952:954 -> a
+    618:620:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):948 -> a
+    621:635:boolean isDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):994:1008 -> a
+    636:636:boolean isDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):1001:1001 -> a
+    637:648:boolean isEmulatedInterfaceDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):1016:1027 -> a
+    649:649:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    649:649:boolean isEmulatedInterfaceDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):1028 -> a
+    650:659:boolean isEmulatedInterfaceDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):1029:1038 -> a
+    660:666:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1065:1071 -> a
+    667:667:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1087:1087 -> a
+    668:669:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1100:1101 -> a
+    668:669:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    670:670:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    670:670:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1101 -> a
+    670:670:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    671:674:void warnMissingInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1056:1059 -> a
+    671:674:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1103 -> a
+    671:674:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    675:677:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1104:1106 -> a
+    675:677:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    678:678:boolean isNonDesugaredLibraryClass(com.android.tools.r8.graph.DexClass):436:436 -> a
+    678:678:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1112 -> a
+    678:678:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    679:705:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1117:1143 -> a
+    679:705:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    706:706:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1092:1092 -> a
+    707:709:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1107:1109 -> a
+    707:709:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    710:710:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    710:710:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1109 -> a
+    710:710:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    711:711:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1109:1109 -> a
+    711:711:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091 -> a
+    712:713:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1148:1149 -> a
+    714:714:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    714:714:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1151 -> a
+    715:719:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1152:1156 -> a
+    720:720:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    720:720:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1157 -> a
+    721:721:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1159:1159 -> a
+    1:2:boolean dontRewrite(com.android.tools.r8.graph.DexMethod):449:450 -> b
+    3:4:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):662:663 -> b
+    5:5:java.lang.String getEmulateLibraryInterfaceClassDescriptor(java.lang.String):656:656 -> b
+    5:5:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):664 -> b
+    6:6:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):665:665 -> b
+    7:7:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):711:711 -> b
+    8:11:void warnMissingInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1056:1059 -> b
+    1:1:boolean isEmulatedInterface(com.android.tools.r8.graph.DexType):174:174 -> c
+    2:2:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):721:721 -> c
+    3:3:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):711:711 -> c
+    3:3:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):721 -> c
+    4:7:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):721:724 -> c
+    8:10:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):723:725 -> c
+    11:12:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1075:1076 -> c
+    13:13:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType):716:716 -> c
+    13:13:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1077 -> c
+    14:14:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1079:1079 -> c
+    15:15:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    15:15:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1079 -> c
+    16:16:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1080:1080 -> c
+    17:17:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> c
+    17:17:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1080 -> c
+    1:4:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):383:386 -> d
+    5:5:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> d
+    5:5:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):386 -> d
+    6:6:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):394:394 -> d
+    7:7:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> d
+    7:7:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):394 -> d
+    8:20:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):394:406 -> d
+    21:21:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():291:291 -> d
+    21:21:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):413 -> d
+    22:22:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):413:413 -> d
+    23:23:boolean isEmulatedInterface(com.android.tools.r8.graph.DexType):174:174 -> d
+    23:23:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):413 -> d
+    24:24:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):414:414 -> d
+    25:25:boolean shouldIgnoreFromReports(com.android.tools.r8.graph.DexType):1045:1045 -> d
+    26:26:boolean com.android.tools.r8.ir.desugar.PrefixRewritingMapper.hasRewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):33:33 -> d
+    26:26:boolean shouldIgnoreFromReports(com.android.tools.r8.graph.DexType):1045 -> d
+    27:28:boolean shouldIgnoreFromReports(com.android.tools.r8.graph.DexType):1046:1047 -> d
+    29:29:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):711:711 -> d
+    29:29:boolean shouldIgnoreFromReports(com.android.tools.r8.graph.DexType):1048 -> d
+    30:32:boolean shouldIgnoreFromReports(com.android.tools.r8.graph.DexType):1048:1050 -> d
+    1:6:void warnMissingEmulatedInterface(com.android.tools.r8.graph.DexType):458:463 -> e
+    7:7:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):789:789 -> e
+    8:8:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):785:785 -> e
+    8:8:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):789 -> e
+    1:1:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735:735 -> f
+    2:2:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> f
+    2:2:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735 -> f
+    3:3:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735:735 -> f
+com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor -> com.android.tools.r8.t.c.p$a:
+    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor ExcludeDexResources -> b
+    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor IncludeAllResources -> a
+    1:5:void <clinit>():127:131 -> <clinit>
+    1:1:void <init>(java.lang.String,int):123:123 -> <init>
+com.android.tools.r8.ir.desugar.InterfaceProcessor -> com.android.tools.r8.t.c.r:
+    java.util.Map syntheticClasses -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter rewriter -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():55:55 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):64:64 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):61:66 -> <init>
+    long lambda$getChecksumSupplier$0(long,com.android.tools.r8.graph.DexProgramClass) -> a
+    1:8:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):70:77 -> a
+    9:20:boolean canMoveToCompanionClass(com.android.tools.r8.graph.DexEncodedMethod):312:323 -> a
+    9:20:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):78 -> a
+    21:33:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):84:96 -> a
+    34:40:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):95:101 -> a
+    41:41:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    41:41:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):101 -> a
+    42:45:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):105:108 -> a
+    46:47:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):88:89 -> a
+    48:48:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    48:48:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    48:48:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):89 -> a
+    49:49:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):89:89 -> a
+    50:51:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):79:80 -> a
+    52:52:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    52:52:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    52:52:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):80 -> a
+    53:53:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):80:80 -> a
+    54:65:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):342:353 -> a
+    54:65:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):112 -> a
+    66:68:com.android.tools.r8.graph.DexClass definitionForDependency(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):332:334 -> a
+    66:68:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):353 -> a
+    66:68:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):112 -> a
+    69:69:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    69:69:com.android.tools.r8.graph.DexClass definitionForDependency(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):334 -> a
+    69:69:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):353 -> a
+    69:69:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):112 -> a
+    70:76:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):354:360 -> a
+    70:76:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):112 -> a
+    77:96:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):113:132 -> a
+    97:100:boolean isStaticMethod(com.android.tools.r8.graph.DexEncodedMethod):376:379 -> a
+    97:100:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):133 -> a
+    101:111:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):134:144 -> a
+    112:112:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    112:112:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):144 -> a
+    113:131:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):146:164 -> a
+    132:138:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):163:169 -> a
+    139:139:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    139:139:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):169 -> a
+    140:142:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):173:175 -> a
+    143:144:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):160:161 -> a
+    145:145:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    145:145:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    145:145:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):161 -> a
+    146:165:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):161:180 -> a
+    166:166:boolean isStaticMethod(com.android.tools.r8.graph.DexEncodedMethod):377:377 -> a
+    166:166:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):133 -> a
+    167:185:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):184:202 -> a
+    186:186:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
+    186:186:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):202 -> a
+    187:208:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):203:224 -> a
+    209:213:com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier getChecksumSupplier(com.android.tools.r8.graph.DexProgramClass):228:232 -> a
+    214:238:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):236:260 -> a
+    239:239:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.staticAsMethodOfDispatchClass(com.android.tools.r8.graph.DexMethod):740:740 -> a
+    239:239:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):260 -> a
+    240:251:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):262:273 -> a
+    252:252:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    252:252:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):273 -> a
+    253:254:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):276:277 -> a
+    255:309:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):253:307 -> a
+    310:314:void addSuperTypes(com.android.tools.r8.graph.DexClass,java.util.Deque):367:371 -> a
+com.android.tools.r8.ir.desugar.InterfaceProcessor$InterfaceProcessorNestedGraphLense -> com.android.tools.r8.t.c.r$a:
+    1:1:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):394:394 -> <init>
+    1:1:com.android.tools.r8.graph.GraphLense$Builder builder():410:410 -> b
+    1:1:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):406:406 -> mapInvocationType
+com.android.tools.r8.ir.desugar.InterfaceProcessor$InterfaceProcessorNestedGraphLense$Builder -> com.android.tools.r8.t.c.q:
+    1:1:void <init>():413:413 -> <init>
+    1:4:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense):416:419 -> a
+com.android.tools.r8.ir.desugar.LambdaAccessorMethodWithSynthesizedCode -> com.android.tools.r8.t.c.s:
+    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):15:15 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):20:20 -> a
+    1:15:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):26:40 -> b
+    16:16:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):37:37 -> b
+    17:17:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):33:33 -> b
+    18:18:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):30:30 -> b
+    1:1:java.util.function.Consumer getRegistryCallback():25:25 -> getRegistryCallback
+    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():20:20 -> getSourceCodeProvider
+com.android.tools.r8.ir.desugar.LambdaBridgeMethodSourceCode -> com.android.tools.r8.t.c.t:
+    com.android.tools.r8.graph.DexMethod mainMethod -> o
+    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):23:24 -> <init>
+    1:1:void lambda$prepareInstructions$0(java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
+    1:1:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):65:65 -> b
+    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):69:69 -> c
+    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):71:71 -> d
+    1:1:void prepareInstructions():29:29 -> h
+    2:2:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> h
+    2:2:void prepareInstructions():30 -> h
+    3:18:void prepareInstructions():30:45 -> h
+    19:46:void prepareInstructions():44:71 -> h
+com.android.tools.r8.ir.desugar.LambdaBridgeMethodSynthesizedCode -> com.android.tools.r8.t.c.u:
+    com.android.tools.r8.graph.DexMethod bridgeMethod -> f
+    com.android.tools.r8.graph.DexMethod mainMethod -> e
+    1:3:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):19:21 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):27:27 -> a
+    1:4:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):33:36 -> b
+    5:5:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.ir.desugar.LambdaSynthesizedCode.dexItemFactory():24:24 -> b
+    5:5:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):38 -> b
+    6:7:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):38:39 -> b
+    1:1:java.util.function.Consumer getRegistryCallback():32:32 -> getRegistryCallback
+    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():26:26 -> getSourceCodeProvider
+com.android.tools.r8.ir.desugar.LambdaClass -> com.android.tools.r8.t.c.A:
+    java.util.concurrent.atomic.AtomicBoolean addToMainDexList -> h
+    com.android.tools.r8.graph.DexField lambdaField -> f
+    com.android.tools.r8.ir.desugar.LambdaClass$Target target -> g
+    boolean $assertionsDisabled -> k
+    java.util.function.Supplier lazyDexClass -> j
+    com.android.tools.r8.ir.desugar.LambdaRewriter rewriter -> a
+    com.android.tools.r8.graph.DexType type -> b
+    com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor -> c
+    com.android.tools.r8.graph.DexMethod classConstructor -> e
+    com.android.tools.r8.graph.DexMethod constructor -> d
+    java.util.Collection synthesizedFrom -> i
+    1:1:void <clinit>():62:62 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):80:80 -> <init>
+    2:37:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):71:106 -> <init>
+    1:1:com.android.tools.r8.graph.DexType createLambdaClassType(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):112:112 -> a
+    2:22:com.android.tools.r8.graph.DexType createLambdaClassType(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):117:137 -> a
+    2:22:com.android.tools.r8.graph.DexType createLambdaClassType(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):112 -> a
+    23:28:com.android.tools.r8.graph.DexField getCaptureField(int):200:205 -> a
+    29:29:com.android.tools.r8.graph.DexField getCaptureField(int):202:202 -> a
+    30:37:void addSynthesizedFrom(com.android.tools.r8.graph.DexProgramClass):213:220 -> a
+    38:38:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):341:341 -> a
+    39:61:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):364:386 -> a
+    39:61:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):342 -> a
+    62:62:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    62:62:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):386 -> a
+    62:62:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):342 -> a
+    63:86:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):386:409 -> a
+    63:86:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):342 -> a
+    87:87:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):408:408 -> a
+    87:87:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):342 -> a
+    88:88:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):403:403 -> a
+    88:88:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):342 -> a
+    89:102:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):346:359 -> a
+    103:105:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):416:416 -> a
+    103:105:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):357 -> a
+    108:131:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):419:442 -> a
+    108:131:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):357 -> a
+    132:147:com.android.tools.r8.ir.desugar.LambdaClass$Target createStaticMethodTarget(com.android.tools.r8.graph.DexType):448:463 -> a
+    132:147:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):354 -> a
+    148:152:com.android.tools.r8.ir.desugar.LambdaClass$Target createStaticMethodTarget(com.android.tools.r8.graph.DexType):460:464 -> a
+    148:152:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):354 -> a
+    153:173:com.android.tools.r8.ir.desugar.LambdaClass$Target createConstructorTarget(com.android.tools.r8.graph.DexType):470:490 -> a
+    153:173:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):352 -> a
+    174:176:com.android.tools.r8.ir.desugar.LambdaClass$Target createInterfaceMethodTarget(com.android.tools.r8.graph.DexType):495:497 -> a
+    174:176:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):350 -> a
+    177:177:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):348:348 -> a
+    178:180:com.android.tools.r8.graph.DexString generateUniqueLambdaMethodName():501:503 -> a
+    1:1:com.android.tools.r8.graph.DexProgramClass getOrCreateLambdaClass():141:141 -> b
+    2:10:long computeChecksumForSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):188:196 -> b
+    1:1:boolean isStateless():209:209 -> c
+    2:2:boolean com.android.tools.r8.ir.desugar.LambdaDescriptor.isStateless():180:180 -> c
+    2:2:boolean isStateless():209 -> c
+    1:13:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():145:157 -> d
+    14:17:com.android.tools.r8.graph.DexTypeList buildInterfaces():332:335 -> d
+    14:17:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():158 -> d
+    18:24:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():158:164 -> d
+    25:40:com.android.tools.r8.graph.DexEncodedField[] synthesizeStaticFields():310:325 -> d
+    25:40:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():165 -> d
+    41:49:com.android.tools.r8.graph.DexEncodedField[] synthesizeInstanceFields():295:303 -> d
+    41:49:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():166 -> d
+    50:62:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():262:274 -> d
+    50:62:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
+    63:63:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> d
+    63:63:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():274 -> d
+    63:63:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
+    64:76:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():274:286 -> d
+    64:76:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
+    77:77:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> d
+    77:77:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():286 -> d
+    77:77:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
+    78:78:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():286:286 -> d
+    78:78:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
+    79:89:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):225:235 -> d
+    79:89:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():168 -> d
+    90:90:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> d
+    90:90:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):235 -> d
+    90:90:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():168 -> d
+    91:109:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):235:253 -> d
+    91:109:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():168 -> d
+    110:110:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> d
+    110:110:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):253 -> d
+    110:110:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():168 -> d
+    111:111:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):253:253 -> d
+    111:111:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():168 -> d
+    112:121:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():168:177 -> d
+com.android.tools.r8.ir.desugar.LambdaClass$ClassMethodWithAccessorTarget -> com.android.tools.r8.t.c.v:
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> g
+    1:1:void <clinit>():737:737 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):739:740 -> <init>
+    1:1:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):746:746 -> a
+    2:2:com.android.tools.r8.graph.DexProgramClass com.android.tools.r8.ir.desugar.LambdaClass$Target.programDefinitionFor(com.android.tools.r8.graph.DexType):541:541 -> a
+    2:2:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):746 -> a
+    3:16:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):747:760 -> a
+    17:17:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    17:17:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):760 -> a
+    18:20:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):765:767 -> a
+com.android.tools.r8.ir.desugar.LambdaClass$InstanceLambdaImplTarget -> com.android.tools.r8.t.c.w:
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> g
+    1:1:void <clinit>():655:655 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):657:658 -> <init>
+    1:5:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):664:668 -> a
+    6:8:com.android.tools.r8.graph.DexEncodedMethod modifyLambdaImplementationMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):676:678 -> a
+    6:8:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):670 -> a
+    9:9:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):155:155 -> a
+    9:9:com.android.tools.r8.graph.DexEncodedMethod modifyLambdaImplementationMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):679 -> a
+    9:9:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):670 -> a
+    10:19:com.android.tools.r8.graph.DexEncodedMethod modifyLambdaImplementationMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):682:691 -> a
+    10:19:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):670 -> a
+    20:20:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    20:20:com.android.tools.r8.graph.DexEncodedMethod modifyLambdaImplementationMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):691 -> a
+    20:20:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):670 -> a
+    21:25:com.android.tools.r8.graph.DexEncodedMethod modifyLambdaImplementationMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):693:697 -> a
+    21:25:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):670 -> a
+    26:26:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):671:671 -> a
+    27:43:com.android.tools.r8.graph.DexEncodedMethod createSyntheticAccessor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):708:724 -> a
+    44:44:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    44:44:com.android.tools.r8.graph.DexEncodedMethod createSyntheticAccessor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):724 -> a
+    45:45:com.android.tools.r8.graph.DexEncodedMethod createSyntheticAccessor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):730:730 -> a
+    46:46:void lambda$createSyntheticAccessor$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.UseRegistry):727:727 -> a
+com.android.tools.r8.ir.desugar.LambdaClass$InterfaceLambdaImplTarget -> com.android.tools.r8.t.c.x:
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> g
+    1:1:void <clinit>():605:605 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):607:608 -> <init>
+    1:6:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):615:620 -> a
+    7:7:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):155:155 -> a
+    7:7:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):621 -> a
+    8:20:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):624:636 -> a
+    21:21:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    21:21:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):636 -> a
+    22:26:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):638:642 -> a
+    27:35:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):641:649 -> a
+com.android.tools.r8.ir.desugar.LambdaClass$NoAccessorMethodTarget -> com.android.tools.r8.t.c.y:
+    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Invoke$Type):573:573 -> <init>
+    com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean) -> a
+com.android.tools.r8.ir.desugar.LambdaClass$StaticLambdaImplTarget -> com.android.tools.r8.t.c.z:
+    com.android.tools.r8.graph.ProgramMethod target -> g
+    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.ProgramMethod):588:589 -> <init>
+    1:3:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean):595:597 -> a
+com.android.tools.r8.ir.desugar.LambdaClass$Target -> com.android.tools.r8.t.c.A$a:
+    com.android.tools.r8.ir.code.Invoke$Type invokeType -> b
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.graph.DexEncodedMethod accessibilityBridge -> d
+    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
+    com.android.tools.r8.graph.DexMethod callTarget -> a
+    boolean hasEnsuredAccessibility -> c
+    1:1:void <clinit>():509:509 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):517:521 -> <init>
+    com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility(boolean) -> a
+    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):537:537 -> a
+    1:5:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibilityIfNeeded(boolean):529:533 -> b
+com.android.tools.r8.ir.desugar.LambdaClassConstructorSourceCode -> com.android.tools.r8.t.c.B:
+    boolean $assertionsDisabled -> o
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):18:19 -> <init>
+    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):26:26 -> b
+    1:7:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):29:29 -> c
+    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):38:38 -> d
+    1:17:void prepareInstructions():25:41 -> h
+com.android.tools.r8.ir.desugar.LambdaClassConstructorSynthesizedCode -> com.android.tools.r8.t.c.C:
+    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):13:13 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):18:18 -> a
+    1:3:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):24:26 -> b
+    1:1:java.util.function.Consumer getRegistryCallback():23:23 -> getRegistryCallback
+    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():18:18 -> getSourceCodeProvider
+com.android.tools.r8.ir.desugar.LambdaConstructorSourceCode -> com.android.tools.r8.t.c.D:
+    boolean $assertionsDisabled -> o
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):19:19 -> <init>
+    1:6:void lambda$prepareInstructions$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):28:33 -> a
+    7:7:void lambda$prepareInstructions$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):29:29 -> a
+    8:8:void lambda$prepareInstructions$1(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
+    1:8:boolean equals(java.lang.Object):64:71 -> equals
+    1:25:void prepareInstructions():25:49 -> h
+    1:3:int hashCode():57:59 -> hashCode
+com.android.tools.r8.ir.desugar.LambdaConstructorSynthesizedCode -> com.android.tools.r8.t.c.E:
+    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):14:14 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):19:19 -> a
+    1:1:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.ir.desugar.LambdaSynthesizedCode.dexItemFactory():24:24 -> b
+    1:1:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):25 -> b
+    2:5:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):25:28 -> b
+    1:1:java.util.function.Consumer getRegistryCallback():24:24 -> getRegistryCallback
+    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():19:19 -> getSourceCodeProvider
+com.android.tools.r8.ir.desugar.LambdaDescriptor -> com.android.tools.r8.t.c.F:
+    java.util.Set bridges -> g
+    com.android.tools.r8.ir.desugar.LambdaDescriptor MATCH_FAILED -> k
+    com.android.tools.r8.graph.DexString name -> b
+    com.android.tools.r8.graph.DexType targetHolder -> j
+    com.android.tools.r8.graph.DexProto erasedProto -> c
+    java.util.List interfaces -> f
+    com.android.tools.r8.graph.DexProto enforcedProto -> d
+    boolean $assertionsDisabled -> l
+    com.android.tools.r8.graph.DexMethodHandle implHandle -> e
+    java.lang.String uniqueId -> a
+    com.android.tools.r8.graph.DexTypeList captures -> h
+    com.android.tools.r8.graph.MethodAccessFlags targetAccessFlags -> i
+    1:8:void <clinit>():28:35 -> <clinit>
+    1:1:void <init>():51:51 -> <init>
+    2:18:void <init>():43:59 -> <init>
+    19:19:void <init>(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):71:71 -> <init>
+    20:73:void <init>(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):43:96 -> <init>
+    1:39:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):111:149 -> a
+    40:41:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):143:144 -> a
+    42:43:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):136:137 -> a
+    44:50:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):118:124 -> a
+    51:51:boolean isPrivateInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):160:160 -> a
+    51:51:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):124 -> a
+    52:53:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):124:125 -> a
+    54:54:boolean isPublicizedInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):165:165 -> a
+    54:54:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):125 -> a
+    55:64:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):122:131 -> a
+    65:66:boolean isInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):154:155 -> a
+    67:68:boolean delegatesToLambdaImplMethod():174:175 -> a
+    69:85:boolean needsAccessor(com.android.tools.r8.graph.DexType):185:201 -> a
+    86:103:boolean needsAccessor(com.android.tools.r8.graph.DexType):198:215 -> a
+    104:127:boolean needsAccessor(com.android.tools.r8.graph.DexType):214:237 -> a
+    128:129:com.android.tools.r8.ir.desugar.LambdaDescriptor tryInfer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexProgramClass):246:247 -> a
+    130:159:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):258:287 -> a
+    160:170:boolean isEnforcedSignatureValid(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto):400:410 -> a
+    160:170:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):287 -> a
+    171:196:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):295:320 -> a
+    197:227:void extractAltMetafactory(com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.function.Consumer,java.util.function.Consumer):341:371 -> a
+    197:227:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):320 -> a
+    228:229:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):289:290 -> a
+    230:231:void lambda$infer$0(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):324:325 -> a
+    232:236:java.util.List getInterfaces(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy):378:382 -> a
+    237:243:java.lang.Object getBootstrapArgument(java.util.List,int,java.lang.Class):387:393 -> a
+    244:244:java.lang.Object getBootstrapArgument(java.util.List,int,java.lang.Class):388:388 -> a
+    245:253:boolean isSameOrDerived(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):422:430 -> a
+    254:257:boolean isSameOrDerived(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):429:432 -> a
+    1:4:com.android.tools.r8.graph.DexType getImplReceiverType():103:106 -> b
+    5:5:boolean verifyTargetFoundInClass(com.android.tools.r8.graph.DexType):169:169 -> b
+com.android.tools.r8.ir.desugar.LambdaMainMethodSourceCode -> com.android.tools.r8.t.c.G:
+    boolean $assertionsDisabled -> o
+    1:1:void <clinit>():25:25 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):28:28 -> <init>
+    1:12:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):61:72 -> a
+    13:13:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):70:70 -> a
+    14:46:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):82:114 -> a
+    47:47:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57:57 -> a
+    47:47:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):121 -> a
+    48:48:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexItemFactory.getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):507:507 -> a
+    48:48:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57 -> a
+    48:48:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):121 -> a
+    49:58:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):122:131 -> a
+    59:59:boolean isSameOrAdaptableTo(byte,byte):156:156 -> a
+    60:60:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):199:199 -> a
+    61:61:void lambda$prepareInstructions$1(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.conversion.IRBuilder):215:215 -> a
+    62:62:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):229:229 -> a
+    63:63:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():545:545 -> a
+    63:63:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
+    64:64:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    64:64:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():546 -> a
+    64:64:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
+    65:65:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():555:555 -> a
+    65:65:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
+    66:66:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    66:66:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():555 -> a
+    66:66:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
+    67:74:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():555:562 -> a
+    67:74:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
+    75:81:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():559:565 -> a
+    75:81:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
+    82:82:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):229:229 -> a
+    83:88:int prepareReturnValue(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):261:266 -> a
+    89:106:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):289:306 -> a
+    107:107:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57:57 -> a
+    107:107:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):308 -> a
+    108:108:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexItemFactory.getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):507:507 -> a
+    108:108:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57 -> a
+    108:108:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):308 -> a
+    109:150:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):310:351 -> a
+    151:151:void lambda$addPrimitiveWideningConversion$7(com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):372:372 -> a
+    152:152:void lambda$addPrimitiveWideningConversion$10(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):405:405 -> a
+    153:153:int castToBoxedType(int,com.android.tools.r8.graph.DexType):473:473 -> a
+    154:154:void lambda$addPrimitiveBoxing$14(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):488:488 -> a
+    1:1:void lambda$adjustType$6(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):345:345 -> b
+    2:2:void lambda$addPrimitiveWideningConversion$8(com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):387:387 -> b
+    3:3:void lambda$addPrimitiveWideningConversion$9(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):397:397 -> b
+    4:4:void lambda$addPrimitiveUnboxing$11(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):458:458 -> b
+    5:23:int addPrimitiveBoxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):479:497 -> b
+    24:24:void lambda$addPrimitiveBoxing$15(int,com.android.tools.r8.ir.conversion.IRBuilder):497:497 -> b
+    1:1:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452:452 -> c
+    2:30:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):419:447 -> c
+    2:30:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
+    31:47:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):423:439 -> c
+    31:47:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
+    48:58:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):435:445 -> c
+    48:58:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
+    59:60:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):432:433 -> c
+    59:60:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
+    61:62:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):426:427 -> c
+    61:62:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
+    63:77:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):454:468 -> c
+    78:78:void lambda$addPrimitiveUnboxing$12(int,com.android.tools.r8.ir.conversion.IRBuilder):468:468 -> c
+    79:79:void lambda$castToBoxedType$13(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):473:473 -> c
+    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):245:245 -> d
+    2:52:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):355:405 -> d
+    53:58:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):392:397 -> d
+    59:63:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):383:387 -> d
+    64:64:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):377:377 -> d
+    65:112:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):368:415 -> d
+    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):249:249 -> e
+    1:1:void lambda$prepareInstructions$5(int,com.android.tools.r8.ir.conversion.IRBuilder):252:252 -> f
+    1:1:void prepareInstructions():162:162 -> h
+    2:2:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> h
+    2:2:void prepareInstructions():163 -> h
+    3:29:void prepareInstructions():163:189 -> h
+    30:47:boolean checkSignatures(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexType):34:51 -> h
+    30:47:void prepareInstructions():187 -> h
+    48:79:void prepareInstructions():192:223 -> h
+    80:81:int prepareParameterValue(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):279:280 -> h
+    80:81:void prepareInstructions():222 -> h
+    82:112:void prepareInstructions():222:252 -> h
+com.android.tools.r8.ir.desugar.LambdaMainMethodSynthesizedCode -> com.android.tools.r8.t.c.H:
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.graph.DexMethod mainMethod -> e
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):20:21 -> <init>
+    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):26:26 -> a
+    1:31:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):32:62 -> b
+    32:32:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):56:56 -> b
+    33:33:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):53:53 -> b
+    34:34:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):50:50 -> b
+    1:1:java.util.function.Consumer getRegistryCallback():31:31 -> getRegistryCallback
+    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():26:26 -> getSourceCodeProvider
+com.android.tools.r8.ir.desugar.LambdaRewriter -> com.android.tools.r8.t.c.I:
+    com.android.tools.r8.graph.DexString instanceFieldName -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map knownCallSites -> d
+    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> c
+    boolean $assertionsDisabled -> f
+    java.util.Map knownLambdaClasses -> e
+    1:1:void <clinit>():52:52 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):82:82 -> <init>
+    2:24:void <init>(com.android.tools.r8.graph.AppView):64:86 -> <init>
+    1:1:com.android.tools.r8.graph.AppInfoWithClassHierarchy getAppInfo():94:94 -> a
+    2:13:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):137:148 -> a
+    14:20:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):238:244 -> a
+    14:20:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):148 -> a
+    21:27:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):315:321 -> a
+    21:27:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):241 -> a
+    21:27:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):148 -> a
+    28:28:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):241:241 -> a
+    28:28:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):148 -> a
+    29:29:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):149:149 -> a
+    30:30:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    30:30:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):156 -> a
+    31:31:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):156:156 -> a
+    32:33:com.android.tools.r8.ir.desugar.LambdaClass getKnownLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):287:288 -> a
+    32:33:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):157 -> a
+    34:35:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):158:159 -> a
+    36:48:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):334:346 -> a
+    36:48:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    49:49:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    49:49:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):346 -> a
+    49:49:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    50:50:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):345:345 -> a
+    50:50:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    51:51:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    51:51:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):344 -> a
+    51:51:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    52:79:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):348:375 -> a
+    52:79:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    80:163:com.android.tools.r8.ir.analysis.type.TypeLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement.asDefinitelyNotNull():0:83 -> a
+    80:163:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):375 -> a
+    80:163:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    164:172:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):374:382 -> a
+    164:172:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    173:173:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
+    173:173:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):382 -> a
+    173:173:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    174:188:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):384:398 -> a
+    174:188:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    189:189:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    189:189:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):399 -> a
+    189:189:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    190:190:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):399:399 -> a
+    190:190:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164 -> a
+    191:191:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):322:322 -> a
+    191:191:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):241 -> a
+    191:191:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):148 -> a
+    192:193:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):168:169 -> a
+    194:194:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    194:194:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):169 -> a
+    195:195:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    195:195:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):169 -> a
+    196:198:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):169:171 -> a
+    199:206:boolean removeLambdaDeserializationMethods(java.lang.Iterable):177:184 -> a
+    207:207:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    207:207:com.android.tools.r8.graph.DexItemFactory getFactory():98 -> a
+    207:207:boolean removeLambdaDeserializationMethods(java.lang.Iterable):185 -> a
+    208:208:com.android.tools.r8.graph.DexItemFactory getFactory():98:98 -> a
+    208:208:boolean removeLambdaDeserializationMethods(java.lang.Iterable):185 -> a
+    209:209:boolean com.android.tools.r8.graph.DexMethod.isLambdaDeserializeMethod(com.android.tools.r8.graph.DexItemFactory):192:192 -> a
+    209:209:boolean removeLambdaDeserializationMethods(java.lang.Iterable):185 -> a
+    210:212:boolean removeLambdaDeserializationMethods(java.lang.Iterable):186:188 -> a
+    213:214:void finalizeLambdaDesugaringForD8(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):204:205 -> a
+    215:224:void synthesizeAccessibilityBridgesForLambdaClassesD8(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):118:127 -> a
+    215:224:void finalizeLambdaDesugaringForD8(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):204 -> a
+    225:230:void finalizeLambdaDesugaringForD8(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):206:211 -> a
+    231:235:void optimizeSynthesizedClasses(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):216:216 -> a
+    236:240:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):254:258 -> a
+    241:247:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):315:321 -> a
+    241:247:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):259 -> a
+    248:248:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):259:259 -> a
+    249:249:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    249:249:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):263 -> a
+    250:250:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):263:263 -> a
+    251:251:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    251:251:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):263 -> a
+    252:252:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    252:252:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):265 -> a
+    253:253:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):265:265 -> a
+    254:254:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    254:254:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):268 -> a
+    255:258:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):269:272 -> a
+    259:264:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):292:297 -> a
+    259:264:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):275 -> a
+    265:265:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    265:265:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):298 -> a
+    265:265:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):275 -> a
+    266:266:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):298:298 -> a
+    266:266:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):275 -> a
+    267:267:com.android.tools.r8.graph.DexItemFactory getFactory():98:98 -> a
+    267:267:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):302 -> a
+    267:267:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):275 -> a
+    268:271:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):302:305 -> a
+    268:271:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):275 -> a
+    272:272:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):304:304 -> a
+    272:272:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):275 -> a
+    273:273:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):303:303 -> a
+    273:273:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):275 -> a
+    274:274:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):300:300 -> a
+    274:274:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):275 -> a
+    275:275:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):322:322 -> a
+    275:275:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):259 -> a
+    276:276:com.android.tools.r8.graph.AppView getAppView():90:90 -> a
+    276:276:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):279 -> a
+    277:277:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    277:277:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):279 -> a
+    278:278:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):279:279 -> a
+    279:279:boolean isInMainDexList(com.android.tools.r8.graph.DexType):248:248 -> a
+    279:279:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):280 -> a
+    280:280:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):281:281 -> a
+    281:283:java.lang.Object getKnown(java.util.Map,java.lang.Object):309:311 -> a
+    1:1:com.android.tools.r8.graph.AppView getAppView():90:90 -> b
+    1:1:com.android.tools.r8.graph.AppView getAppView():90:90 -> c
+    1:1:com.android.tools.r8.graph.DexItemFactory getFactory():98 -> c
+    2:2:com.android.tools.r8.graph.DexItemFactory getFactory():98:98 -> c
+com.android.tools.r8.ir.desugar.LambdaSynthesizedCode -> com.android.tools.r8.t.c.J:
+    com.android.tools.r8.ir.desugar.LambdaClass lambda -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):19:20 -> <init>
+    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor():28:28 -> a
+    1:1:com.android.tools.r8.graph.DexType[] captures():32 -> a
+    2:4:com.android.tools.r8.graph.DexType[] captures():32:34 -> a
+com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring -> com.android.tools.r8.t.c.K:
+    java.util.Map bridges -> b
+    java.util.Map getFieldBridges -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map putFieldBridges -> d
+    boolean nestConstructorUsed -> f
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.graph.DexProgramClass nestConstructor -> e
+    1:1:void <clinit>():40:40 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):66:66 -> <init>
+    2:11:void <init>(com.android.tools.r8.graph.AppView):59:68 -> <init>
+    void reportIncompleteNest(java.util.List) -> a
+    boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List) -> a
+    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):81:81 -> a
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    2:2:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):81 -> a
+    3:17:com.android.tools.r8.utils.Pair extractNest(com.android.tools.r8.graph.DexClass):96:110 -> a
+    18:18:java.util.concurrent.Future asyncProcessNest(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService):114:114 -> a
+    19:38:com.android.tools.r8.graph.DexProgramClass createNestAccessConstructor():163:182 -> a
+    39:41:void synthesizeNestConstructor(com.android.tools.r8.graph.DexApplication$Builder):187:189 -> a
+    42:48:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):224:230 -> a
+    49:56:com.android.tools.r8.graph.DexString computeMethodBridgeName(com.android.tools.r8.graph.DexEncodedMethod):198:205 -> a
+    49:56:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):231 -> a
+    57:57:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):231:231 -> a
+    58:65:boolean invokeRequiresRewriting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):260:267 -> a
+    66:73:boolean fieldAccessRequiresRewriting(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):271:278 -> a
+    74:75:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):298:299 -> a
+    76:77:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):241:242 -> a
+    76:77:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    78:78:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    78:78:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):244 -> a
+    78:78:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    79:82:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):244:247 -> a
+    79:82:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    83:83:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    83:83:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):249 -> a
+    83:83:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    84:89:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):250:255 -> a
+    84:89:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    90:90:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):209:209 -> a
+    90:90:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
+    90:90:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    91:91:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    91:91:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):211 -> a
+    91:91:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
+    91:91:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    92:94:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):212:214 -> a
+    92:94:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
+    92:94:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    95:95:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    95:95:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):215 -> a
+    95:95:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
+    95:95:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    96:100:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):216:220 -> a
+    96:100:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
+    96:100:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    101:101:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256:256 -> a
+    101:101:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
+    102:108:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):301:307 -> a
+    109:109:com.android.tools.r8.graph.DexEncodedMethod lambda$ensureFieldAccessBridge$1(com.android.tools.r8.graph.DexEncodedField,boolean,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField):310:310 -> a
+    110:112:com.android.tools.r8.graph.DexEncodedMethod lambda$ensureInvokeBridge$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):334:336 -> a
+    1:2:com.android.tools.r8.graph.DexType getNestConstructorType():72:73 -> b
+    3:12:boolean holderRequiresBridge(com.android.tools.r8.graph.DexClass):284:293 -> b
+    13:18:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):317:322 -> b
+    19:20:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):235:236 -> b
+    19:20:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
+    21:1502:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.appendTypeToProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):0:1481 -> b
+    21:1502:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):236 -> b
+    21:1502:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
+    1503:1506:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.appendTypeToProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1480:1483 -> b
+    1503:1506:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):236 -> b
+    1503:1506:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
+    1507:1507:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):237:237 -> b
+    1507:1507:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
+    1508:1515:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):324:331 -> b
+    1:4:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):116:119 -> c
+    5:9:void processNest(com.android.tools.r8.graph.DexClass,java.util.List):127:131 -> c
+    5:9:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):119 -> c
+    10:14:void reportDesugarDependencies(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):152:156 -> c
+    10:14:void processNest(com.android.tools.r8.graph.DexClass,java.util.List):135 -> c
+    10:14:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):119 -> c
+    15:20:void processNest(com.android.tools.r8.graph.DexClass,java.util.List):136:141 -> c
+    15:20:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):119 -> c
+    void reportMissingNestHost(com.android.tools.r8.graph.DexClass) -> d
+com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess -> com.android.tools.r8.t.c.K$a:
+    com.android.tools.r8.graph.DexEncodedField field -> a
+    boolean isGet -> b
+    1:3:void <init>(com.android.tools.r8.graph.DexEncodedField,boolean):446:448 -> <init>
+    1:1:com.android.tools.r8.graph.DexField getField():509:509 -> a
+    1:1:com.android.tools.r8.graph.DexType getHolder():505:505 -> b
+    1:1:com.android.tools.r8.graph.DexType getType():501:501 -> c
+    1:1:boolean isInstance():481:481 -> d
+    1:1:boolean isInstanceGet():493 -> d
+    2:2:boolean isGet():469:469 -> d
+    2:2:boolean isInstanceGet():493 -> d
+    1:1:boolean isGet():469:469 -> e
+    1:1:boolean isPut():477 -> e
+    1:5:boolean equals(java.lang.Object):461:465 -> equals
+    1:1:boolean isStatic():473:473 -> f
+    1:1:boolean isStaticGet():485:485 -> g
+    2:2:boolean isGet():469:469 -> g
+    2:2:boolean isStaticGet():485 -> g
+    1:1:int hashCode():453:453 -> hashCode
+com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$NestBasedAccessDesugaringUseRegistry -> com.android.tools.r8.t.c.L:
+    com.android.tools.r8.graph.DexClass currentClass -> a
+    com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring this$0 -> c
+    com.android.tools.r8.graph.DexMethod context -> b
+    1:3:void <init>(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexClass):345:347 -> <init>
+    1:1:void setContext(com.android.tools.r8.graph.DexMethod):351:351 -> a
+    2:5:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):357:360 -> a
+    6:7:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):86:87 -> a
+    6:7:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.access$000(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):40 -> a
+    6:7:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):360 -> a
+    8:8:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    8:8:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):86 -> a
+    8:8:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.access$000(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):40 -> a
+    8:8:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):360 -> a
+    9:10:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):361:362 -> a
+    11:11:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):369:369 -> a
+    12:12:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexField):91:91 -> a
+    12:12:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.access$100(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexField):40 -> a
+    12:12:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):369 -> a
+    13:13:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):195:195 -> a
+    13:13:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexField):91 -> a
+    13:13:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.access$100(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexField):40 -> a
+    13:13:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):369 -> a
+    14:15:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):370:371 -> a
+    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):413:413 -> registerInstanceFieldRead
+    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):408:408 -> registerInstanceFieldWrite
+    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):386:386 -> registerInvokeDirect
+    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):398:398 -> registerInvokeInterface
+    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):391:391 -> registerInvokeStatic
+    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):403:403 -> registerInvokeSuper
+    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):381:381 -> registerInvokeVirtual
+    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):426:426 -> registerStaticFieldRead
+    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):431:431 -> registerStaticFieldWrite
+com.android.tools.r8.ir.desugar.NestedPrivateMethodLense -> com.android.tools.r8.t.c.N:
+    java.util.Map getFieldMap -> b
+    java.util.Map putFieldMap -> c
+    com.android.tools.r8.graph.DexType nestConstructorType -> a
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):34:40 -> <init>
+    8:22:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):33:47 -> <init>
+    1:3:com.android.tools.r8.graph.DexMethod lookupFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod,java.util.Map):52:54 -> a
+    4:9:boolean isConstructorBridge(com.android.tools.r8.graph.DexMethod):90:95 -> a
+    1:1:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense$Builder builder():129:129 -> b
+    1:1:boolean isContextFreeForMethods():74:74 -> isContextFreeForMethods
+    1:2:com.android.tools.r8.graph.DexMethod lookupGetFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):62:63 -> lookupGetFieldForMethod
+    1:14:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):112:125 -> lookupMethod
+    1:6:com.android.tools.r8.graph.RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):100:105 -> lookupPrototypeChanges
+    1:2:com.android.tools.r8.graph.DexMethod lookupPutFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):68:69 -> lookupPutFieldForMethod
+    1:1:boolean verifyIsContextFreeForMethod(com.android.tools.r8.graph.DexMethod):79:79 -> verifyIsContextFreeForMethod
+com.android.tools.r8.ir.desugar.NestedPrivateMethodLense$Builder -> com.android.tools.r8.t.c.M:
+    boolean $assertionsDisabled -> h
+    java.util.Map getFieldMap -> f
+    java.util.Map putFieldMap -> g
+    1:1:void <clinit>():132:132 -> <clinit>
+    1:4:void <init>():132:135 -> <init>
+    1:1:void mapGetField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):138:138 -> a
+    2:8:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense build(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):146:152 -> a
+    1:1:void mapPutField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):142:142 -> b
+com.android.tools.r8.ir.desugar.PrefixRewritingMapper -> com.android.tools.r8.t.c.O:
+    1:1:void <init>():22:22 -> <init>
+    boolean isRewriting() -> a
+    void rewriteType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType) -> a
+    1:1:boolean hasRewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):33:33 -> a
+    2:6:boolean hasRewrittenTypeInSignature(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.AppView):37:41 -> a
+    com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView) -> b
+com.android.tools.r8.ir.desugar.PrefixRewritingMapper$DesugarPrefixRewritingMapper -> com.android.tools.r8.t.c.O$a:
+    java.util.Map rewritten -> b
+    java.util.Map initialPrefixes -> c
+    com.android.tools.r8.graph.DexItemFactory factory -> d
+    boolean l8Compilation -> e
+    boolean $assertionsDisabled -> f
+    java.util.Set notRewritten -> a
+    1:1:void <clinit>():50:50 -> <clinit>
+    1:1:void <init>(java.util.Map,com.android.tools.r8.utils.InternalOptions):58:58 -> <init>
+    2:16:void <init>(java.util.Map,com.android.tools.r8.utils.InternalOptions):52:66 -> <init>
+    boolean isRewriting() -> a
+    1:1:com.android.tools.r8.graph.DexString toDescriptorPrefix(java.lang.String):70:70 -> a
+    2:25:void validatePrefixes(java.util.Map):74:97 -> a
+    26:26:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    26:26:void validatePrefixes(java.util.Map):97 -> a
+    27:27:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    27:27:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    27:27:void validatePrefixes(java.util.Map):97 -> a
+    28:28:void validatePrefixes(java.util.Map):97:97 -> a
+    29:39:void rewriteType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):137:147 -> a
+    1:6:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):106:111 -> b
+    7:7:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):151:151 -> b
+    7:7:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    8:8:int com.android.tools.r8.graph.DexString.getArrayDim():511:511 -> b
+    8:8:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withoutArray(com.android.tools.r8.graph.DexItemFactory):500 -> b
+    8:8:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):151 -> b
+    8:8:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    9:11:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withoutArray(com.android.tools.r8.graph.DexItemFactory):504:506 -> b
+    9:11:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):151 -> b
+    9:11:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    12:12:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152:152 -> b
+    12:12:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    13:16:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):163:166 -> b
+    13:16:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152 -> b
+    13:16:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    17:17:int com.android.tools.r8.graph.DexString.getArrayDim():511:511 -> b
+    17:17:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withNewPrefix(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):478 -> b
+    17:17:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):166 -> b
+    17:17:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152 -> b
+    17:17:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    18:35:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withNewPrefix(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):479:496 -> b
+    18:35:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):166 -> b
+    18:35:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152 -> b
+    18:35:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    36:37:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):167:168 -> b
+    36:37:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152 -> b
+    36:37:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    38:42:void failIfRewritingProgramType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):118:122 -> b
+    38:42:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):154 -> b
+    38:42:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    43:43:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    43:43:void failIfRewritingProgramType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):123 -> b
+    43:43:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):154 -> b
+    43:43:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    44:48:void failIfRewritingProgramType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):124:128 -> b
+    44:48:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):154 -> b
+    44:48:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+    49:49:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):157:157 -> b
+    49:49:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
+com.android.tools.r8.ir.desugar.PrefixRewritingMapper$EmptyPrefixRewritingMapper -> com.android.tools.r8.t.c.P:
+    1:1:void <init>():181:181 -> <init>
+    boolean isRewriting() -> a
+    void rewriteType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType) -> a
+    com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView) -> b
+com.android.tools.r8.ir.desugar.R8NestBasedAccessDesugaring -> com.android.tools.r8.t.c.Q:
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):33:33 -> <init>
+    boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List) -> a
+    1:1:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):39:39 -> a
+    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    2:2:boolean com.android.tools.r8.utils.InternalOptions.canUseNestBasedAccess():1127 -> a
+    2:2:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):39 -> a
+    3:5:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):39:39 -> a
+    6:22:void computeAndProcessNestsConcurrently(java.util.concurrent.ExecutorService):78:94 -> a
+    6:22:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):41 -> a
+    23:24:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):42:43 -> a
+    25:27:void clearNestAttributes():70:72 -> a
+    25:27:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):44 -> a
+    28:29:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):45:46 -> a
+    30:32:void addDeferredBridgesAndMapMethods(com.android.tools.r8.ir.desugar.NestedPrivateMethodLense$Builder):51:53 -> a
+    33:39:void addDeferredBridgesAndMapMethods(java.util.Map,java.util.function.BiConsumer):58:64 -> a
+    40:43:void reportIncompleteNest(java.util.List):114:117 -> a
+    1:4:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):105:108 -> d
+com.android.tools.r8.ir.desugar.StringConcatRewriter -> com.android.tools.r8.t.c.X:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.DexMethod defaultAppendMethod -> h
+    com.android.tools.r8.graph.DexMethod stringBuilderToString -> f
+    com.android.tools.r8.graph.DexMethod stringBuilderInit -> e
+    com.android.tools.r8.graph.DexMethod makeConcatWithConstants -> d
+    com.android.tools.r8.graph.DexMethod makeConcat -> c
+    java.util.Map paramTypeToAppendMethod -> g
+    1:1:void <init>(com.android.tools.r8.graph.AppView):62:62 -> <init>
+    2:16:void <init>(com.android.tools.r8.graph.AppView):59:73 -> <init>
+    17:24:void <init>(com.android.tools.r8.graph.AppView):71:78 -> <init>
+    25:32:void <init>(com.android.tools.r8.graph.AppView):75:82 -> <init>
+    33:39:void <init>(com.android.tools.r8.graph.AppView):80:86 -> <init>
+    40:47:void <init>(com.android.tools.r8.graph.AppView):84:91 -> <init>
+    48:51:void <init>(com.android.tools.r8.graph.AppView):90:93 -> <init>
+    52:55:void <init>(com.android.tools.r8.graph.AppView):92:95 -> <init>
+    56:59:void <init>(com.android.tools.r8.graph.AppView):94:97 -> <init>
+    60:63:void <init>(com.android.tools.r8.graph.AppView):96:99 -> <init>
+    64:67:void <init>(com.android.tools.r8.graph.AppView):98:101 -> <init>
+    68:71:void <init>(com.android.tools.r8.graph.AppView):100:103 -> <init>
+    72:75:void <init>(com.android.tools.r8.graph.AppView):102:105 -> <init>
+    76:79:void <init>(com.android.tools.r8.graph.AppView):104:107 -> <init>
+    80:83:void <init>(com.android.tools.r8.graph.AppView):106:109 -> <init>
+    84:84:void <init>(com.android.tools.r8.graph.AppView):108:108 -> <init>
+    1:1:com.android.tools.r8.graph.DexItemFactory access$100(com.android.tools.r8.ir.desugar.StringConcatRewriter):39:39 -> a
+    2:25:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):117:140 -> a
+    26:41:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):155:170 -> a
+    26:41:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):141 -> a
+    42:47:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):169:174 -> a
+    42:47:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):141 -> a
+    48:50:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):162:162 -> a
+    48:50:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):141 -> a
+    51:51:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):142:142 -> a
+    52:101:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):190:239 -> a
+    52:101:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    102:102:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):238:238 -> a
+    102:102:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    103:117:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):236:250 -> a
+    103:117:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    118:119:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):276:277 -> a
+    118:119:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):250 -> a
+    118:119:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    120:120:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):250:250 -> a
+    120:120:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    121:123:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):279:279 -> a
+    121:123:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):250 -> a
+    121:123:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    124:152:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):244:272 -> a
+    124:152:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    153:155:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):262:262 -> a
+    153:155:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    156:156:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):258:258 -> a
+    156:156:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    157:157:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):217:217 -> a
+    157:157:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    158:158:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):205:205 -> a
+    158:158:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    159:161:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):199:199 -> a
+    159:161:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
+    162:164:com.android.tools.r8.errors.CompilationError error(com.android.tools.r8.graph.DexMethod,java.lang.String):456:458 -> a
+    165:165:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    165:165:com.android.tools.r8.errors.CompilationError error(com.android.tools.r8.graph.DexMethod,java.lang.String):458 -> a
+    1:1:com.android.tools.r8.graph.DexMethod access$200(com.android.tools.r8.ir.desugar.StringConcatRewriter):39:39 -> b
+    1:1:com.android.tools.r8.graph.DexMethod access$300(com.android.tools.r8.ir.desugar.StringConcatRewriter):39:39 -> c
+com.android.tools.r8.ir.desugar.StringConcatRewriter$1 -> com.android.tools.r8.t.c.S:
+com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder -> com.android.tools.r8.t.c.W:
+    java.util.ListIterator blocks -> c
+    com.android.tools.r8.ir.code.BasicBlock currentBlock -> f
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.ir.code.Instruction invokeCustom -> e
+    com.android.tools.r8.ir.code.IRCode code -> b
+    com.android.tools.r8.ir.code.InstructionListIterator instructions -> d
+    java.util.List chunks -> g
+    com.android.tools.r8.ir.desugar.StringConcatRewriter this$0 -> h
+    1:1:void <clinit>():283:283 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.desugar.StringConcatRewriter$1):283:283 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator):296:296 -> <init>
+    3:17:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator):290:304 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$500(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder):283:283 -> a
+    2:3:void appendInstruction(com.android.tools.r8.ir.code.Instruction):308:309 -> a
+    2:3:void access$400(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.ir.code.Instruction):283 -> a
+    4:4:void addChunk(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethod):313:313 -> a
+    5:5:void addChunk(java.lang.String,com.android.tools.r8.graph.DexMethod):317:317 -> a
+    6:11:void desugar():338:343 -> a
+    12:12:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    12:12:void desugar():343 -> a
+    13:13:void desugar():344:344 -> a
+    14:15:void appendInstruction(com.android.tools.r8.ir.code.Instruction):308:309 -> a
+    14:15:void desugar():344 -> a
+    16:17:void desugar():347:348 -> a
+    18:18:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
+    18:18:void desugar():348 -> a
+    19:20:void appendInstruction(com.android.tools.r8.ir.code.Instruction):308:309 -> a
+    19:20:void desugar():347 -> a
+    21:21:void desugar():351:351 -> a
+    22:25:void com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk.addAppendCall(com.android.tools.r8.ir.code.Value):413:413 -> a
+    22:25:void desugar():352 -> a
+    26:35:void desugar():356:365 -> a
+    36:36:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    36:36:void desugar():365 -> a
+    37:39:void desugar():369:369 -> a
+    42:69:void desugar():372:399 -> a
+    1:1:com.android.tools.r8.ir.code.IRCode access$600(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder):283:283 -> b
+com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$ArgumentChunk -> com.android.tools.r8.t.c.T:
+    com.android.tools.r8.ir.code.Value value -> c
+    1:2:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethod):423:424 -> <init>
+    1:1:com.android.tools.r8.ir.code.Value getOrCreateValue():429:429 -> a
+com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk -> com.android.tools.r8.t.c.U:
+    com.android.tools.r8.graph.DexMethod method -> a
+    com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder this$1 -> b
+    1:2:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.graph.DexMethod):406:407 -> <init>
+    com.android.tools.r8.ir.code.Value getOrCreateValue() -> a
+com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$ConstantChunk -> com.android.tools.r8.t.c.V:
+    com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder this$1 -> d
+    java.lang.String str -> c
+    1:3:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,java.lang.String,com.android.tools.r8.graph.DexMethod):436:438 -> <init>
+    1:2:com.android.tools.r8.ir.code.Value getOrCreateValue():443:444 -> a
+    3:3:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    3:3:com.android.tools.r8.ir.code.Value getOrCreateValue():444 -> a
+    4:9:com.android.tools.r8.ir.code.Value getOrCreateValue():445:445 -> a
+com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode -> com.android.tools.r8.t.c.Y:
+    boolean $assertionsDisabled -> n
+    com.android.tools.r8.ir.desugar.LambdaClass lambda -> m
+    com.android.tools.r8.graph.DexMethod currentMethod -> l
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType):22:24 -> <init>
+    4:4:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):29:29 -> <init>
+    1:2:int enforceParameterType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):51:52 -> a
+    3:3:void lambda$enforceParameterType$0(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
+    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor():33:33 -> i
+    1:1:com.android.tools.r8.graph.DexType[] captures():37 -> i
+    2:4:com.android.tools.r8.graph.DexType[] captures():37:39 -> i
+    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor():33:33 -> j
+    1:1:com.android.tools.r8.graph.DexItemFactory factory():43:43 -> k
+    1:1:java.lang.String toString():59:59 -> toString
+com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter -> com.android.tools.r8.t.c.Z:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set referencingClasses -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.DexMethod twrCloseResourceMethod -> c
+    com.android.tools.r8.ir.conversion.IRConverter converter -> b
+    1:1:void <clinit>():50:50 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):62:62 -> <init>
+    2:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):60:72 -> <init>
+    1:13:boolean isSynthesizedCloseResourceMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppView):107:119 -> a
+    14:19:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):126:131 -> a
+    20:55:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):351:386 -> a
+    20:55:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    56:69:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):383:396 -> a
+    56:69:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    70:85:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):393:408 -> a
+    70:85:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    86:90:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):405:409 -> a
+    86:90:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    91:112:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):403:424 -> a
+    91:112:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    113:117:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):421:425 -> a
+    113:117:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    118:141:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):419:442 -> a
+    118:141:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    142:153:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):439:450 -> a
+    142:153:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    154:165:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):447:458 -> a
+    154:165:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    166:179:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):454:467 -> a
+    166:179:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    180:191:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):463:474 -> a
+    180:191:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    192:206:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):471:485 -> a
+    192:206:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    207:228:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):479:500 -> a
+    207:228:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    229:241:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):497:509 -> a
+    229:241:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    242:254:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):505:517 -> a
+    242:254:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    255:266:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):514:525 -> a
+    255:266:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    267:278:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):521:532 -> a
+    267:278:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    279:293:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):529:543 -> a
+    279:293:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    294:313:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):537:556 -> a
+    294:313:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    314:314:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):552:552 -> a
+    314:314:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    315:522:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):373:580 -> a
+    315:522:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    523:530:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):579:586 -> a
+    523:530:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    531:538:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):585:592 -> a
+    531:538:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    539:547:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):591:599 -> a
+    539:547:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    548:556:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):598:606 -> a
+    548:556:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    557:565:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):605:613 -> a
+    557:565:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    566:574:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):612:620 -> a
+    566:574:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    575:621:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod) -> a
+    575:621:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
+    622:625:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):134:137 -> a
+    626:626:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    626:626:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):137 -> a
+    627:655:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):140:168 -> a
+    656:656:boolean lambda$synthesizeUtilityClass$0(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexProgramClass):165:165 -> a
+    657:657:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    657:657:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):82 -> a
+    658:674:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):83:99 -> a
+    675:675:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    675:675:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):98 -> a
+    676:676:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):102:102 -> a
+com.android.tools.r8.ir.desugar.backports.BackportedMethods -> com.android.tools.r8.t.c.a0.a:
+    1:20:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1744:1763 -> A
+    21:36:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1760:1775 -> A
+    37:54:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1771:1788 -> A
+    55:73:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1784:1802 -> A
+    74:101:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1796:1823 -> A
+    102:114:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1820:1832 -> A
+    115:128:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1828:1841 -> A
+    129:142:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1837:1850 -> A
+    143:156:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1846:1859 -> A
+    157:171:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1855:1869 -> A
+    172:183:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1865:1876 -> A
+    184:195:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1873:1884 -> A
+    196:196:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1880:1880 -> A
+    197:335:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1755:1893 -> A
+    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5057:5074 -> A0
+    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5071:5085 -> A0
+    34:46:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5082:5094 -> A0
+    47:62:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5089:5104 -> A0
+    63:63:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5101:5101 -> A0
+    64:108:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5066:5110 -> A0
+    1:30:com.android.tools.r8.graph.CfCode IntegerMethods_remainderUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1897:1926 -> B
+    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5115:5132 -> B0
+    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5129:5143 -> B0
+    34:45:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5140:5151 -> B0
+    46:60:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5147:5161 -> B0
+    61:61:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5158:5158 -> B0
+    62:105:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5124:5167 -> B0
+    1:16:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1930:1945 -> C
+    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5172:5189 -> C0
+    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5186:5200 -> C0
+    34:45:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5197:5208 -> C0
+    46:60:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5204:5218 -> C0
+    61:61:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5215:5215 -> C0
+    62:105:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5181:5224 -> C0
+    1:19:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1949:1967 -> D
+    20:20:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1961:1961 -> D
+    21:38:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1955:1972 -> D
+    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_isEmpty(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5228:5244 -> D0
+    18:18:com.android.tools.r8.graph.CfCode OptionalMethods_isEmpty(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5241:5241 -> D0
+    19:38:com.android.tools.r8.graph.CfCode OptionalMethods_isEmpty(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5236:5255 -> D0
+    1:26:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1977:2002 -> E
+    27:27:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1996:1996 -> E
+    28:51:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1984:2007 -> E
+    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5259:5275 -> E0
+    18:18:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5272:5272 -> E0
+    19:38:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5267:5286 -> E0
+    1:31:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2011:2041 -> F
+    32:32:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2035:2035 -> F
+    33:60:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2019:2046 -> F
+    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5290:5306 -> F0
+    18:18:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5303:5303 -> F0
+    19:38:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5298:5317 -> F0
+    1:100:com.android.tools.r8.graph.CfCode LongMethods_divideUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2050:2149 -> G
+    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5321:5337 -> G0
+    18:18:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5334:5334 -> G0
+    19:38:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5329:5348 -> G0
+    1:18:com.android.tools.r8.graph.CfCode LongMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2153:2170 -> H
+    1:20:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5352:5371 -> H0
+    21:35:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5367:5381 -> H0
+    36:52:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5378:5394 -> H0
+    53:68:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5391:5406 -> H0
+    69:75:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5402:5408 -> H0
+    76:126:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5362:5412 -> H0
+    1:19:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2174:2192 -> I
+    20:20:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2186:2186 -> I
+    21:38:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2180:2197 -> I
+    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5416:5432 -> I0
+    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5429:5442 -> I0
+    32:42:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5439:5449 -> I0
+    43:46:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5448:5451 -> I0
+    47:61:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5446:5460 -> I0
+    62:64:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5459:5461 -> I0
+    65:65:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5457:5457 -> I0
+    66:108:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5424:5466 -> I0
+    1:35:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2202:2236 -> J
+    36:56:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2233:2253 -> J
+    57:83:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2249:2275 -> J
+    84:96:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2271:2283 -> J
+    97:109:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2279:2291 -> J
+    110:129:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2287:2306 -> J
+    130:148:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2300:2318 -> J
+    149:185:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2314:2350 -> J
+    186:201:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2346:2361 -> J
+    202:226:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2355:2379 -> J
+    227:260:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2375:2408 -> J
+    261:283:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2402:2424 -> J
+    284:296:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2420:2432 -> J
+    297:297:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2428:2428 -> J
+    298:522:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2228:2452 -> J
+    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5470:5486 -> J0
+    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5483:5496 -> J0
+    32:42:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5493:5503 -> J0
+    43:47:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5502:5506 -> J0
+    48:63:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5500:5515 -> J0
+    64:67:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5514:5517 -> J0
+    68:68:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5512:5512 -> J0
+    69:113:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5478:5522 -> J0
+    1:101:com.android.tools.r8.graph.CfCode LongMethods_remainderUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2456:2556 -> K
+    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5526:5542 -> K0
+    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5539:5552 -> K0
+    32:42:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5549:5559 -> K0
+    43:46:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5558:5561 -> K0
+    47:61:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5556:5570 -> K0
+    62:64:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5569:5571 -> K0
+    65:65:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5567:5567 -> K0
+    66:108:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5534:5576 -> K0
+    1:19:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2560:2578 -> L
+    20:20:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2572:2572 -> L
+    21:38:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2566:2583 -> L
+    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5580:5596 -> L0
+    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5593:5606 -> L0
+    32:42:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5603:5613 -> L0
+    43:46:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5612:5615 -> L0
+    47:61:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5610:5624 -> L0
+    62:64:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5623:5625 -> L0
+    65:65:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5621:5621 -> L0
+    66:108:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5588:5630 -> L0
+    1:57:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2588:2644 -> M
+    58:100:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2638:2680 -> M
+    101:130:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2676:2705 -> M
+    131:181:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2699:2749 -> M
+    182:214:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2743:2775 -> M
+    215:250:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2769:2804 -> M
+    251:285:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2798:2832 -> M
+    286:286:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2825:2825 -> M
+    287:505:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2619:2837 -> M
+    1:15:com.android.tools.r8.graph.CfCode ShortMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5634:5648 -> M0
+    1:40:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2841:2880 -> N
+    41:41:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2877:2877 -> N
+    42:76:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2851:2885 -> N
+    1:19:com.android.tools.r8.graph.CfCode ShortMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5652:5670 -> N0
+    1:56:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2889:2944 -> O
+    57:57:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2941:2941 -> O
+    58:105:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2902:2949 -> O
+    1:15:com.android.tools.r8.graph.CfCode ShortMethods_toUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5674:5688 -> O0
+    1:22:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2953:2974 -> P
+    23:23:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2971:2971 -> P
+    24:47:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2961:2984 -> P
+    1:16:com.android.tools.r8.graph.CfCode ShortMethods_toUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5692:5707 -> P0
+    1:23:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2988:3010 -> Q
+    24:24:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3007:3007 -> Q
+    25:49:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2996:3020 -> Q
+    1:18:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5711:5728 -> Q0
+    19:21:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5727:5729 -> Q0
+    22:36:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5725:5739 -> Q0
+    37:40:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5738:5741 -> Q0
+    41:41:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5736:5736 -> Q0
+    42:70:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5719:5747 -> Q0
+    1:55:com.android.tools.r8.graph.CfCode MathMethods_floorDivInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3024:3078 -> R
+    1:26:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5751:5776 -> R0
+    27:46:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5773:5792 -> R0
+    47:62:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5788:5803 -> R0
+    63:82:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5799:5818 -> R0
+    83:83:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5814:5814 -> R0
+    84:148:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5765:5829 -> R0
+    1:59:com.android.tools.r8.graph.CfCode MathMethods_floorDivLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3082:3140 -> S
+    1:30:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5833:5862 -> S0
+    31:46:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5858:5873 -> S0
+    47:69:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5870:5892 -> S0
+    70:96:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5887:5913 -> S0
+    97:117:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5908:5928 -> S0
+    118:136:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5923:5941 -> S0
+    137:137:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5938:5938 -> S0
+    138:236:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5848:5946 -> S0
+    1:20:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3144:3163 -> T
+    21:21:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3157:3157 -> T
+    22:40:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3150:3168 -> T
+    1:29:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5950:5978 -> T0
+    30:45:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5974:5989 -> T0
+    46:59:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5986:5999 -> T0
+    60:62:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5998:6000 -> T0
+    63:77:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5996:6010 -> T0
+    78:92:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6007:6021 -> T0
+    93:106:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6018:6031 -> T0
+    107:122:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6026:6041 -> T0
+    123:139:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6038:6054 -> T0
+    140:156:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6049:6065 -> T0
+    157:170:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6062:6075 -> T0
+    171:187:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6070:6086 -> T0
+    188:188:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6083:6083 -> T0
+    189:316:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5964:6091 -> T0
+    1:47:com.android.tools.r8.graph.CfCode MathMethods_floorModInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3172:3218 -> U
+    1:34:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6095:6128 -> U0
+    35:47:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6125:6137 -> U0
+    48:61:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6133:6146 -> U0
+    62:73:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6142:6153 -> U0
+    74:86:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6150:6162 -> U0
+    87:102:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6157:6172 -> U0
+    103:136:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6169:6202 -> U0
+    137:160:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6198:6221 -> U0
+    161:178:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6217:6234 -> U0
+    179:179:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6231:6231 -> U0
+    180:306:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6113:6239 -> U0
+    1:51:com.android.tools.r8.graph.CfCode MathMethods_floorModLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3222:3272 -> V
+    1:32:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6243:6274 -> V0
+    33:52:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6271:6290 -> V0
+    53:68:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6286:6301 -> V0
+    69:87:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6297:6315 -> V0
+    88:113:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6311:6336 -> V0
+    114:131:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6330:6347 -> V0
+    132:150:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6343:6361 -> V0
+    151:173:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6357:6379 -> V0
+    174:174:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6373:6373 -> V0
+    175:296:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6263:6384 -> V0
+    1:20:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3276:3295 -> W
+    21:21:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3289:3289 -> W
+    22:41:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3282:3301 -> W
+    1:26:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6388:6413 -> W0
+    27:46:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6410:6429 -> W0
+    47:62:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6425:6440 -> W0
+    63:81:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6436:6454 -> W0
+    82:104:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6450:6472 -> W0
+    105:105:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6466:6466 -> W0
+    106:181:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6402:6477 -> W0
+    1:22:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3305:3326 -> X
+    23:23:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3323:3323 -> X
+    24:47:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3313:3336 -> X
+    1:22:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6481:6502 -> X0
+    23:43:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6499:6519 -> X0
+    44:61:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6513:6530 -> X0
+    62:80:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6526:6544 -> X0
+    81:103:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6540:6562 -> X0
+    104:104:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6556:6556 -> X0
+    105:178:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6494:6567 -> X0
+    1:23:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3340:3362 -> Y
+    24:24:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3359:3359 -> Y
+    25:49:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3348:3372 -> Y
+    1:40:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3376:3415 -> Z
+    41:41:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3412:3412 -> Z
+    42:76:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3386:3420 -> Z
+    1:28:com.android.tools.r8.graph.CfCode BooleanMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):51:78 -> a
+    1:32:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3424:3455 -> a0
+    33:49:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3451:3467 -> a0
+    50:65:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3463:3478 -> a0
+    66:83:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3474:3491 -> a0
+    84:152:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3487:3555 -> a0
+    153:153:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3552:3552 -> a0
+    154:269:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3445:3560 -> a0
+    1:21:com.android.tools.r8.graph.CfCode BooleanMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):82:102 -> b
+    1:20:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3564:3583 -> b0
+    21:21:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3577:3577 -> b0
+    22:40:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3570:3588 -> b0
+    1:15:com.android.tools.r8.graph.CfCode ByteMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):106:120 -> c
+    1:17:com.android.tools.r8.graph.CfCode MathMethods_multiplyFull(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3592:3608 -> c0
+    1:19:com.android.tools.r8.graph.CfCode ByteMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):124:142 -> d
+    1:101:com.android.tools.r8.graph.CfCode MathMethods_multiplyHigh(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3612:3712 -> d0
+    1:15:com.android.tools.r8.graph.CfCode ByteMethods_toUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):146:160 -> e
+    1:22:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3716:3737 -> e0
+    23:23:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3734:3734 -> e0
+    24:46:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3724:3746 -> e0
+    1:16:com.android.tools.r8.graph.CfCode ByteMethods_toUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):164:179 -> f
+    1:23:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3750:3772 -> f0
+    24:24:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3769:3769 -> f0
+    25:48:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3758:3781 -> f0
+    1:27:com.android.tools.r8.graph.CfCode CharSequenceMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):183:209 -> g
+    28:41:com.android.tools.r8.graph.CfCode CharSequenceMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):206:219 -> g
+    42:69:com.android.tools.r8.graph.CfCode CharSequenceMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):216:243 -> g
+    70:92:com.android.tools.r8.graph.CfCode CharSequenceMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):237:259 -> g
+    93:109:com.android.tools.r8.graph.CfCode CharSequenceMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):255:271 -> g
+    110:110:com.android.tools.r8.graph.CfCode CharSequenceMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):267:267 -> g
+    111:203:com.android.tools.r8.graph.CfCode CharSequenceMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):201:293 -> g
+    1:17:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3785:3801 -> g0
+    18:18:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3797:3797 -> g0
+    19:35:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3791:3807 -> g0
+    1:15:com.android.tools.r8.graph.CfCode CharacterMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):297:311 -> h
+    1:17:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3811:3827 -> h0
+    18:18:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3823:3823 -> h0
+    19:35:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3817:3833 -> h0
+    1:18:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):316:333 -> i
+    19:31:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):329:341 -> i
+    32:32:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):337:337 -> i
+    33:57:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):322:346 -> i
+    1:40:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3837:3876 -> i0
+    41:41:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3873:3873 -> i0
+    42:76:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3847:3881 -> i0
+    1:24:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):625:648 -> j
+    25:57:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):644:676 -> j
+    58:70:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):672:684 -> j
+    71:89:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):680:698 -> j
+    90:93:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):696:699 -> j
+    94:94:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):694:694 -> j
+    95:163:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):636:704 -> j
+    1:56:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3885:3940 -> j0
+    57:57:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3937:3937 -> j0
+    58:105:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3898:3945 -> j0
+    1:24:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):708:731 -> k
+    25:39:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):727:741 -> k
+    40:55:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):737:752 -> k
+    56:56:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):745:745 -> k
+    57:98:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):717:758 -> k
+    1:29:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3949:3977 -> k0
+    30:30:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3974:3974 -> k0
+    31:58:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3958:3985 -> k0
+    1:27:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):762:788 -> l
+    28:58:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):784:814 -> l
+    59:70:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):811:822 -> l
+    71:85:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):818:832 -> l
+    86:97:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):829:840 -> l
+    98:117:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):836:855 -> l
+    118:138:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):849:869 -> l
+    139:151:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):866:878 -> l
+    152:165:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):874:887 -> l
+    166:177:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):883:894 -> l
+    178:190:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):891:903 -> l
+    191:210:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):898:917 -> l
+    211:214:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):915:918 -> l
+    215:215:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):913:913 -> l
+    216:363:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):776:923 -> l
+    1:33:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3990:4022 -> l0
+    34:46:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4019:4031 -> l0
+    47:60:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4027:4040 -> l0
+    61:74:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4036:4049 -> l0
+    75:88:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4045:4058 -> l0
+    89:102:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4054:4067 -> l0
+    103:116:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4063:4076 -> l0
+    117:130:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4072:4085 -> l0
+    131:144:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4081:4094 -> l0
+    145:156:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4090:4101 -> l0
+    157:169:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4098:4110 -> l0
+    170:170:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4105:4105 -> l0
+    171:291:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3998:4118 -> l0
+    1:25:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):927:951 -> m
+    26:58:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):947:979 -> m
+    59:71:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):975:987 -> m
+    72:90:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):983:1001 -> m
+    91:103:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):998:1010 -> m
+    104:117:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1006:1019 -> m
+    118:129:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1015:1026 -> m
+    130:142:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1023:1035 -> m
+    143:162:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1030:1049 -> m
+    163:166:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1047:1050 -> m
+    167:167:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1045:1045 -> m
+    168:284:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):939:1055 -> m
+    1:30:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4122:4151 -> m0
+    31:43:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4148:4160 -> m0
+    44:57:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4156:4169 -> m0
+    58:71:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4165:4178 -> m0
+    72:85:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4174:4187 -> m0
+    86:99:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4183:4196 -> m0
+    100:113:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4192:4205 -> m0
+    114:125:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4201:4212 -> m0
+    126:138:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4209:4221 -> m0
+    139:139:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4216:4216 -> m0
+    140:239:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4130:4229 -> m0
+    1:22:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1059:1080 -> n
+    23:34:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1077:1088 -> n
+    35:49:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1084:1098 -> n
+    50:52:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1097:1099 -> n
+    53:67:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1095:1109 -> n
+    68:80:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1106:1118 -> n
+    81:96:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1115:1130 -> n
+    97:109:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1126:1138 -> n
+    110:127:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1134:1151 -> n
+    128:131:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1149:1152 -> n
+    132:132:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1147:1147 -> n
+    133:220:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1070:1157 -> n
+    1:27:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4233:4259 -> n0
+    28:40:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4256:4268 -> n0
+    41:54:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4264:4277 -> n0
+    55:68:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4273:4286 -> n0
+    69:82:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4282:4295 -> n0
+    83:94:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4291:4302 -> n0
+    95:107:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4299:4311 -> n0
+    108:108:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4306:4306 -> n0
+    109:187:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4241:4319 -> n0
+    1:25:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1161:1185 -> o
+    26:37:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1182:1193 -> o
+    38:52:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1189:1203 -> o
+    53:55:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1202:1204 -> o
+    56:67:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1200:1211 -> o
+    68:70:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1210:1212 -> o
+    71:85:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1208:1222 -> o
+    86:98:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1219:1231 -> o
+    99:115:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1228:1244 -> o
+    116:127:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1241:1252 -> o
+    128:141:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1248:1261 -> o
+    142:153:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1258:1269 -> o
+    154:169:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1265:1280 -> o
+    170:189:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1274:1293 -> o
+    190:193:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1291:1294 -> o
+    194:194:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1289:1289 -> o
+    195:319:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1175:1299 -> o
+    1:28:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4323:4350 -> o0
+    29:29:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4344:4344 -> o0
+    30:55:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4331:4356 -> o0
+    1:22:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1303:1324 -> p
+    23:34:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1321:1332 -> p
+    35:49:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1328:1342 -> p
+    50:52:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1341:1343 -> p
+    53:67:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1339:1353 -> p
+    68:80:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1350:1362 -> p
+    81:96:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1359:1374 -> p
+    97:109:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1370:1382 -> p
+    110:127:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1378:1395 -> p
+    128:131:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1393:1396 -> p
+    132:132:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1391:1391 -> p
+    133:220:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1314:1401 -> p
+    1:77:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4360:4436 -> p0
+    78:113:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4430:4465 -> p0
+    114:149:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4459:4494 -> p0
+    150:185:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4488:4523 -> p0
+    186:221:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4517:4552 -> p0
+    222:257:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4546:4581 -> p0
+    258:293:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4575:4610 -> p0
+    294:329:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4604:4639 -> p0
+    330:364:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4633:4667 -> p0
+    365:369:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4664:4668 -> p0
+    370:394:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4662:4686 -> p0
+    395:395:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4682:4682 -> p0
+    396:683:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4404:4691 -> p0
+    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1406:1418 -> q
+    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1417:1419 -> q
+    17:29:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1415:1427 -> q
+    30:33:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1425:1428 -> q
+    34:34:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1423:1423 -> q
+    35:56:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1411:1432 -> q
+    1:25:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4695:4719 -> q0
+    26:26:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4715:4715 -> q0
+    27:54:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4704:4731 -> q0
+    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1436:1448 -> r
+    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1447:1449 -> r
+    17:28:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1445:1456 -> r
+    29:31:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1455:1457 -> r
+    32:32:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1453:1453 -> r
+    33:53:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1441:1461 -> r
+    1:22:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4735:4756 -> r0
+    23:23:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4753:4753 -> r0
+    24:43:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4743:4762 -> r0
+    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1466:1478 -> s
+    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1477:1479 -> s
+    17:28:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1475:1486 -> s
+    29:31:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1485:1487 -> s
+    32:32:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1483:1483 -> s
+    33:53:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1471:1491 -> s
+    1:21:com.android.tools.r8.graph.CfCode ObjectsMethods_isNull(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4766:4786 -> s0
+    1:17:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1495:1511 -> t
+    18:18:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1507:1507 -> t
+    19:41:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1502:1524 -> t
+    1:21:com.android.tools.r8.graph.CfCode ObjectsMethods_nonNull(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4790:4810 -> t0
+    1:18:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1528:1545 -> u
+    19:33:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1541:1555 -> u
+    34:34:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1551:1551 -> u
+    35:65:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1536:1566 -> u
+    1:25:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4815:4839 -> u0
+    26:26:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4833:4833 -> u0
+    27:49:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4822:4844 -> u0
+    1:18:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1570:1587 -> v
+    19:33:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1583:1597 -> v
+    34:34:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1593:1593 -> v
+    35:65:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1578:1608 -> v
+    1:26:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4849:4874 -> v0
+    27:42:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4868:4883 -> v0
+    43:60:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4880:4897 -> v0
+    61:61:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4891:4891 -> v0
+    62:107:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4857:4902 -> v0
+    1:29:com.android.tools.r8.graph.CfCode IntegerMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1612:1640 -> w
+    1:24:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4907:4930 -> w0
+    25:25:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4926:4926 -> w0
+    26:49:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4915:4938 -> w0
+    1:31:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1644:1674 -> x
+    32:32:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1668:1668 -> x
+    33:60:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1652:1679 -> x
+    1:19:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4942:4960 -> x0
+    20:20:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4954:4954 -> x0
+    21:38:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4948:4965 -> x0
+    1:30:com.android.tools.r8.graph.CfCode IntegerMethods_divideUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1683:1712 -> y
+    1:22:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4969:4990 -> y0
+    23:23:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4987:4987 -> y0
+    24:43:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4977:4996 -> y0
+    1:19:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1716:1734 -> z
+    20:20:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1728:1728 -> z
+    21:38:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1722:1739 -> z
+    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5000:5017 -> z0
+    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5014:5028 -> z0
+    34:45:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5025:5036 -> z0
+    46:60:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5032:5046 -> z0
+    61:61:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5043:5043 -> z0
+    62:105:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5009:5052 -> z0
+com.android.tools.r8.ir.desugar.backports.BooleanMethodRewrites -> com.android.tools.r8.t.c.a0.b:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:5:void rewriteLogicalAnd(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):24:28 -> a
+    6:6:void rewriteLogicalAnd(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):27:27 -> a
+    1:5:void rewriteLogicalOr(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):36:40 -> b
+    6:6:void rewriteLogicalOr(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):39:39 -> b
+    1:5:void rewriteLogicalXor(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):48:52 -> c
+    6:6:void rewriteLogicalXor(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):51:51 -> c
+com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators -> com.android.tools.r8.t.c.a0.c:
+    1:1:com.android.tools.r8.graph.CfCode generateListOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):31:31 -> a
+    2:21:com.android.tools.r8.graph.CfCode generateFixedMethods(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.graph.DexType):40:59 -> a
+    22:22:com.android.tools.r8.graph.CfCode generateFixedMethods(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.graph.DexType):56:56 -> a
+    23:39:com.android.tools.r8.graph.CfCode generateFixedMethods(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.graph.DexType):53:69 -> a
+    1:1:com.android.tools.r8.graph.CfCode generateSetOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):35:35 -> b
+com.android.tools.r8.ir.desugar.backports.CollectionMethodRewrites -> com.android.tools.r8.t.c.a0.d:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:1:void rewriteListOfEmpty(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):25:25 -> a
+    2:8:void rewriteToCollectionMethod(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.lang.String):46:52 -> a
+    1:1:void rewriteMapOfEmpty(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):41:41 -> b
+    1:1:void rewriteSetOfEmpty(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):33:33 -> c
+com.android.tools.r8.ir.desugar.backports.FloatMethodRewrites -> com.android.tools.r8.t.c.a0.e:
+    boolean com.android.tools.r8.utils.NumberUtils.is16Bit(long) -> a
+    1:2:java.lang.Object com.android.tools.r8.utils.PredicateUtils.findFirst(java.lang.Object[],java.util.function.Predicate):12:13 -> a
+    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoBufUtilKt.getExtensionOrNull(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):12:12 -> a
+    4:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.ExtensionUtilsKt.applySingleExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):13:16 -> a
+    8:11:java.util.Set com.android.tools.r8.utils.CollectionUtils.mergeSets(java.util.Collection,java.util.Collection):13:16 -> a
+    12:13:java.util.Deque com.android.tools.r8.utils.DequeUtils.newArrayDeque(java.lang.Object):13:14 -> a
+    14:22:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmWriteUtilsKt.writeProtoBufData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext) -> a
+    23:30:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmWriteUtilsKt.writeProtoBufData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):15:22 -> a
+    31:31:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmWriteUtilsKt.writeProtoBufData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):21:21 -> a
+    32:32:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmWriteUtilsKt.writeProtoBufData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):14:14 -> a
+    33:37:boolean com.android.tools.r8.ir.optimize.ArgumentRemovalUtils.isPinned(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):16:20 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmPropertyExtension com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmExtensionNodesKt.getJvm(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty):22:22 -> a
+    39:40:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Iterable):22:23 -> a
+    41:49:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmExtension com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.ExtensionUtilsKt.singleOfType(java.util.Collection,com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):25:33 -> a
+    50:50:int com.android.tools.r8.jetbrains.kotlinx.metadata.FlagsKt.flagsOf(com.android.tools.r8.jetbrains.kotlinx.metadata.Flag[]):27:27 -> a
+    51:51:int com.android.tools.r8.jetbrains.kotlinx.metadata.FlagsKt.flagsOf(com.android.tools.r8.jetbrains.kotlinx.metadata.Flag[]):24:24 -> a
+    52:52:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(int):28:28 -> a
+    53:56:void com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites.rewriteDoubleOrElseGet(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):34:37 -> a
+    57:59:java.util.Set com.android.tools.r8.utils.SetUtils.mapIdentityHashSet(java.util.Set,java.util.function.Function):38:40 -> a
+    60:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.receiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):50:51 -> a
+    62:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.returnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):56:58 -> a
+    65:65:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):57:57 -> a
+    66:66:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):56:56 -> a
+    67:67:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):55:55 -> a
+    68:75:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):58:65 -> a
+    76:83:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:61 -> a
+    84:84:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):62:62 -> a
+    85:95:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:61 -> a
+    102:102:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):68:68 -> a
+    103:106:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:61 -> a
+    109:109:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):64:64 -> a
+    110:116:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:61 -> a
+    124:124:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):69:69 -> a
+    125:127:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.type(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):70:72 -> a
+    128:128:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.NodesKt.addTo(java.lang.Object,java.util.Collection):971:971 -> a
+    boolean com.android.tools.r8.utils.NumberUtils.is32Bit(long) -> b
+    1:2:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> b
+    3:6:void rewriteHashCode(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):23:26 -> b
+    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.returnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):42:44 -> b
+    1:4:void com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites.rewriteIntOrElseGet(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):45:48 -> c
+    1:4:void com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites.rewriteLongOrElseGet(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):56:59 -> d
+    1:4:void com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites.rewriteOrElseGet(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):23:26 -> e
+    1:8:void com.android.tools.r8.ir.desugar.backports.ObjectsMethodRewrites.rewriteRequireNonNull(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):37:44 -> f
+    1:6:void com.android.tools.r8.ir.desugar.backports.ObjectsMethodRewrites.rewriteToArraysHashCode(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):24:29 -> g
+com.android.tools.r8.ir.desugar.backports.LongMethodRewrites -> com.android.tools.r8.t.c.a0.f:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:4:void rewriteCompare(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):26:29 -> a
+    5:5:void rewriteCompare(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):28:28 -> a
+com.android.tools.r8.ir.desugar.backports.NumericMethodRewrites -> com.android.tools.r8.t.c.a0.g:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:4:void rewriteAsIdentity(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):43:46 -> a
+    1:6:void rewriteToAddInstruction(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):30:35 -> b
+    1:3:void rewriteToInvokeMath(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):19:21 -> c
+    4:6:void rewriteToInvokeMath(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.util.Set):20:22 -> c
+com.android.tools.r8.ir.optimize.AssertionsRewriter -> com.android.tools.r8.ir.optimize.c:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation defaultTransformation -> c
+    java.util.List configuration -> d
+    boolean enabled -> e
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:15:void <init>(com.android.tools.r8.graph.AppView):82:96 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.AssertionsRewriter$ConfigurationEntryWithDexString lambda$new$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.AssertionsConfiguration):95:95 -> a
+    2:2:boolean isEnabled(com.android.tools.r8.utils.InternalOptions):102:102 -> a
+    3:8:boolean com.android.tools.r8.utils.AssertionConfigurationWithDefault.isPassthroughAll():26:31 -> a
+    3:8:boolean isEnabled(com.android.tools.r8.utils.InternalOptions):103 -> a
+    9:10:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):296:297 -> a
+    11:30:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):107:126 -> a
+    11:30:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):304 -> a
+    11:30:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    31:54:boolean isDescriptorForClassOrInnerClass(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):147:170 -> a
+    31:54:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):126 -> a
+    31:54:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):304 -> a
+    31:54:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    55:59:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):127:131 -> a
+    55:59:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):304 -> a
+    55:59:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    60:61:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):114:115 -> a
+    60:61:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):304 -> a
+    60:61:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    62:67:boolean com.android.tools.r8.graph.DexString.contains(com.android.tools.r8.graph.DexString):448:453 -> a
+    62:67:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):115 -> a
+    62:67:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):304 -> a
+    62:67:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    68:71:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):116:119 -> a
+    68:71:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):304 -> a
+    68:71:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    72:95:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):111:134 -> a
+    72:95:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):304 -> a
+    72:95:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    96:105:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):305:314 -> a
+    96:105:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    106:106:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    106:106:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):314 -> a
+    106:106:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    107:109:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):318:320 -> a
+    107:109:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    110:110:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    110:110:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):325 -> a
+    110:110:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    111:116:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):326:331 -> a
+    111:116:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    117:130:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):357:370 -> a
+    117:130:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    117:130:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    131:131:java.lang.Object com.android.tools.r8.ir.code.IRCodeInstructionListIterator.previous():17:17 -> a
+    131:131:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):371 -> a
+    131:131:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    131:131:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    132:133:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):372:373 -> a
+    132:133:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    132:133:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    134:134:java.lang.Object com.android.tools.r8.ir.code.IRCodeInstructionListIterator.previous():17:17 -> a
+    134:134:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):375 -> a
+    134:134:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    134:134:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    135:135:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):376:376 -> a
+    135:135:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    135:135:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    136:136:java.lang.Object com.android.tools.r8.ir.code.IRCodeInstructionListIterator.previous():17:17 -> a
+    136:136:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):377 -> a
+    136:136:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    136:136:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    137:139:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):378:380 -> a
+    137:139:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    137:139:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    140:140:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    140:140:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):381 -> a
+    140:140:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    140:140:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    141:141:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    141:141:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):381 -> a
+    141:141:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    141:141:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    142:142:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):385:385 -> a
+    142:142:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    142:142:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    143:143:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    143:143:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):385 -> a
+    143:143:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    143:143:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    144:144:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    144:144:void rewriteKotlinAssertionEnable(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):384 -> a
+    144:144:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):332 -> a
+    144:144:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    145:145:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    145:145:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):334 -> a
+    145:145:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    146:146:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    146:146:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):334 -> a
+    146:146:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    147:156:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):337:346 -> a
+    147:156:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    157:157:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    157:157:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):346 -> a
+    157:157:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    158:158:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    158:158:void runInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):345 -> a
+    158:158:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):298 -> a
+    159:159:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):299:299 -> a
+com.android.tools.r8.ir.optimize.AssertionsRewriter$1 -> com.android.tools.r8.ir.optimize.a:
+com.android.tools.r8.ir.optimize.AssertionsRewriter$ConfigurationEntryWithDexString -> com.android.tools.r8.ir.optimize.b:
+    com.android.tools.r8.graph.DexString value -> b
+    com.android.tools.r8.AssertionsConfiguration entry -> a
+    1:1:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.AssertionsRewriter$1):32:32 -> <init>
+    2:26:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory):38:62 -> <init>
+    27:40:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory):58:71 -> <init>
+    41:49:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory):42:50 -> <init>
+    50:72:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory):46:68 -> <init>
+    1:1:com.android.tools.r8.AssertionsConfiguration access$000(com.android.tools.r8.ir.optimize.AssertionsRewriter$ConfigurationEntryWithDexString):32:32 -> a
+    1:1:com.android.tools.r8.graph.DexString access$100(com.android.tools.r8.ir.optimize.AssertionsRewriter$ConfigurationEntryWithDexString):32:32 -> b
+com.android.tools.r8.ir.optimize.AssumeDynamicTypeRemover -> com.android.tools.r8.ir.optimize.d:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set affectedValues -> c
+    java.util.Set assumeDynamicTypeInstructionsToRemove -> d
+    boolean mayHaveIntroducedTrivialPhi -> e
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.ir.code.IRCode code -> b
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):42:42 -> <init>
+    2:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):36:44 -> <init>
+    1:6:void markUsersForRemoval(com.android.tools.r8.ir.code.Value):56:61 -> a
+    7:7:void markForRemoval(com.android.tools.r8.ir.code.Assume):52:52 -> a
+    7:7:void markUsersForRemoval(com.android.tools.r8.ir.code.Value):61 -> a
+    8:22:void removeIfMarked(com.android.tools.r8.ir.code.Assume,com.android.tools.r8.ir.code.InstructionListIterator):69:83 -> a
+    23:32:com.android.tools.r8.ir.optimize.AssumeDynamicTypeRemover removeMarkedInstructions(java.util.Set):88:97 -> a
+    33:34:void finish():106:107 -> a
+    35:35:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    35:35:void finish():107 -> a
+    36:36:void finish():107:107 -> a
+    1:1:boolean mayHaveIntroducedTrivialPhi():48:48 -> b
+com.android.tools.r8.ir.optimize.Assumer -> com.android.tools.r8.ir.optimize.e:
+    void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate) -> a
+    1:1:void insertAssumeInstructions(com.android.tools.r8.ir.code.IRCode):18:18 -> a
+com.android.tools.r8.ir.optimize.BasicBlockInstructionsEquivalence -> com.android.tools.r8.ir.optimize.f:
+    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> a
+    int[] hashes -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):22:25 -> <init>
+    1:24:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):29:52 -> a
+    1:24:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
+    25:29:boolean verifyAllSuccessors(java.util.List,java.util.List):57:61 -> a
+    25:29:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):52 -> a
+    25:29:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
+    30:30:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):52:52 -> a
+    30:30:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
+    31:31:void clearComputedHash(com.android.tools.r8.ir.code.BasicBlock):74:74 -> a
+    1:12:int computeHash(com.android.tools.r8.ir.code.BasicBlock):90:101 -> b
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):16:16 -> doEquivalent
+    1:1:int doHash(java.lang.Object):16:16 -> doHash
+    2:8:int doHash(com.android.tools.r8.ir.code.BasicBlock):79:85 -> doHash
+    2:8:int doHash(java.lang.Object):16 -> doHash
+com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator -> com.android.tools.r8.ir.optimize.h:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set revisitedMethods -> b
+    boolean $assertionsDisabled -> d
+    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode mode -> c
+    1:1:void <clinit>():36:36 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):54:54 -> <init>
+    2:9:void <init>(com.android.tools.r8.graph.AppView):51:58 -> <init>
+    1:29:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):76:104 -> a
+    30:46:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):102:118 -> a
+    47:53:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):117:123 -> a
+    54:55:boolean hasLibraryOverrides(java.util.Collection):132:133 -> a
+    56:61:boolean isLibraryMethodOrLibraryMethodOverride(com.android.tools.r8.graph.DexEncodedMethod):142:147 -> a
+    62:66:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):157:161 -> a
+    67:79:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):171:183 -> a
+    67:79:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):165 -> a
+    80:90:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):181:191 -> a
+    80:90:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):165 -> a
+    91:102:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):189:200 -> a
+    91:102:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):165 -> a
+    103:103:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):172:172 -> a
+    103:103:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):165 -> a
+    104:104:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):165:165 -> a
+    105:105:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):164:164 -> a
+    106:158:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):207:259 -> a
+    159:159:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    159:159:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):259 -> a
+    160:175:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):260:275 -> a
+    176:176:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    176:176:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):274 -> a
+    177:198:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):276:297 -> a
+    199:199:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    199:199:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):297 -> a
+    200:200:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):297:297 -> a
+    201:223:java.util.Set methodsToRevisit():303:325 -> a
+    java.util.Collection codeOptimizationsForPostProcessing() -> b
+    1:6:void logResults():63:68 -> c
+    7:7:void logResults():67:67 -> c
+com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode -> com.android.tools.r8.ir.optimize.g:
+    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode COLLECT -> a
+    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode REVISIT -> b
+    1:3:void <clinit>():44:46 -> <clinit>
+    1:1:void <init>(java.lang.String,int):43:43 -> <init>
+com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization -> com.android.tools.r8.ir.optimize.i:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$WaveDoneAction waveDoneAction -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.conversion.IRConverter converter -> b
+    1:1:void <clinit>():63:63 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):120:120 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):118:123 -> <init>
+    1:9:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):128:136 -> a
+    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    10:10:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):136 -> a
+    11:36:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):138:163 -> a
+    37:61:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):290:314 -> a
+    37:61:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):163 -> a
+    62:62:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):318:318 -> a
+    62:62:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):314 -> a
+    62:62:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):163 -> a
+    63:63:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    63:63:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):318 -> a
+    63:63:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):314 -> a
+    63:63:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):163 -> a
+    64:98:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):320:354 -> a
+    64:98:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):314 -> a
+    64:98:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):163 -> a
+    99:99:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping.map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory):38:38 -> a
+    99:99:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):354 -> a
+    99:99:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):314 -> a
+    99:99:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):163 -> a
+    100:102:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):354:356 -> a
+    100:102:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):314 -> a
+    100:102:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):163 -> a
+    103:103:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):163:163 -> a
+    104:104:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):356:356 -> a
+    104:104:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):314 -> a
+    104:104:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):163 -> a
+    105:113:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):164:172 -> a
+    114:114:boolean com.android.tools.r8.ir.code.ConstNumber.getBooleanValue():74:74 -> a
+    114:114:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):173 -> a
+    115:131:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):173:189 -> a
+    132:164:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):165:197 -> a
+    165:165:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    165:165:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):201 -> a
+    166:192:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):202:228 -> a
+    193:193:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    193:193:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):229 -> a
+    194:194:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):229:229 -> a
+    195:195:void com.android.tools.r8.utils.IteratorUtils.removeIf(com.android.tools.r8.ir.code.InstructionListIterator,java.util.function.Predicate):96:96 -> a
+    195:195:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):229 -> a
+    196:247:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):235:286 -> a
+    248:248:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):129:129 -> a
+    249:249:com.android.tools.r8.graph.DexField lambda$optimize$0(com.android.tools.r8.graph.DexEncodedField):247:247 -> a
+    250:250:void lambda$optimize$1(java.util.Set,com.android.tools.r8.shaking.AppInfoWithLivenessModifier):264:264 -> a
+    251:252:void lambda$optimize$2():272:273 -> a
+    253:253:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):362:362 -> a
+    254:254:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
+    254:254:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):364 -> a
+    255:255:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
+    255:255:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):365 -> a
+    256:377:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):366:487 -> a
+    378:485:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):380:487 -> a
+    486:584:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):389:487 -> a
+    585:587:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):396:398 -> a
+    588:589:boolean com.android.tools.r8.graph.DexClass.definesStaticField(com.android.tools.r8.graph.DexField):443:444 -> a
+    588:589:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):399 -> a
+    590:590:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):400:400 -> a
+    591:595:boolean com.android.tools.r8.ir.code.Value.isDexItemBasedConstStringThatNeedsToComputeClassName():867:871 -> a
+    591:595:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):405 -> a
+    596:614:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):408:426 -> a
+    615:622:boolean isClassNameConstantOf(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.StaticPut):521:528 -> a
+    615:622:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):433 -> a
+    623:675:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):435:487 -> a
+    676:706:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):457:487 -> a
+    707:731:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):463:487 -> a
+    732:739:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):482:489 -> a
+    740:740:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):487:487 -> a
+    741:741:java.util.Set lambda$findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts$3(com.android.tools.r8.graph.DexField):451:451 -> a
+    742:743:java.util.Collection validateFinalFieldPuts(java.util.Map,java.util.Map):514:515 -> a
+    744:752:boolean isClassNameConstantOf(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Instruction):532:540 -> a
+com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult -> com.android.tools.r8.ir.optimize.i$a:
+    java.util.Map fieldsWithStaticValues -> a
+    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult EMPTY -> b
+    1:1:void <clinit>():67:67 -> <clinit>
+    1:2:void <init>(java.util.Map):72:73 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$ClassInitializerDefaultsResult empty():77:77 -> a
+    2:3:void forEachOptimizedField(java.util.function.BiConsumer):81:82 -> a
+    4:4:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    4:4:boolean hasStaticValue(com.android.tools.r8.graph.DexEncodedField):87 -> a
+    5:6:boolean hasStaticValue(com.android.tools.r8.graph.DexEncodedField):88:89 -> a
+com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$WaveDoneAction -> com.android.tools.r8.ir.optimize.j:
+    java.util.Map fieldsWithStaticValues -> a
+    1:1:void <init>(java.util.Map):99:99 -> <init>
+    2:5:void <init>(java.util.Map):97:100 -> <init>
+    1:1:void join(java.util.Map):104:104 -> a
+    2:2:void execute():110:110 -> a
+com.android.tools.r8.ir.optimize.CodeRewriter -> com.android.tools.r8.ir.optimize.k:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.utils.InternalOptions options -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():128:128 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):147:151 -> <init>
+    boolean lambda$computeConstantArrayValues$8(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
+    1:3:void insertAssumeInstructions(com.android.tools.r8.ir.code.IRCode,java.util.Collection):155:157 -> a
+    4:4:boolean lambda$removedTrivialGotos$0(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):232:232 -> a
+    5:28:void collapseTrivialGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,java.util.List):316:339 -> a
+    29:29:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):406:406 -> a
+    30:30:boolean com.android.tools.r8.utils.InternalOptions.canHaveDex2OatInliningIssue():1364:1364 -> a
+    30:30:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):406 -> a
+    31:32:boolean com.android.tools.r8.ir.code.IRCode.hasCatchHandlers():629:630 -> a
+    31:32:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):406 -> a
+    33:44:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):413:424 -> a
+    45:45:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> a
+    45:45:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):424 -> a
+    46:53:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):425:432 -> a
+    54:90:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):584:620 -> a
+    91:91:java.lang.Object com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder.setBlockNumber(int):448:448 -> a
+    91:91:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):621 -> a
+    92:106:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):622:636 -> a
+    107:107:java.lang.Object com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder.setBlockNumber(int):448:448 -> a
+    107:107:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):637 -> a
+    108:117:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):638:647 -> a
+    118:131:com.android.tools.r8.ir.optimize.CodeRewriter$Interval combineOrAddInterval(java.util.List,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):697:710 -> a
+    132:132:com.android.tools.r8.ir.optimize.CodeRewriter$Interval combineOrAddInterval(java.util.List,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):707:707 -> a
+    133:144:void tryAddToBiggestSavings(java.util.Set,java.util.PriorityQueue,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,int):720:731 -> a
+    145:152:int sizeForKeysWrittenAsIfs(com.android.tools.r8.ir.code.ValueType,java.util.Collection):736:743 -> a
+    153:153:int codeUnitMargin():750:750 -> a
+    154:154:int lambda$rewriteSwitch$1(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):912:912 -> a
+    155:169:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1045:1059 -> a
+    170:188:void collapseIfTrueTarget(com.android.tools.r8.ir.code.BasicBlock):359:377 -> a
+    170:188:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1060 -> a
+    189:189:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1062:1062 -> a
+    190:203:void collapseNonFallthroughSwitchTargets(com.android.tools.r8.ir.code.BasicBlock):383:396 -> a
+    190:203:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1063 -> a
+    204:220:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1067:1083 -> a
+    221:252:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1314:1345 -> a
+    253:290:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1344:1381 -> a
+    291:291:boolean lambda$removeInstanceOfInstructionIfTrivial$2(com.android.tools.r8.ir.code.Value):1356:1356 -> a
+    292:294:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1388:1390 -> a
+    295:295:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    295:295:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1390 -> a
+    296:298:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1390:1392 -> a
+    299:309:void removeOrReplaceByDebugLocalWrite(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):1397:1407 -> a
+    310:318:boolean isBinopWithLit8OrLit16(com.android.tools.r8.ir.code.Instruction):1528:1536 -> a
+    319:324:com.android.tools.r8.ir.code.Value binopWithLit8OrLit16NonConstant(com.android.tools.r8.ir.code.Binop):1555:1560 -> a
+    325:326:boolean lambda$shortenLiveRanges$4(com.android.tools.r8.ir.code.ConstInstruction):1623:1624 -> a
+    327:333:void lambda$shortenLiveRanges$6(java.util.Map,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):1686:1692 -> a
+    334:426:void shortenLiveRangesInsideBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,java.util.function.Supplier,java.util.Map,java.util.function.Predicate):1720:1812 -> a
+    427:474:com.android.tools.r8.ir.code.ConstInstruction[] computeConstantArrayValues(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.BasicBlock,int):1848:1895 -> a
+    475:476:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock):2399:2400 -> a
+    477:477:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2565:2565 -> a
+    478:478:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():942:942 -> a
+    478:478:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2565 -> a
+    479:480:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2565:2566 -> a
+    481:508:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,java.util.function.Supplier,com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):2576:2603 -> a
+    509:509:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():942:942 -> a
+    509:509:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,java.util.function.Supplier,com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):2607 -> a
+    510:524:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,java.util.function.Supplier,com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):2622:2636 -> a
+    525:550:boolean isBlockSupportedBySimplifyKnownBooleanCondition(com.android.tools.r8.ir.code.BasicBlock):2810:2835 -> a
+    551:553:void rewriteIfToGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2846:2848 -> a
+    554:556:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> a
+    554:556:void rewriteIfToGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2848 -> a
+    557:558:void rewriteIfToGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2849:2850 -> a
+    559:579:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):2936:2956 -> a
+    580:580:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
+    580:580:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):2956 -> a
+    581:597:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):2956:2972 -> a
+    598:598:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):2971:2971 -> a
+    599:599:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    599:599:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):2970 -> a
+    600:611:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):2970:2981 -> a
+    612:634:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):2992:3014 -> a
+    635:635:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    635:635:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3014 -> a
+    636:636:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3015:3015 -> a
+    637:671:java.util.Set computeUnneededMoves(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DebugLocalsChange,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3052:3086 -> a
+    637:671:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3019 -> a
+    672:694:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3020:3042 -> a
+    695:695:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168:168 -> a
+    695:695:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3042 -> a
+    696:700:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3097:3101 -> a
+    701:701:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    701:701:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3101 -> a
+    702:706:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3102:3106 -> a
+    707:707:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3159:3159 -> a
+    708:712:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3165:3169 -> a
+    708:712:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3161 -> a
+    713:713:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    713:713:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3169 -> a
+    713:713:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3161 -> a
+    714:714:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3174:3174 -> a
+    714:714:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3161 -> a
+    715:715:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3171:3171 -> a
+    715:715:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3161 -> a
+    716:716:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    716:716:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3171 -> a
+    716:716:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3161 -> a
+    717:717:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3171:3171 -> a
+    717:717:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3161 -> a
+    718:719:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3180:3181 -> a
+    720:720:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    720:720:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3182 -> a
+    721:721:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3184:3184 -> a
+    722:722:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    722:722:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3184 -> a
+    723:724:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3184:3185 -> a
+    725:745:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3195:3215 -> a
+    746:746:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    746:746:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3214 -> a
+    747:753:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3217:3223 -> a
+    754:792:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3221:3259 -> a
+    793:796:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.createIfBlock(int,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.IRMetadata):1409:1412 -> a
+    793:796:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3259 -> a
+    797:819:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3260:3282 -> a
+    820:820:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    820:820:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3282 -> a
+    821:823:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3283:3283 -> a
+    825:838:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3285:3298 -> a
+    839:846:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3302:3309 -> a
+    847:857:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3322:3332 -> a
+    847:857:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    858:858:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3310:3310 -> a
+    859:884:void replaceTrivialNewInstancePhis(com.android.tools.r8.ir.code.Value):3355:3380 -> a
+    859:884:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3310 -> a
+    885:889:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3311:3315 -> a
+    890:890:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3312:3312 -> a
+    891:891:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    891:891:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3312 -> a
+    892:892:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    892:892:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    892:892:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3312 -> a
+    893:893:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3312:3312 -> a
+    894:894:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3330:3330 -> a
+    894:894:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    895:895:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    895:895:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3330 -> a
+    895:895:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    896:896:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    896:896:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    896:896:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3330 -> a
+    896:896:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    897:897:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3330:3330 -> a
+    897:897:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    898:898:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3326:3326 -> a
+    898:898:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    899:899:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    899:899:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3326 -> a
+    899:899:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    900:900:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    900:900:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    900:900:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3326 -> a
+    900:900:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    901:901:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3326:3326 -> a
+    901:901:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3309 -> a
+    902:908:void recursiveAddOperands(com.android.tools.r8.ir.code.Phi,java.util.Set,java.util.Set):3336:3342 -> a
+    1:1:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):171:171 -> b
+    2:974:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():0:972 -> b
+    2:974:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):173 -> b
+    975:997:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):175:197 -> b
+    998:998:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1133:1133 -> b
+    998:998:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):209 -> b
+    999:1000:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):212:213 -> b
+    1001:1001:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> b
+    1001:1001:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):213 -> b
+    1002:1005:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):213:216 -> b
+    1006:1007:boolean isFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):304:305 -> b
+    1008:1017:void unlinkTrivialGotoBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):344:353 -> b
+    1018:1018:boolean lambda$shortenLiveRanges$5(com.android.tools.r8.ir.code.ConstInstruction):1632:1632 -> b
+    1019:1024:boolean isCSEInstructionCandidate(com.android.tools.r8.ir.code.Instruction):2191:2196 -> b
+    1025:1025:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2212:2212 -> b
+    1026:1032:boolean hasCSECandidate(com.android.tools.r8.ir.code.IRCode,int):2200:2206 -> b
+    1026:1032:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2213 -> b
+    1033:1035:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2215:2217 -> b
+    1036:1036:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> b
+    1036:1036:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2217 -> b
+    1037:1050:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2218:2231 -> b
+    1051:1060:boolean shareCatchHandlers(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2178:2187 -> b
+    1051:1060:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2232 -> b
+    1061:1076:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2233:2248 -> b
+    1:1:java.util.Map lambda$shortenLiveRangesInsideBlock$7(com.android.tools.r8.ir.code.BasicBlock):1806:1806 -> c
+    2:2:com.android.tools.r8.ir.code.DominatorTree lambda$redundantConstNumberRemoval$10(com.android.tools.r8.ir.code.IRCode):2437:2437 -> c
+    3:3:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> c
+    3:3:com.android.tools.r8.ir.code.DominatorTree lambda$redundantConstNumberRemoval$10(com.android.tools.r8.ir.code.IRCode):2437 -> c
+    4:4:boolean lambda$logArgumentTypes$11(com.android.tools.r8.ir.code.Instruction):3204:3204 -> c
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2541:2541 -> d
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$9(com.android.tools.r8.ir.code.IRCode):2436 -> d
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.<init>():119:119 -> d
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2541 -> d
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$9(com.android.tools.r8.ir.code.IRCode):2436 -> d
+    3:16:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2544:2557 -> d
+    3:16:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$9(com.android.tools.r8.ir.code.IRCode):2436 -> d
+    1:1:com.android.tools.r8.ir.code.DominatorTree lambda$shortenLiveRanges$3(com.android.tools.r8.ir.code.IRCode):1611:1611 -> e
+    2:2:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> e
+    2:2:com.android.tools.r8.ir.code.DominatorTree lambda$shortenLiveRanges$3(com.android.tools.r8.ir.code.IRCode):1611 -> e
+    1:47:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2647:2693 -> f
+    48:49:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createConstNull(com.android.tools.r8.graph.DebugLocalInfo):1099:1100 -> f
+    48:49:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2693 -> f
+    50:61:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2694:2705 -> f
+    1:51:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2425:2475 -> g
+    52:52:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():942:942 -> g
+    52:52:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2476 -> g
+    53:62:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2478:2487 -> g
+    63:63:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2486:2486 -> g
+    64:64:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():942:942 -> g
+    64:64:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2493 -> g
+    65:65:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2496:2496 -> g
+    66:79:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2495:2508 -> g
+    80:80:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2507:2507 -> g
+    81:81:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():942:942 -> g
+    81:81:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2514 -> g
+    82:82:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2517:2517 -> g
+    83:102:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2516:2535 -> g
+    1:31:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1179:1209 -> h
+    32:32:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> h
+    32:32:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1209 -> h
+    33:33:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1210:1210 -> h
+    34:34:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> h
+    34:34:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1211 -> h
+    35:40:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1213:1218 -> h
+    41:57:com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult removeCheckCastInstructionIfTrivial(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):1250:1266 -> h
+    41:57:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1218 -> h
+    58:58:boolean com.android.tools.r8.graph.DexType.isFloatType():229:229 -> h
+    58:58:com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult removeCheckCastInstructionIfTrivial(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):1266 -> h
+    58:58:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1218 -> h
+    59:98:com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult removeCheckCastInstructionIfTrivial(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):1267:1306 -> h
+    59:98:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1218 -> h
+    99:107:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1219:1227 -> h
+    108:108:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1133:1133 -> h
+    108:108:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1239 -> h
+    109:113:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1240:1244 -> h
+    1:13:boolean removedTrivialGotos(com.android.tools.r8.ir.code.IRCode):220:232 -> i
+    14:20:boolean removedTrivialGotos(com.android.tools.r8.ir.code.IRCode):229:235 -> i
+    1:1:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> j
+    1:1:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):2901 -> j
+    2:26:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):2902:2926 -> j
+    27:27:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> j
+    27:27:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):2927 -> j
+    28:28:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> j
+    28:28:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):2928 -> j
+    29:29:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):2932:2932 -> j
+    1:1:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1111:1111 -> k
+    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> k
+    2:2:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1111 -> k
+    3:29:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1111:1137 -> k
+    30:30:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1090:1090 -> k
+    30:30:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1139 -> k
+    31:31:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1089:1089 -> k
+    31:31:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1139 -> k
+    32:38:com.android.tools.r8.graph.DexType getArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1100:1106 -> k
+    32:38:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1093 -> k
+    32:38:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1139 -> k
+    39:39:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1093:1093 -> k
+    39:39:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1139 -> k
+    40:44:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1092:1096 -> k
+    40:44:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1139 -> k
+    45:65:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1140:1160 -> k
+    66:66:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1133:1133 -> k
+    66:66:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1161 -> k
+    67:68:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1162:1163 -> k
+    69:69:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1133:1133 -> k
+    69:69:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1164 -> k
+    70:71:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1166:1167 -> k
+    72:72:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> k
+    72:72:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1167 -> k
+    73:75:boolean rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1167:1169 -> k
+    1:14:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):847:860 -> l
+    15:22:com.android.tools.r8.ir.optimize.SwitchCaseEliminator removeUnnecessarySwitchCases(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):1008:1015 -> l
+    15:22:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):862 -> l
+    23:25:boolean switchCaseIsUnreachable(com.android.tools.r8.ir.code.IntSwitch,int):1034:1036 -> l
+    23:25:com.android.tools.r8.ir.optimize.SwitchCaseEliminator removeUnnecessarySwitchCases(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):1019 -> l
+    23:25:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):862 -> l
+    26:34:com.android.tools.r8.ir.optimize.SwitchCaseEliminator removeUnnecessarySwitchCases(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):1020:1028 -> l
+    26:34:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):862 -> l
+    35:59:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):864:888 -> l
+    60:60:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> l
+    60:60:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):888 -> l
+    61:88:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):889:916 -> l
+    89:89:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> l
+    89:89:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):916 -> l
+    90:104:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):917:931 -> l
+    105:105:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> l
+    105:105:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):931 -> l
+    106:142:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):933:969 -> l
+    143:143:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> l
+    143:143:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):969 -> l
+    144:144:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):971:971 -> l
+    145:176:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):755:786 -> l
+    145:176:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):972 -> l
+    177:177:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> l
+    177:177:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):786 -> l
+    177:177:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):972 -> l
+    178:233:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):787:842 -> l
+    178:233:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):972 -> l
+    234:258:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):976:1000 -> l
+    259:259:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> l
+    259:259:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):1000 -> l
+    260:263:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):1000:1003 -> l
+    1:58:void rewriteThrowNullPointerException(com.android.tools.r8.ir.code.IRCode):243:300 -> m
+    1:17:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3116:3132 -> n
+    18:18:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> n
+    18:18:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3139 -> n
+    19:34:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3140:3155 -> n
+    1:54:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1610:1663 -> o
+    55:55:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> o
+    55:55:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1663 -> o
+    56:56:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> o
+    56:56:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1664 -> o
+    57:71:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1665:1679 -> o
+    72:72:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpIfFloatBug():1325:1325 -> o
+    72:72:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1680 -> o
+    73:76:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1680:1683 -> o
+    77:78:void forEachUse(com.android.tools.r8.ir.code.Instruction,java.util.function.Consumer):1710:1711 -> o
+    77:78:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1683 -> o
+    79:88:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1697:1706 -> o
+    1:1:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):1925:1925 -> p
+    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> p
+    2:2:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):1925 -> p
+    3:11:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):1928:1936 -> p
+    12:28:boolean allowNewFilledArrayConstruction(com.android.tools.r8.ir.code.Instruction):1901:1917 -> p
+    12:28:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):1937 -> p
+    29:45:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):1940:1956 -> p
+    46:63:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):1955:1972 -> p
+    64:80:short[] computeArrayFilledData(com.android.tools.r8.ir.code.ConstInstruction[],int,int):1821:1837 -> p
+    64:80:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):1973 -> p
+    81:127:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):1977:2023 -> p
+    1:1:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2252:2252 -> q
+    2:7:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2258:2263 -> q
+    2:7:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    8:22:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2880:2894 -> q
+    8:22:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2264 -> q
+    8:22:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    23:25:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> q
+    23:25:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2895 -> q
+    23:25:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2264 -> q
+    23:25:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    26:26:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2896:2896 -> q
+    26:26:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2264 -> q
+    26:26:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    27:38:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2854:2865 -> q
+    27:38:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    27:38:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    39:52:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():27:40 -> q
+    39:52:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2865 -> q
+    39:52:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    39:52:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    53:53:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():38:38 -> q
+    53:53:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2865 -> q
+    53:53:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    53:53:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    54:54:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():36:36 -> q
+    54:54:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2865 -> q
+    54:54:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    54:54:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    55:55:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():34:34 -> q
+    55:55:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2865 -> q
+    55:55:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    55:55:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    56:56:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():32:32 -> q
+    56:56:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2865 -> q
+    56:56:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    56:56:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    57:57:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2865:2865 -> q
+    57:57:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    57:57:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    58:60:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> q
+    58:60:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2866 -> q
+    58:60:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    58:60:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    61:65:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2867:2871 -> q
+    61:65:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    61:65:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    66:68:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> q
+    66:68:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2872 -> q
+    66:68:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    66:68:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    69:69:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2873:2873 -> q
+    69:69:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2265 -> q
+    69:69:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    70:72:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2739:2741 -> q
+    70:72:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2267 -> q
+    70:72:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    73:73:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():942:942 -> q
+    73:73:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2741 -> q
+    73:73:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2267 -> q
+    73:73:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    74:108:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2742:2776 -> q
+    74:108:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2267 -> q
+    74:108:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    109:109:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> q
+    109:109:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2777 -> q
+    109:109:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2267 -> q
+    109:109:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    110:131:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2779:2800 -> q
+    110:131:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2267 -> q
+    110:131:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    132:155:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2272:2295 -> q
+    132:155:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    156:156:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    156:156:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2296 -> q
+    156:156:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    157:171:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2299:2313 -> q
+    157:171:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    172:172:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    172:172:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2314 -> q
+    172:172:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    173:173:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2305:2305 -> q
+    173:173:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    174:174:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    174:174:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2306 -> q
+    174:174:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    175:185:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2321:2331 -> q
+    175:185:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    186:186:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    186:186:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2332 -> q
+    186:186:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    187:202:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2335:2350 -> q
+    187:202:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    203:203:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    203:203:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2351 -> q
+    203:203:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    204:204:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2341:2341 -> q
+    204:204:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    205:205:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    205:205:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2342 -> q
+    205:205:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    206:210:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2361:2365 -> q
+    206:210:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    211:211:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    211:211:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2366 -> q
+    211:211:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    212:212:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2368:2368 -> q
+    212:212:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    213:213:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    213:213:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2369 -> q
+    213:213:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    214:217:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2374:2377 -> q
+    214:217:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    218:218:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    218:218:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2379 -> q
+    218:218:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    219:219:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2380:2380 -> q
+    219:219:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    220:220:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2404:2404 -> q
+    220:220:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2381 -> q
+    220:220:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    221:223:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2388:2390 -> q
+    221:223:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    224:224:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> q
+    224:224:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2390 -> q
+    224:224:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    225:228:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2390:2393 -> q
+    225:228:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2253 -> q
+    1:12:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2060:2071 -> r
+    13:35:boolean hasLocalOrLineChangeBetween(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):2029:2051 -> r
+    13:35:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2073 -> r
+    36:49:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2074:2087 -> r
+    50:50:boolean hasLocalOrLineChangeBetween(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):2056:2056 -> r
+    50:50:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2073 -> r
+    1:30:void splitRangeInvokeConstants(com.android.tools.r8.ir.code.IRCode):1415:1444 -> s
+    1:31:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1455:1485 -> t
+    32:32:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> t
+    32:32:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1485 -> t
+    33:51:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1485:1503 -> t
+    52:65:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1571:1584 -> t
+    52:65:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1504 -> t
+    66:66:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):449:449 -> t
+    66:66:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1584 -> t
+    66:66:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1504 -> t
+    67:67:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1585:1585 -> t
+    67:67:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1504 -> t
+    68:68:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> t
+    68:68:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1585 -> t
+    68:68:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1504 -> t
+    69:76:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1586:1593 -> t
+    69:76:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1504 -> t
+    77:1990:boolean com.android.tools.r8.ir.code.BasicBlock.hasPathTo(com.android.tools.r8.ir.code.BasicBlock):0:1913 -> t
+    77:1990:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1596 -> t
+    77:1990:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1504 -> t
+    1991:1991:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1599:1599 -> t
+    1991:1991:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1504 -> t
+    1992:1997:com.android.tools.r8.ir.code.Value binopWithLit8OrLit16Constant(com.android.tools.r8.ir.code.Instruction):1542:1547 -> t
+    1992:1997:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1506 -> t
+    1998:2008:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1507:1517 -> t
+    2009:2009:com.android.tools.r8.ir.code.Value binopWithLit8OrLit16Constant(com.android.tools.r8.ir.code.Instruction):1549:1549 -> t
+    2009:2009:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1506 -> t
+    2010:2010:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1523:1523 -> t
+    1:40:void workaroundNumberConversionRegisterAllocationBug(com.android.tools.r8.ir.code.IRCode):3442:3481 -> u
+com.android.tools.r8.ir.optimize.CodeRewriter$1 -> com.android.tools.r8.ir.optimize.k$a:
+com.android.tools.r8.ir.optimize.CodeRewriter$CSEExpressionEquivalence -> com.android.tools.r8.ir.optimize.k$b:
+    com.android.tools.r8.utils.InternalOptions options -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():2094:2094 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.optimize.CodeRewriter$1):2094:2094 -> <init>
+    2:3:void <init>(com.android.tools.r8.utils.InternalOptions):2098:2099 -> <init>
+    1:6:boolean identicalValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):2158:2163 -> a
+    7:11:int getHashCode(com.android.tools.r8.ir.code.Value):2169:2173 -> a
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):2094:2094 -> doEquivalent
+    2:2:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2107:2107 -> doEquivalent
+    2:2:boolean doEquivalent(java.lang.Object,java.lang.Object):2094 -> doEquivalent
+    3:3:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1297:1297 -> doEquivalent
+    3:3:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2107 -> doEquivalent
+    3:3:boolean doEquivalent(java.lang.Object,java.lang.Object):2094 -> doEquivalent
+    4:19:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2111:2126 -> doEquivalent
+    4:19:boolean doEquivalent(java.lang.Object,java.lang.Object):2094 -> doEquivalent
+    1:1:int doHash(java.lang.Object):2094:2094 -> doHash
+    2:16:int doHash(com.android.tools.r8.ir.code.Instruction):2137:2151 -> doHash
+    2:16:int doHash(java.lang.Object):2094 -> doHash
+com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder -> com.android.tools.r8.ir.optimize.k$c:
+    com.android.tools.r8.ir.code.BasicBlock fallthrough -> g
+    com.android.tools.r8.ir.code.BasicBlock target -> f
+    com.android.tools.r8.ir.code.Value left -> d
+    com.android.tools.r8.ir.code.IRCode code -> c
+    boolean $assertionsDisabled -> h
+    int right -> e
+    1:1:void <clinit>():513:513 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRCode):521:522 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setLeft(com.android.tools.r8.ir.code.Value):531:531 -> a
+    2:2:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setRight(int):536:536 -> a
+    3:3:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setFallthrough(com.android.tools.r8.ir.code.BasicBlock):546:546 -> a
+    4:9:com.android.tools.r8.ir.code.BasicBlock build():551:556 -> a
+    10:10:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    10:10:com.android.tools.r8.ir.code.BasicBlock build():556 -> a
+    11:16:com.android.tools.r8.ir.code.BasicBlock build():557:562 -> a
+    17:20:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.createIfBlock(int,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.IRMetadata):1409:1412 -> a
+    17:20:com.android.tools.r8.ir.code.BasicBlock build():562 -> a
+    21:23:com.android.tools.r8.ir.code.BasicBlock build():564:566 -> a
+    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setTarget(com.android.tools.r8.ir.code.BasicBlock):541:541 -> b
+com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult -> com.android.tools.r8.ir.optimize.k$d:
+    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult FALSE -> c
+    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult TRUE -> b
+    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult UNKNOWN -> a
+    1:3:void <clinit>():131:133 -> <clinit>
+    1:1:void <init>(java.lang.String,int):130:130 -> <init>
+com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder -> com.android.tools.r8.ir.optimize.k$e:
+    com.android.tools.r8.ir.code.Position position -> b
+    int blockNumber -> a
+    1:2:void <init>(com.android.tools.r8.ir.code.Position):441:442 -> <init>
+com.android.tools.r8.ir.optimize.CodeRewriter$Interval -> com.android.tools.r8.ir.optimize.k$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList keys -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():650:650 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList[]):654:654 -> <init>
+    2:8:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList[]):652:658 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList access$000(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):650:650 -> a
+    2:2:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode):688:688 -> a
+    1:1:int getMax():667:667 -> b
+    1:1:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):676 -> b
+    2:2:int getMin():663:663 -> b
+    2:2:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):676 -> b
+    3:3:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):677:677 -> b
+    4:4:int com.android.tools.r8.ir.code.IntSwitch.baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):114:114 -> b
+    4:4:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):681 -> b
+    5:5:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):681:681 -> b
+    6:6:int com.android.tools.r8.ir.code.IntSwitch.basePackedSize(com.android.tools.r8.utils.InternalOutputMode):103:103 -> b
+    6:6:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):683 -> b
+    7:7:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):683:683 -> b
+    8:8:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):671:671 -> b
+    9:9:int getMax():667:667 -> b
+    9:9:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):671 -> b
+    10:10:int getMin():663:663 -> b
+    10:10:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):671 -> b
+    11:12:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):671:672 -> b
+com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult -> com.android.tools.r8.ir.optimize.k$g:
+    com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult NO_REMOVALS -> a
+    com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult REMOVED_CAST_DO_NARROW -> b
+    1:2:void <clinit>():1174:1175 -> <clinit>
+    1:1:void <init>(java.lang.String,int):1173:1173 -> <init>
+com.android.tools.r8.ir.optimize.CodeRewriter$SCC -> com.android.tools.r8.ir.optimize.k$h:
+    java.util.Deque unassignedStack -> d
+    java.util.Set unassignedSet -> c
+    java.util.List components -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap discoverTime -> b
+    java.util.Deque preorderStack -> e
+    boolean $assertionsDisabled -> g
+    int currentTime -> a
+    1:1:void <clinit>():3387:3387 -> <clinit>
+    1:8:void <init>():3387:3394 -> <init>
+    9:9:void <init>(com.android.tools.r8.ir.optimize.CodeRewriter$1):3387:3387 -> <init>
+    1:3:java.util.List computeSCC(com.android.tools.r8.ir.code.Value):3397:3399 -> a
+    1:33:void dfs(com.android.tools.r8.ir.code.Value):3403:3435 -> b
+com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder -> com.android.tools.r8.ir.optimize.k$i:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap keyToTarget -> d
+    com.android.tools.r8.ir.code.BasicBlock fallthrough -> e
+    com.android.tools.r8.ir.code.Value value -> c
+    1:1:void <init>(com.android.tools.r8.ir.code.Position):459:459 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.code.Position):455:455 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder setValue(com.android.tools.r8.ir.code.Value):468:468 -> a
+    2:2:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder addKeyAndTarget(int,com.android.tools.r8.ir.code.BasicBlock):473:473 -> a
+    3:3:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder setFallthrough(com.android.tools.r8.ir.code.BasicBlock):478:478 -> a
+    4:25:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):484:505 -> a
+    26:29:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.createSwitchBlock(int,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.IRMetadata):1439:1442 -> a
+    26:29:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):505 -> a
+    30:31:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):506:507 -> a
+    32:32:java.lang.Integer lambda$build$0(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,com.android.tools.r8.ir.code.BasicBlock):496:496 -> a
+    1:1:java.lang.Integer lambda$build$1(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,com.android.tools.r8.ir.code.BasicBlock):502:502 -> b
+com.android.tools.r8.ir.optimize.ConstantCanonicalizer -> com.android.tools.r8.ir.optimize.m:
+    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> a
+    int numberOfEffectivelyFinalFieldCanonicalization -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfCanonicalizationCandidatesPerMethod -> g
+    int numberOfDexItemBasedConstStringCanonicalization -> d
+    boolean $assertionsDisabled -> h
+    int numberOfConstClassCanonicalization -> e
+    int numberOfConstNumberCanonicalization -> b
+    int numberOfConstStringCanonicalization -> c
+    1:1:void <clinit>():44:44 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.CodeRewriter):57:57 -> <init>
+    2:14:void <init>(com.android.tools.r8.ir.optimize.CodeRewriter):50:62 -> <init>
+    1:3:void logResults():67:69 -> a
+    4:7:void logResults():68:71 -> a
+    8:12:void logResults():70:74 -> a
+    13:17:void logResults():72:76 -> a
+    18:23:void logResults():75:80 -> a
+    24:30:void logResults():77:83 -> a
+    31:33:void lambda$logResults$0(java.lang.Long,java.lang.Integer):84:84 -> a
+    34:36:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):90:92 -> a
+    37:37:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):184:184 -> a
+    37:37:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):92 -> a
+    38:75:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):126:163 -> a
+    76:77:boolean constantUsedByInvokeRange(com.android.tools.r8.ir.code.Instruction):280:281 -> a
+    76:77:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):171 -> a
+    78:152:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):174:248 -> a
+    153:176:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):222:245 -> a
+    177:182:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):234:239 -> a
+    183:183:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):238:238 -> a
+    184:218:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):216:250 -> a
+    219:230:void insertCanonicalizedConstant(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):265:276 -> a
+    219:230:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):251 -> a
+    231:240:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):252:261 -> a
+    241:241:java.util.List lambda$canonicalize$1(com.android.tools.r8.ir.code.Instruction):175:175 -> a
+    242:242:boolean lambda$canonicalize$2(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):192:192 -> a
+    243:243:int lambda$canonicalize$4(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):202:202 -> a
+    1:1:boolean lambda$canonicalize$3(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):201:201 -> b
+com.android.tools.r8.ir.optimize.ConstantCanonicalizer$1 -> com.android.tools.r8.ir.optimize.l:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():94:94 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.ConstantCanonicalizer):94:94 -> <init>
+    1:1:boolean equals(java.lang.Object,java.lang.Object):94:94 -> a
+    2:4:boolean equals(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):119:121 -> a
+    2:4:boolean equals(java.lang.Object,java.lang.Object):94 -> a
+    5:5:int hashCode(java.lang.Object):94:94 -> a
+    6:20:int hashCode(com.android.tools.r8.ir.code.Instruction):98:112 -> a
+    6:20:int hashCode(java.lang.Object):94 -> a
+    21:28:int hashCode(com.android.tools.r8.ir.code.Instruction):103:110 -> a
+    21:28:int hashCode(java.lang.Object):94 -> a
+    29:29:int hashCode(com.android.tools.r8.ir.code.Instruction):108:108 -> a
+    29:29:int hashCode(java.lang.Object):94 -> a
+    30:30:int hashCode(com.android.tools.r8.ir.code.Instruction):101:101 -> a
+    30:30:int hashCode(java.lang.Object):94 -> a
+com.android.tools.r8.ir.optimize.DeadCodeRemover -> com.android.tools.r8.ir.optimize.n:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter):33:35 -> <init>
+    1:12:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):39:50 -> a
+    13:26:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):116:129 -> a
+    13:26:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):51 -> a
+    27:31:void updateWorklist(java.util.Queue,com.android.tools.r8.ir.code.Instruction):93:97 -> a
+    27:31:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):132 -> a
+    27:31:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):51 -> a
+    32:34:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):136:138 -> a
+    32:34:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):51 -> a
+    35:42:void removeDeadPhis(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):102:109 -> a
+    35:42:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):52 -> a
+    43:46:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.Timing):54:57 -> a
+    47:53:void updateWorklist(java.util.Queue,com.android.tools.r8.ir.code.Value):81:87 -> a
+    54:57:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):144:147 -> a
+    58:83:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):176:201 -> a
+    58:83:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):148 -> a
+    84:84:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    84:84:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):201 -> a
+    84:84:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):148 -> a
+    85:92:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):201:208 -> a
+    85:92:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):148 -> a
+    93:112:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):149:168 -> a
+    1:9:boolean verifyNoDeadCode(com.android.tools.r8.ir.code.IRCode):61:69 -> b
+    10:15:boolean verifyNoDeadCode(com.android.tools.r8.ir.code.IRCode):67:72 -> b
+    16:16:boolean verifyNoDeadCode(com.android.tools.r8.ir.code.IRCode):71:71 -> b
+com.android.tools.r8.ir.optimize.DefaultInliningOracle -> com.android.tools.r8.ir.optimize.o:
+    com.android.tools.r8.ir.conversion.MethodProcessor methodProcessor -> d
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> i
+    int instructionAllowance -> h
+    com.android.tools.r8.ir.optimize.Inliner inliner -> b
+    int inliningInstructionLimit -> g
+    com.android.tools.r8.graph.DexEncodedMethod method -> c
+    java.util.function.Predicate isProcessedConcurrently -> e
+    com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy reasonStrategy -> f
+    1:1:void <clinit>():50:50 -> <clinit>
+    1:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int):70:79 -> <init>
+    com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod) -> a
+    boolean isForcedInliningOracle() -> a
+    1:13:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):96:108 -> a
+    1:13:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):331 -> a
+    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    14:14:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):108 -> a
+    14:14:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):331 -> a
+    15:30:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):109:124 -> a
+    15:30:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):331 -> a
+    31:41:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):335:345 -> a
+    42:51:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):344:353 -> a
+    52:54:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):97:99 -> a
+    52:54:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):331 -> a
+    55:59:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):144:148 -> a
+    60:60:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    60:60:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):148 -> a
+    61:71:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):149:159 -> a
+    72:100:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):155:183 -> a
+    101:101:java.lang.Boolean lambda$canInlineStaticInvoke$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods):157:157 -> a
+    102:110:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):193:201 -> a
+    111:111:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    111:111:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):201 -> a
+    112:186:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):201:275 -> a
+    187:187:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):274:274 -> a
+    188:192:boolean inlineeRefersToClassesNotInMainDex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):280:284 -> a
+    193:193:boolean inlineeRefersToClassesNotInMainDex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):283:283 -> a
+    194:194:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):290:290 -> a
+    195:206:int computeInstructionLimit(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):299:310 -> a
+    195:206:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):291 -> a
+    207:207:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):292:292 -> a
+    208:208:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType):321:321 -> a
+    209:229:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeWithReceiver(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):362:382 -> a
+    230:234:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):395:399 -> a
+    235:237:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):405:407 -> a
+    238:238:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
+    238:238:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):407 -> a
+    239:239:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):409:409 -> a
+    240:240:void com.android.tools.r8.ir.optimize.Inliner.performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):844:844 -> a
+    240:240:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):409 -> a
+    241:241:void com.android.tools.r8.ir.optimize.Inliner.performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):839:839 -> a
+    241:241:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):409 -> a
+    242:253:boolean allowInliningOfInvokeInInlinee(com.android.tools.r8.ir.optimize.Inliner$InlineAction,int,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):418:429 -> a
+    254:345:boolean canInlineInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):445:536 -> a
+    346:351:boolean stillHasBudget(com.android.tools.r8.ir.optimize.Inliner$InlineAction,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):543:548 -> a
+    352:352:boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):560:560 -> a
+    353:355:boolean willExceedInstructionBudget(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):571:573 -> a
+    353:355:boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):563 -> a
+    356:356:boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):564:564 -> a
+    357:373:boolean willExceedControlFlowResolutionBlocksBudget(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):658:674 -> a
+    357:373:boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):565 -> a
+    374:406:boolean willExceedMonitorEnterValuesBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):593:625 -> a
+    407:407:void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason):684:684 -> a
+com.android.tools.r8.ir.optimize.Devirtualizer -> com.android.tools.r8.ir.optimize.p:
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():46:46 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView):50:51 -> <init>
+    1:3:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):55:57 -> a
+    4:4:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> a
+    4:4:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):57 -> a
+    5:31:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):58:84 -> a
+    32:32:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Assume.getAliasForOutValue():199:199 -> a
+    32:32:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):84 -> a
+    33:59:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):85:111 -> a
+    60:72:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):110:122 -> a
+    73:76:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):265:268 -> a
+    73:76:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):121 -> a
+    77:77:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    77:77:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):268 -> a
+    77:77:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):121 -> a
+    78:98:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):270:290 -> a
+    78:98:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):121 -> a
+    99:99:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    99:99:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):290 -> a
+    99:99:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):121 -> a
+    100:106:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):292:298 -> a
+    100:106:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):121 -> a
+    107:109:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):124:126 -> a
+    110:110:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
+    110:110:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):125 -> a
+    111:124:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):127:140 -> a
+    125:125:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    125:125:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):140 -> a
+    126:156:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):142:172 -> a
+    157:176:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):171:190 -> a
+    177:177:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    177:177:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):197 -> a
+    178:200:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):199:221 -> a
+    201:201:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> a
+    201:201:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):221 -> a
+    202:217:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):223:238 -> a
+    218:229:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):237:248 -> a
+    230:230:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    230:230:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):248 -> a
+    231:233:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):248:250 -> a
+    234:235:boolean canInvokeTargetWithInvokeVirtual(com.android.tools.r8.graph.DexEncodedMethod):302:303 -> a
+    236:242:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):307:313 -> a
+    243:243:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    243:243:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):313 -> a
+    244:244:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):103:103 -> a
+    244:244:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):318 -> a
+    245:248:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):321:324 -> a
+com.android.tools.r8.ir.optimize.DynamicTypeOptimization -> com.android.tools.r8.ir.optimize.q:
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView):35:36 -> <init>
+    1:3:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):42:44 -> a
+    4:82:void insertAssumeDynamicTypeInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):54:132 -> a
+    4:82:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):45 -> a
+    83:88:void insertAssumeDynamicTypeInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):131:136 -> a
+    83:88:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):45 -> a
+    89:104:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement computeDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):161:176 -> a
+    1:10:com.android.tools.r8.ir.analysis.type.TypeLatticeElement computeDynamicReturnType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):147:156 -> b
+com.android.tools.r8.ir.optimize.ForcedInliningOracle -> com.android.tools.r8.ir.optimize.r:
+    java.util.Map invokesToInline -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.DexEncodedMethod method -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):31:34 -> <init>
+    boolean allowInliningOfInvokeInInlinee(com.android.tools.r8.ir.optimize.Inliner$InlineAction,int,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    boolean canInlineInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback) -> a
+    boolean isForcedInliningOracle() -> a
+    void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason) -> a
+    boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    boolean stillHasBudget(com.android.tools.r8.ir.optimize.Inliner$InlineAction,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType):53:57 -> a
+    6:18:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):72:84 -> a
+    6:18:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):67 -> a
+    19:22:com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod):130:133 -> a
+com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer -> com.android.tools.r8.ir.optimize.t:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfCanonicalizationCandidatesPerMethod -> e
+    boolean $assertionsDisabled -> f
+    int numberOfProgramCallCanonicalization -> d
+    int numberOfLibraryCallCanonicalization -> c
+    1:1:void <clinit>():54:54 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):66:66 -> <init>
+    2:12:void <init>(com.android.tools.r8.graph.AppView):62:72 -> <init>
+    1:3:void logResults():77:79 -> a
+    4:7:void logResults():78:81 -> a
+    8:12:void logResults():80:84 -> a
+    13:16:void lambda$logResults$0(java.lang.Long,java.lang.Integer):87:90 -> a
+    17:17:void lambda$logResults$0(java.lang.Long,java.lang.Integer):86:86 -> a
+    18:18:void canonicalize(com.android.tools.r8.ir.code.IRCode):95:95 -> a
+    19:19:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):184:184 -> a
+    19:19:void canonicalize(com.android.tools.r8.ir.code.IRCode):95 -> a
+    20:33:void canonicalize(com.android.tools.r8.ir.code.IRCode):113:126 -> a
+    34:40:boolean isIdempotentLibraryMethodInvoke(com.android.tools.r8.ir.code.InvokeMethod):256:262 -> a
+    34:40:void canonicalize(com.android.tools.r8.ir.code.IRCode):130 -> a
+    41:91:void canonicalize(com.android.tools.r8.ir.code.IRCode):131:181 -> a
+    92:92:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMap():283:283 -> a
+    92:92:void canonicalize(com.android.tools.r8.ir.code.IRCode):184 -> a
+    93:159:void canonicalize(com.android.tools.r8.ir.code.IRCode):186:252 -> a
+    160:160:java.util.List lambda$canonicalize$1(com.android.tools.r8.ir.code.InvokeMethod):171:171 -> a
+    161:161:boolean lambda$canonicalize$2(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):188:188 -> a
+    162:162:int lambda$canonicalize$4(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):196:196 -> a
+    163:173:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):199:209 -> a
+    174:182:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):208:216 -> a
+    183:183:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
+    183:183:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):211 -> a
+    184:187:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):220:223 -> a
+    188:198:void insertCanonicalizedInvokeWithoutInValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Invoke):290:300 -> a
+    188:198:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):225 -> a
+    199:200:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):227:228 -> a
+    201:219:void insertCanonicalizedInvokeWithInValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Invoke):267:285 -> a
+    220:220:boolean lambda$insertCanonicalizedInvokeWithInValues$6(com.android.tools.r8.ir.code.Instruction):280:280 -> a
+    1:1:boolean lambda$canonicalize$3(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):195:195 -> b
+com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer$1 -> com.android.tools.r8.ir.optimize.s:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():97:97 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer):97:97 -> <init>
+    1:1:boolean equals(java.lang.Object,java.lang.Object):97:97 -> a
+    2:6:boolean equals(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InvokeMethod):105:109 -> a
+    2:6:boolean equals(java.lang.Object,java.lang.Object):97 -> a
+    7:7:int hashCode(java.lang.Object):97:97 -> a
+    8:8:int hashCode(com.android.tools.r8.ir.code.InvokeMethod):100:100 -> a
+    8:8:int hashCode(java.lang.Object):97 -> a
+com.android.tools.r8.ir.optimize.Inliner -> com.android.tools.r8.ir.optimize.u:
+    java.util.Set doubleInlineCallers -> g
+    com.android.tools.r8.shaking.MainDexClasses mainDexClasses -> e
+    java.util.Set doubleInlineSelectedTargets -> h
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger lambdaMerger -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.ir.conversion.LensCodeRewriter lensCodeRewriter -> d
+    java.util.Map doubleInlineeCandidates -> i
+    boolean applyDoubleInlining -> f
+    java.util.Set blacklist -> b
+    1:1:void <clinit>():75:75 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):93:93 -> <init>
+    2:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):84:102 -> <init>
+    boolean lambda$performInliningImpl$1(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> a
+    1:19:boolean isBlacklisted(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):107:125 -> a
+    20:20:boolean isBlacklisted(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):120:120 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):147:147 -> a
+    22:22:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    22:22:boolean com.android.tools.r8.utils.InternalOptions.canHaveDalvikCatchHandlerVerificationBug():1516 -> a
+    22:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):147 -> a
+    23:23:boolean com.android.tools.r8.utils.InternalOptions.canHaveDalvikCatchHandlerVerificationBug():1516:1516 -> a
+    23:23:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):147 -> a
+    24:29:boolean useReflectiveOperationExceptionOrUnknownClassInCatch(com.android.tools.r8.ir.code.IRCode):1058:1063 -> a
+    24:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):148 -> a
+    30:30:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    30:30:boolean useReflectiveOperationExceptionOrUnknownClassInCatch(com.android.tools.r8.ir.code.IRCode):1063 -> a
+    30:30:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):148 -> a
+    31:43:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):149:161 -> a
+    44:46:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget instructionAllowedForInlining(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):139:141 -> a
+    44:46:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):162 -> a
+    47:52:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):163:168 -> a
+    53:57:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):190:194 -> a
+    58:58:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    58:58:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):194 -> a
+    59:59:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):195:195 -> a
+    60:67:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):199:206 -> a
+    68:68:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):103:103 -> a
+    68:68:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):206 -> a
+    69:69:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):103:103 -> a
+    69:69:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):209 -> a
+    70:70:boolean isDoubleInlineSelectedTarget(com.android.tools.r8.graph.DexEncodedMethod):213:213 -> a
+    71:72:java.util.Set methodsToRevisit():247:248 -> a
+    73:97:int numberOfInstructions(com.android.tools.r8.ir.code.IRCode):773:797 -> a
+    98:98:void performForcedInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Map):821:821 -> a
+    99:101:void performForcedInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):830:832 -> a
+    102:102:void performForcedInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):831:831 -> a
+    103:110:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):853:860 -> a
+    111:111:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):898:898 -> a
+    111:111:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):855 -> a
+    112:114:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):862:864 -> a
+    115:117:com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy createDefaultInliningReasonStrategy(com.android.tools.r8.ir.conversion.MethodProcessor):869:871 -> a
+    118:118:com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy lambda$createDefaultInliningReasonStrategy$0(com.android.tools.r8.ir.optimize.inliner.DefaultInliningReasonStrategy,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):872:872 -> a
+    119:119:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int):888:888 -> a
+    120:120:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):898:898 -> a
+    120:120:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int):882 -> a
+    121:166:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):916:961 -> a
+    167:212:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):960:1005 -> a
+    213:223:com.android.tools.r8.graph.DexType getDowncastTypeIfNeeded(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1073:1083 -> a
+    213:223:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1011 -> a
+    224:259:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1005:1040 -> a
+    260:262:java.lang.Object com.android.tools.r8.utils.IteratorUtils.previousUntil(java.util.ListIterator,java.util.function.Predicate):71:73 -> a
+    260:262:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1040 -> a
+    263:263:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1041:1041 -> a
+    264:264:java.lang.Object com.android.tools.r8.utils.IteratorUtils.previousUntil(java.util.ListIterator,java.util.function.Predicate):77:77 -> a
+    264:264:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1040 -> a
+    265:276:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1043:1054 -> a
+    277:310:void applyAssumersToInlinee(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):1091:1124 -> a
+    311:317:void applyAssumerToInlinee(com.android.tools.r8.ir.optimize.Assumer,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,java.util.ListIterator,java.util.Set):1136:1142 -> a
+    java.util.Collection codeOptimizationsForPostProcessing() -> b
+    1:7:boolean returnsIntAsBoolean(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):174:180 -> b
+    8:8:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():942:942 -> b
+    8:8:boolean returnsIntAsBoolean(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):180 -> b
+    9:20:void recordDoubleInliningCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):230:241 -> b
+    1:1:boolean isDoubleInliningEnabled():133:133 -> c
+    2:8:boolean satisfiesRequirementsForDoubleInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):218:224 -> c
+com.android.tools.r8.ir.optimize.Inliner$Constraint -> com.android.tools.r8.ir.optimize.u$a:
+    com.android.tools.r8.ir.optimize.Inliner$Constraint PACKAGE -> e
+    com.android.tools.r8.ir.optimize.Inliner$Constraint SAMENEST -> d
+    com.android.tools.r8.ir.optimize.Inliner$Constraint[] $VALUES -> h
+    com.android.tools.r8.ir.optimize.Inliner$Constraint SAMECLASS -> c
+    com.android.tools.r8.ir.optimize.Inliner$Constraint NEVER -> b
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.ir.optimize.Inliner$Constraint ALWAYS -> g
+    com.android.tools.r8.ir.optimize.Inliner$Constraint SUBCLASS -> f
+    int value -> a
+    1:18:void <clinit>():264:264 -> <clinit>
+    43:47:void <clinit>():289:293 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int):284:285 -> <init>
+    1:1:boolean isSet(int):297:297 -> b
+com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget -> com.android.tools.r8.ir.optimize.u$b:
+    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget ALWAYS -> d
+    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget NEVER -> c
+    com.android.tools.r8.ir.optimize.Inliner$Constraint constraint -> a
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.DexType targetHolder -> b
+    1:9:void <clinit>():315:323 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.optimize.Inliner$Constraint):325:328 -> <init>
+    5:9:void <init>(com.android.tools.r8.ir.optimize.Inliner$Constraint,com.android.tools.r8.graph.DexType):331:335 -> <init>
+    1:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):358:360 -> a
+    4:4:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):361 -> a
+    5:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):362:370 -> a
+    14:14:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):103:103 -> a
+    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):371 -> a
+    15:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):373:377 -> a
+    20:20:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):103:103 -> a
+    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):380 -> a
+    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):381:381 -> a
+    22:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget classIsVisible(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):387:392 -> a
+    28:28:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget classIsVisible(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):395 -> a
+    29:30:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget classIsVisible(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):397:398 -> a
+    31:81:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):403:453 -> a
+    82:82:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):530:530 -> a
+    82:82:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):453 -> a
+    83:83:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    83:83:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):531 -> a
+    83:83:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):453 -> a
+    84:89:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):532:537 -> a
+    84:89:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):453 -> a
+    90:90:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    90:90:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):537 -> a
+    90:90:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):453 -> a
+    91:93:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):538:540 -> a
+    91:93:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):453 -> a
+    94:101:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):454:461 -> a
+    102:102:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    102:102:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):507 -> a
+    102:102:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):461 -> a
+    103:110:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):509:516 -> a
+    103:110:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):461 -> a
+    111:111:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    111:111:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):516 -> a
+    111:111:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):461 -> a
+    112:116:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):518:522 -> a
+    112:116:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):461 -> a
+    117:154:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):465:502 -> a
+    1:5:boolean equals(java.lang.Object):348:352 -> equals
+    1:4:int hashCode():340:343 -> hashCode
+    5:5:int com.android.tools.r8.graph.DexType.computeHashCode():53:53 -> hashCode
+    5:5:int hashCode():343 -> hashCode
+com.android.tools.r8.ir.optimize.Inliner$InlineAction -> com.android.tools.r8.ir.optimize.u$c:
+    com.android.tools.r8.graph.DexEncodedMethod target -> a
+    com.android.tools.r8.ir.optimize.Inliner$Reason reason -> b
+    boolean shouldSynthesizeNullCheckForReceiver -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():566:566 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.optimize.Inliner$Reason):574:577 -> <init>
+    1:1:void setShouldSynthesizeNullCheckForReceiver():581:581 -> a
+    2:16:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):591:605 -> a
+    17:17:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    17:17:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):605 -> a
+    18:20:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):606:608 -> a
+    21:44:void synthesizeNullCheckForReceiver(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):732:755 -> a
+    21:44:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):610 -> a
+    45:47:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):615:617 -> a
+    48:72:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):616:640 -> a
+    73:78:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):639:644 -> a
+    79:79:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    79:79:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):646 -> a
+    80:80:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):646:646 -> a
+    81:90:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):644:653 -> a
+    91:91:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> a
+    91:91:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):655 -> a
+    92:92:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):655:655 -> a
+    93:93:com.android.tools.r8.ir.code.Phi com.android.tools.r8.ir.code.IRCode.createPhi(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1080:1080 -> a
+    93:93:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):657 -> a
+    94:95:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):658:659 -> a
+    96:96:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):142:142 -> a
+    96:96:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):661 -> a
+    97:126:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):665:694 -> a
+    127:127:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):693:693 -> a
+    128:128:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    128:128:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):692 -> a
+    129:162:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):695:728 -> a
+    163:163:com.android.tools.r8.ir.code.Value lambda$buildInliningIR$0(com.android.tools.r8.ir.code.BasicBlock):660:660 -> a
+com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason -> com.android.tools.r8.ir.optimize.v:
+    com.android.tools.r8.ir.optimize.Inliner$Reason reason -> a
+    com.android.tools.r8.ir.code.IRCode code -> b
+    1:3:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner$Reason):765:767 -> <init>
+com.android.tools.r8.ir.optimize.Inliner$InliningInfo -> com.android.tools.r8.ir.optimize.w:
+    com.android.tools.r8.graph.DexEncodedMethod target -> a
+    com.android.tools.r8.graph.DexType receiverType -> b
+    1:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):811:813 -> <init>
+com.android.tools.r8.ir.optimize.Inliner$Reason -> com.android.tools.r8.ir.optimize.u$d:
+    com.android.tools.r8.ir.optimize.Inliner$Reason SIMPLE -> e
+    com.android.tools.r8.ir.optimize.Inliner$Reason NEVER -> f
+    com.android.tools.r8.ir.optimize.Inliner$Reason SINGLE_CALLER -> c
+    com.android.tools.r8.ir.optimize.Inliner$Reason DUAL_CALLER -> d
+    com.android.tools.r8.ir.optimize.Inliner$Reason FORCE -> a
+    com.android.tools.r8.ir.optimize.Inliner$Reason ALWAYS -> b
+    1:6:void <clinit>():553:558 -> <clinit>
+    1:1:void <init>(java.lang.String,int):552:552 -> <init>
+    1:1:boolean mustBeInlined():562:562 -> a
+com.android.tools.r8.ir.optimize.InliningConstraints -> com.android.tools.r8.ir.optimize.x:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.GraphLense graphLense -> c
+    boolean allowStaticInterfaceMethodCalls -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):46:46 -> <init>
+    2:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):32:50 -> <init>
+    1:1:void disallowStaticInterfaceMethodCalls():62:62 -> a
+    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):99:99 -> a
+    3:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):131:133 -> a
+    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):132:132 -> a
+    7:23:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):147:163 -> a
+    24:24:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokePolymorphic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):232:232 -> a
+    24:24:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):161 -> a
+    25:25:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeCustom():169:169 -> a
+    25:25:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):159 -> a
+    26:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):253:254 -> a
+    26:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):157 -> a
+    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):249:249 -> a
+    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):155 -> a
+    29:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):153:153 -> a
+    30:31:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):216:217 -> a
+    30:31:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):151 -> a
+    32:32:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):149:149 -> a
+    33:53:com.android.tools.r8.graph.DexEncodedMethod lookupWhileVerticalClassMerging(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):176:196 -> a
+    54:54:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):204:204 -> a
+    55:55:boolean isVerticalClassMerging():66:66 -> a
+    55:55:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):206 -> a
+    56:61:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):207:212 -> a
+    62:62:com.android.tools.r8.graph.DexEncodedMethod lambda$forInvokeDirect$0(com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult,com.android.tools.r8.graph.DexProgramClass):210:210 -> a
+    63:63:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):249:249 -> a
+    64:65:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):343:344 -> a
+    66:66:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    66:66:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):344 -> a
+    67:80:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):346:359 -> a
+    81:94:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):357:370 -> a
+    95:100:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forSingleTargetInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):375:380 -> a
+    101:101:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    101:101:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forSingleTargetInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):380 -> a
+    102:118:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forSingleTargetInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):382:398 -> a
+    119:138:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):405:424 -> a
+    139:139:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    139:139:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):424 -> a
+    140:162:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):425:447 -> a
+    163:170:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):446:453 -> a
+    171:171:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    171:171:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):453 -> a
+    172:177:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):453:458 -> a
+    1:1:com.android.tools.r8.graph.AppView getAppView():54:54 -> b
+    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forConstClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):103:103 -> b
+    3:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstancePut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):141:143 -> b
+    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstancePut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):142:142 -> b
+    7:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):216:217 -> b
+    9:9:com.android.tools.r8.graph.DexEncodedMethod lambda$forInvokeStatic$1(com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult,com.android.tools.r8.graph.DexProgramClass):242:242 -> b
+    1:1:com.android.tools.r8.graph.GraphLense getGraphLense():58:58 -> c
+    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):137:137 -> c
+    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):236:236 -> c
+    4:4:boolean isVerticalClassMerging():66:66 -> c
+    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):238 -> c
+    5:10:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):239:244 -> c
+    11:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):305:307 -> c
+    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):306:306 -> c
+    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeMultiNewArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):224:224 -> d
+    2:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):253:254 -> d
+    4:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticPut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):311:313 -> d
+    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticPut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):312:312 -> d
+    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeNewArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):228:228 -> e
+    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewArrayEmpty(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):281:281 -> f
+    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):289:289 -> g
+com.android.tools.r8.ir.optimize.InliningOracle -> com.android.tools.r8.ir.optimize.y:
+    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    boolean isForcedInliningOracle() -> a
+    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType) -> a
+    boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+com.android.tools.r8.ir.optimize.InliningStrategy -> com.android.tools.r8.ir.optimize.z:
+    boolean allowInliningOfInvokeInInlinee(com.android.tools.r8.ir.optimize.Inliner$InlineAction,int,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    boolean canInlineInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback) -> a
+    com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod) -> a
+    void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason) -> a
+    boolean stillHasBudget(com.android.tools.r8.ir.optimize.Inliner$InlineAction,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+    boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
+com.android.tools.r8.ir.optimize.InstructionEquivalence -> com.android.tools.r8.ir.optimize.A:
+    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> a
+    1:2:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):14:15 -> <init>
+    1:2:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):20:21 -> a
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):11:11 -> doEquivalent
+    1:1:int doHash(java.lang.Object):11:11 -> doHash
+    2:11:int doHash(com.android.tools.r8.ir.code.Instruction):27:36 -> doHash
+    2:11:int doHash(java.lang.Object):11 -> doHash
+com.android.tools.r8.ir.optimize.MemberPoolCollection -> com.android.tools.r8.ir.optimize.B:
+    java.util.Map memberPools -> c
+    com.android.tools.r8.graph.AppView appView -> b
+    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.base.Equivalence):37:37 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.base.Equivalence):35:39 -> <init>
+    java.lang.Runnable computeMemberPoolForClass(com.android.tools.r8.graph.DexClass) -> a
+    1:13:void buildAll(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):43:55 -> a
+    14:18:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):61:65 -> a
+    19:19:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):97:97 -> a
+    19:19:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):64 -> a
+    20:20:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):103:103 -> a
+    20:20:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):98 -> a
+    20:20:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):64 -> a
+    21:21:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):66:66 -> a
+    22:22:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):97:97 -> a
+    22:22:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):66 -> a
+    23:23:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):103:103 -> a
+    23:23:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):98 -> a
+    23:23:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):66 -> a
+    24:28:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):67:71 -> a
+    29:29:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):69:69 -> a
+    30:35:boolean markIfNotSeen(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMember):84:89 -> a
+    36:36:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):103:103 -> a
+    36:36:void lambda$buildAll$0(java.util.List,java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexClass):52 -> a
+    37:59:java.util.Set getAllSubTypesExclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):134:156 -> a
+    60:60:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):139:139 -> a
+    61:61:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    61:61:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):139 -> a
+    62:62:void addNonNull(java.util.Collection,java.lang.Object):235:235 -> a
+    62:62:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):139 -> a
+    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):79:79 -> b
+    2:2:boolean hasPool(com.android.tools.r8.graph.DexClass):75:75 -> b
+    2:2:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):79 -> b
+    3:4:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):79:80 -> b
+    5:15:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):111:121 -> b
+    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    16:16:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):121 -> b
+    17:17:void addNonNull(java.util.Collection,java.lang.Object):235:235 -> b
+    17:17:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):121 -> b
+    18:19:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):123:124 -> b
+    20:20:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    20:20:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):124 -> b
+    21:21:void addNonNull(java.util.Collection,java.lang.Object):235:235 -> b
+    21:21:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):124 -> b
+    22:22:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):143:143 -> b
+    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    23:23:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):143 -> b
+    24:24:void addNonNull(java.util.Collection,java.lang.Object):235:235 -> b
+    24:24:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):143 -> b
+    1:1:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):153:153 -> c
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    2:2:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):153 -> c
+    3:3:void addNonNull(java.util.Collection,java.lang.Object):235:235 -> c
+    3:3:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):153 -> c
+    1:1:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):157:157 -> d
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> d
+    2:2:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):157 -> d
+    3:3:void addNonNull(java.util.Collection,java.lang.Object):235:235 -> d
+    3:3:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):157 -> d
+com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool -> com.android.tools.r8.ir.optimize.B$a:
+    java.util.Set interfaces -> c
+    java.util.Set subTypes -> d
+    java.util.Set memberPool -> e
+    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
+    com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool superType -> b
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():163:163 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):171:171 -> <init>
+    2:7:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):167:172 -> <init>
+    1:2:void linkInterface(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):186:187 -> a
+    3:3:void seen(java.lang.Object):191:191 -> a
+    4:4:boolean hasSeen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):200:200 -> a
+    5:5:boolean hasSeenStrictlyBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):220:220 -> a
+    5:5:boolean hasSeen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):200 -> a
+    6:6:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):204:204 -> a
+    6:6:boolean hasSeenAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):212 -> a
+    7:8:boolean hasSeenAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):215:216 -> a
+    9:9:boolean lambda$hasSeenAbove$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):216:216 -> a
+    1:2:void linkSubtype(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):181:182 -> b
+    3:3:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):204:204 -> b
+    3:3:boolean hasSeenBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):225 -> b
+    4:8:boolean hasSeenBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):225:229 -> b
+    9:9:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):204:204 -> b
+    10:10:boolean lambda$hasSeenBelow$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):226:226 -> b
+    1:2:void linkSupertype(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):176:177 -> c
+    3:3:boolean hasSeenStrictlyAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):208:208 -> c
+    4:4:boolean lambda$hasSeenBelow$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):229:229 -> c
+    1:1:boolean hasSeenStrictlyBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):220:220 -> d
+    1:2:void seen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):195:196 -> e
+com.android.tools.r8.ir.optimize.MemberValuePropagation -> com.android.tools.r8.ir.optimize.E:
+    com.android.tools.r8.ir.optimize.info.OptimizationFeedback feedback -> d
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set warnedFields -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.utils.Reporter reporter -> b
+    1:3:void <clinit>():38:40 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):79:79 -> <init>
+    2:37:void <init>(com.android.tools.r8.graph.AppView):46:81 -> <init>
+    1:8:com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup lookupMemberRule(com.android.tools.r8.graph.DexDefinition):104:111 -> a
+    9:9:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):183:183 -> a
+    10:27:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):118:135 -> a
+    10:27:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):183 -> a
+    28:37:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):134:143 -> a
+    28:37:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):183 -> a
+    38:56:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):140:158 -> a
+    38:56:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):183 -> a
+    57:57:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):153:153 -> a
+    57:57:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):183 -> a
+    58:58:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):186:186 -> a
+    59:61:void setValueRangeFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.Value):170:172 -> a
+    59:61:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):186 -> a
+    62:75:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):189:202 -> a
+    76:83:void rewriteFieldGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):299:306 -> a
+    84:87:void rewriteFieldGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):305:308 -> a
+    88:88:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    88:88:void rewriteFieldGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):313 -> a
+    89:89:void rewriteFieldGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):313:313 -> a
+    90:94:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexEncodedField):85:89 -> a
+    90:94:void rewriteFieldGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):317 -> a
+    95:125:void rewriteFieldGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):322:352 -> a
+    126:126:java.lang.Boolean lambda$rewriteFieldGetWithConstantValues$0(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):306:306 -> a
+    127:141:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):362:376 -> a
+    142:191:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):215:264 -> a
+    142:191:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):375 -> a
+    192:196:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexEncodedMethod):93:97 -> a
+    192:196:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):268 -> a
+    192:196:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):375 -> a
+    197:213:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):272:288 -> a
+    197:213:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):375 -> a
+    214:216:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):377:379 -> a
+    217:223:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):378:384 -> a
+    224:224:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    224:224:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):384 -> a
+    225:227:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):384:386 -> a
+com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup -> com.android.tools.r8.ir.optimize.C:
+    com.android.tools.r8.shaking.ProguardMemberRule rule -> b
+    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType type -> a
+    1:3:void <init>(com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType,com.android.tools.r8.shaking.ProguardMemberRule):59:61 -> <init>
+    1:5:boolean equals(java.lang.Object):66:70 -> equals
+    1:1:int hashCode():75:75 -> hashCode
+com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType -> com.android.tools.r8.ir.optimize.D:
+    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType ASSUME_VALUES -> c
+    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType NONE -> a
+    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType ASSUME_NO_SIDE_EFFECTS -> b
+    1:3:void <clinit>():49:51 -> <clinit>
+    1:1:void <init>(java.lang.String,int):48:48 -> <init>
+com.android.tools.r8.ir.optimize.MethodPoolCollection -> com.android.tools.r8.ir.optimize.F:
+    java.util.function.Predicate methodTester -> e
+    1:2:void <init>(com.android.tools.r8.graph.AppView):37:38 -> <init>
+    3:4:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Predicate):43:44 -> <init>
+    1:1:boolean excludesPrivateInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):48:48 -> a
+    2:2:java.lang.Runnable computeMemberPoolForClass(com.android.tools.r8.graph.DexClass):53:53 -> a
+    3:4:void lambda$computeMemberPoolForClass$1(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexEncodedMethod):58:59 -> a
+    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$0(com.android.tools.r8.graph.DexClass):55:55 -> c
+    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$2(com.android.tools.r8.graph.DexClass):66:66 -> d
+    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$3(com.android.tools.r8.graph.DexClass):76:76 -> e
+    1:10:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):54:63 -> f
+    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> f
+    11:11:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):63 -> f
+    12:20:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):65:73 -> f
+    21:21:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> f
+    21:21:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):73 -> f
+    22:25:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):75:78 -> f
+com.android.tools.r8.ir.optimize.MoveEliminator -> com.android.tools.r8.ir.optimize.G:
+    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> b
+    java.util.Set activeMoves -> a
+    1:1:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):17:17 -> <init>
+    2:6:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):14:18 -> <init>
+    1:12:boolean shouldBeEliminated(com.android.tools.r8.ir.code.Instruction):22:33 -> a
+    13:51:boolean shouldBeEliminated(com.android.tools.r8.ir.code.Instruction):32:70 -> a
+    52:56:boolean lambda$shouldBeEliminated$0(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Move):55:59 -> a
+com.android.tools.r8.ir.optimize.NestReducer -> com.android.tools.r8.ir.optimize.H:
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView):33:34 -> <init>
+    1:2:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):38:39 -> a
+    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    3:3:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):39 -> a
+    4:15:void run(java.util.concurrent.ExecutorService):43:54 -> a
+    16:24:void run(java.util.concurrent.ExecutorService):53:61 -> a
+    25:25:void processNestFrom(com.android.tools.r8.graph.DexClass):65:65 -> a
+    25:25:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    26:27:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):93:94 -> a
+    26:27:void processNestFrom(com.android.tools.r8.graph.DexClass):67 -> a
+    26:27:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    28:28:void processNestFrom(com.android.tools.r8.graph.DexClass):68:68 -> a
+    28:28:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    29:29:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):96:96 -> a
+    29:29:void processNestFrom(com.android.tools.r8.graph.DexClass):67 -> a
+    29:29:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    30:35:void processNestFrom(com.android.tools.r8.graph.DexClass):71:76 -> a
+    30:35:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    36:44:void reportIncompleteNest(com.android.tools.r8.graph.DexClass):101:109 -> a
+    36:44:void processNestFrom(com.android.tools.r8.graph.DexClass):80 -> a
+    36:44:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    45:50:void processNestFrom(com.android.tools.r8.graph.DexClass):82:87 -> a
+    45:50:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    51:54:void clearNestAttributes(com.android.tools.r8.graph.DexClass):114:117 -> a
+    51:54:void processNestFrom(com.android.tools.r8.graph.DexClass):88 -> a
+    51:54:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    55:55:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    55:55:void clearNestAttributes(com.android.tools.r8.graph.DexClass):117 -> a
+    55:55:void processNestFrom(com.android.tools.r8.graph.DexClass):88 -> a
+    55:55:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    56:56:void clearNestAttributes(com.android.tools.r8.graph.DexClass):118:118 -> a
+    56:56:void processNestFrom(com.android.tools.r8.graph.DexClass):88 -> a
+    56:56:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
+    57:63:boolean hasPrivateMembers(com.android.tools.r8.graph.DexClass):123:129 -> a
+com.android.tools.r8.ir.optimize.NestUtils -> com.android.tools.r8.ir.optimize.I:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:14:boolean sameNest(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier):27:40 -> a
+    15:15:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    15:15:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):46 -> a
+    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    16:16:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):47 -> a
+    17:23:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):48:54 -> a
+    24:24:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    24:24:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):55 -> a
+    25:31:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):56:62 -> a
+    32:32:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    32:32:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):61 -> a
+    33:34:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):64:65 -> a
+    35:35:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    35:35:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):64 -> a
+    36:39:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):68:71 -> a
+    40:40:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    40:40:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):72 -> a
+    41:47:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):73:79 -> a
+    48:48:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    48:48:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):77 -> a
+com.android.tools.r8.ir.optimize.NonNullTracker -> com.android.tools.r8.ir.optimize.J:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.function.Consumer splitBlockConsumer -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():44:44 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):51:51 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Consumer):54:57 -> <init>
+    boolean lambda$addNonNullForValues$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
+    1:86:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):63:148 -> a
+    87:161:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):147:221 -> a
+    162:182:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):219:239 -> a
+    183:183:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    183:183:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):239 -> a
+    184:184:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):239:239 -> a
+    185:245:void addNonNullForValues(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,java.util.Set,java.util.Set):264:324 -> a
+    246:264:void addNonNullForValues(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,java.util.Set,java.util.Set):322:340 -> a
+    265:270:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList findDominatedPredecessorIndexesInPhi(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value,java.util.Set):348:353 -> a
+    271:271:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> a
+    271:271:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList findDominatedPredecessorIndexesInPhi(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value,java.util.Set):353 -> a
+    272:280:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList findDominatedPredecessorIndexesInPhi(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value,java.util.Set):355:363 -> a
+    281:284:boolean isNullableReferenceTypeWithUsers(com.android.tools.r8.ir.code.Value):372:375 -> a
+com.android.tools.r8.ir.optimize.Outliner -> com.android.tools.r8.ir.optimize.O:
+    java.util.List candidateMethodLists -> a
+    java.util.Map outlineSites -> c
+    java.util.Map generatedOutlines -> d
+    com.android.tools.r8.graph.AppView appView -> e
+    java.util.function.Consumer outlineMethodIdentifierGenerator -> g
+    boolean $assertionsDisabled -> h
+    java.util.Set methodsSelectedForOutlining -> b
+    com.android.tools.r8.ir.optimize.InliningConstraints inliningConstraints -> f
+    1:1:void <clinit>():105:105 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):1268:1268 -> <init>
+    2:1164:void <init>(com.android.tools.r8.graph.AppView):108:1270 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.Outliner):105:105 -> a
+    2:4:void lambda$createOutlineMethodIdentifierGenerator$0(java.util.Map,com.android.tools.r8.ir.code.IRCode):1283:1285 -> a
+    5:10:java.util.List selectOutlines():1386:1391 -> a
+    5:10:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1327 -> a
+    11:19:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1328:1336 -> a
+    20:20:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.optimize.Outliner$Outline.buildMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):580:580 -> a
+    20:20:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1337 -> a
+    21:28:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1338:1345 -> a
+    29:29:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    29:29:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1345 -> a
+    30:33:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1345:1348 -> a
+    34:34:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    34:34:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1348 -> a
+    35:67:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1349:1381 -> a
+    68:74:void applyOutliningCandidate(com.android.tools.r8.ir.code.IRCode):1398:1404 -> a
+    75:76:boolean checkAllOutlineSitesFoundAgain():1409:1410 -> a
+    1:1:com.android.tools.r8.ir.optimize.InliningConstraints access$100(com.android.tools.r8.ir.optimize.Outliner):105:105 -> b
+    2:5:void createOutlineMethodIdentifierGenerator():1278:1281 -> b
+    6:8:void identifyOutlineSites(com.android.tools.r8.ir.code.IRCode):1298:1300 -> b
+    1:1:java.util.List access$200(com.android.tools.r8.ir.optimize.Outliner):105:105 -> c
+    2:2:java.util.Set getMethodsSelectedForOutlining():1320:1320 -> c
+    1:1:java.util.Map access$300(com.android.tools.r8.ir.optimize.Outliner):105:105 -> d
+    2:3:java.util.function.Consumer getOutlineMethodIdentifierGenerator():1293:1294 -> d
+    1:1:java.util.Map access$400(com.android.tools.r8.ir.optimize.Outliner):105:105 -> e
+    2:8:boolean selectMethodsForOutlining():1305:1311 -> e
+    9:15:boolean selectMethodsForOutlining():1310:1316 -> e
+com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction -> com.android.tools.r8.ir.optimize.K:
+    com.android.tools.r8.ir.code.NumericType numericType -> c
+    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType,com.android.tools.r8.ir.code.NumericType):208:209 -> <init>
+    java.lang.String getDetailsString() -> a
+    1:1:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):213:213 -> a
+    2:21:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType.fromInstruction(com.android.tools.r8.ir.code.Instruction):136:155 -> a
+    2:21:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):214 -> a
+    22:22:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):215:215 -> a
+    23:23:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType.fromInstruction(com.android.tools.r8.ir.code.Instruction):157:157 -> a
+    23:23:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):214 -> a
+    24:24:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):234:234 -> a
+    25:25:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):184:184 -> a
+    25:25:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):235 -> a
+    26:31:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):237:242 -> a
+    32:36:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):267:271 -> a
+    37:37:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
+    37:37:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):273 -> a
+    38:40:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):275:275 -> a
+    43:43:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):278:278 -> a
+    44:44:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
+    44:44:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):280 -> a
+    45:64:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):280:299 -> a
+    65:65:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):296:296 -> a
+    66:66:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):293:293 -> a
+    67:67:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):290:290 -> a
+    68:68:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):287:287 -> a
+    69:86:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):284:301 -> a
+    1:1:java.lang.String getInstructionName():252:252 -> b
+    boolean hasOutValue() -> c
+    int numberOfInputs() -> d
+    1:5:boolean equals(java.lang.Object):225:229 -> equals
+    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():180:180 -> hashCode
+    1:1:int hashCode():220 -> hashCode
+    2:2:int hashCode():220:220 -> hashCode
+com.android.tools.r8.ir.optimize.Outliner$InvokeOutlineInstruction -> com.android.tools.r8.ir.optimize.L:
+    com.android.tools.r8.ir.code.Invoke$Type invokeType -> d
+    com.android.tools.r8.graph.DexProto proto -> f
+    boolean hasOutValue -> e
+    boolean hasReceiver -> g
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.graph.DexMethod method -> c
+    1:1:void <clinit>():370:370 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,boolean,com.android.tools.r8.ir.code.ValueType[],com.android.tools.r8.graph.DexProto):383:389 -> <init>
+    1:11:com.android.tools.r8.ir.optimize.Outliner$InvokeOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.InvokeMethod):393:403 -> a
+    12:12:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):429:429 -> a
+    13:13:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):184:184 -> a
+    13:13:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):430 -> a
+    14:33:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):432:451 -> a
+    34:34:java.lang.String getDetailsString():457:457 -> a
+    35:37:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):486:488 -> a
+    38:38:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
+    38:38:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):490 -> a
+    39:44:com.android.tools.r8.ir.code.ValueTypeConstraint getArgumentConstraint(int):476:481 -> a
+    39:44:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):492 -> a
+    45:50:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):492:497 -> a
+    51:51:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
+    51:51:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):499 -> a
+    52:55:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):499:502 -> a
+    56:56:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
+    56:56:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):502 -> a
+    57:57:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):503:503 -> a
+    1:1:java.lang.String getInstructionName():462:462 -> b
+    1:1:boolean hasOutValue():467:467 -> c
+    1:1:int numberOfInputs():472:472 -> d
+    1:8:boolean equals(java.lang.Object):417:424 -> equals
+    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():180:180 -> hashCode
+    1:1:int hashCode():408 -> hashCode
+    2:6:int hashCode():408:412 -> hashCode
+com.android.tools.r8.ir.optimize.Outliner$NewInstanceOutlineInstruction -> com.android.tools.r8.ir.optimize.M:
+    com.android.tools.r8.graph.DexType clazz -> c
+    1:2:void <init>(com.android.tools.r8.graph.DexType):310:311 -> <init>
+    1:1:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):331:331 -> a
+    2:2:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):184:184 -> a
+    2:2:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):332 -> a
+    3:4:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):334:335 -> a
+    5:5:java.lang.String getDetailsString():340:340 -> a
+    6:7:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):360:361 -> a
+    8:8:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
+    8:8:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):363 -> a
+    9:11:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):363:365 -> a
+    1:1:java.lang.String getInstructionName():345:345 -> b
+    boolean hasOutValue() -> c
+    int numberOfInputs() -> d
+    1:5:boolean equals(java.lang.Object):316:320 -> equals
+    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():180:180 -> hashCode
+    1:1:int hashCode():326 -> hashCode
+    2:2:int hashCode():326:326 -> hashCode
+com.android.tools.r8.ir.optimize.Outliner$Outline -> com.android.tools.r8.ir.optimize.N:
+    java.util.List argumentMap -> b
+    java.util.List argumentTypes -> a
+    com.android.tools.r8.graph.DexProto proto -> e
+    com.android.tools.r8.ir.optimize.Outliner this$0 -> f
+    java.util.List templateInstructions -> c
+    com.android.tools.r8.graph.DexType returnType -> d
+    boolean $assertionsDisabled -> g
+    1:1:void <clinit>():530:530 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):547:547 -> <init>
+    2:29:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):534:561 -> <init>
+    30:30:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):555:555 -> <init>
+    1:5:com.android.tools.r8.graph.DexProto buildProto():571:575 -> a
+    1:1:int compareTo(java.lang.Object):530:530 -> compareTo
+    2:7:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):628:633 -> compareTo
+    2:7:int compareTo(java.lang.Object):530 -> compareTo
+    8:8:int argumentCount():567:567 -> compareTo
+    8:8:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):633 -> compareTo
+    8:8:int compareTo(java.lang.Object):530 -> compareTo
+    9:40:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):633:664 -> compareTo
+    9:40:int compareTo(java.lang.Object):530 -> compareTo
+    1:18:boolean equals(java.lang.Object):585:602 -> equals
+    1:6:int hashCode():610:615 -> hashCode
+    1:37:java.lang.String toString():671:707 -> toString
+com.android.tools.r8.ir.optimize.Outliner$OutlineCode -> com.android.tools.r8.ir.optimize.O$a:
+    com.android.tools.r8.ir.optimize.Outliner this$0 -> b
+    com.android.tools.r8.ir.optimize.Outliner$Outline outline -> a
+    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline):1570:1571 -> <init>
+    1:2:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1597:1598 -> buildIR
+    3:3:void com.android.tools.r8.ir.conversion.IRBuilder.<init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin):428:428 -> buildIR
+    3:3:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1598 -> buildIR
+    4:4:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1598:1598 -> buildIR
+    1:1:boolean computeEquals(java.lang.Object):1618:1618 -> computeEquals
+    1:1:int computeHashCode():1613:1613 -> computeHashCode
+    1:1:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):1608:1608 -> registerCodeReferences
+    1:1:java.lang.String toString():1603:1603 -> toString
+com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction -> com.android.tools.r8.ir.optimize.Q:
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType type -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():121:121 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType):163:164 -> <init>
+    int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction) -> a
+    int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int) -> a
+    java.lang.String getDetailsString() -> a
+    1:8:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Instruction):168:175 -> a
+    java.lang.String getInstructionName() -> b
+    boolean hasOutValue() -> c
+    int numberOfInputs() -> d
+com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType -> com.android.tools.r8.ir.optimize.P:
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType[] $VALUES -> h
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType ADD -> a
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType SUB -> b
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType MUL -> c
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType DIV -> d
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType REM -> e
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType INVOKE -> f
+    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType NEW -> g
+    1:7:void <clinit>():127:133 -> <clinit>
+    8:8:void <clinit>():126:126 -> <clinit>
+    1:1:void <init>(java.lang.String,int):126:126 -> <init>
+com.android.tools.r8.ir.optimize.Outliner$OutlineMethodIdentifier -> com.android.tools.r8.ir.optimize.S:
+    java.util.Map candidateMap -> q
+    com.android.tools.r8.ir.optimize.Outliner this$0 -> r
+    1:3:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock,java.util.Map):1141:1143 -> <init>
+    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1148:1150 -> a
+    4:5:java.util.List addOutlineMethodList(com.android.tools.r8.ir.optimize.Outliner$Outline):1154:1155 -> a
+com.android.tools.r8.ir.optimize.Outliner$OutlineRewriter -> com.android.tools.r8.ir.optimize.T:
+    java.util.ListIterator blocksIterator -> r
+    java.util.List toRemove -> s
+    com.android.tools.r8.ir.code.IRCode code -> q
+    boolean $assertionsDisabled -> v
+    com.android.tools.r8.ir.optimize.Outliner this$0 -> u
+    int argumentsMapIndex -> t
+    1:1:void <clinit>():1175:1175 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,java.util.List):1186:1190 -> <init>
+    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1195:1197 -> a
+    4:6:boolean removeMethodFromOutlineList(com.android.tools.r8.ir.optimize.Outliner$Outline):1261:1263 -> a
+    4:6:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1197 -> a
+    7:63:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1198:1254 -> a
+com.android.tools.r8.ir.optimize.Outliner$OutlineSiteIdentifier -> com.android.tools.r8.ir.optimize.U:
+    com.android.tools.r8.ir.optimize.Outliner this$0 -> q
+    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):1162:1163 -> <init>
+    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1168:1170 -> a
+    4:4:java.util.List lambda$handle$0(com.android.tools.r8.ir.optimize.Outliner$Outline):1169:1169 -> a
+com.android.tools.r8.ir.optimize.Outliner$OutlineSourceCode -> com.android.tools.r8.ir.optimize.V:
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.optimize.Outliner this$0 -> d
+    com.android.tools.r8.ir.code.Position position -> b
+    com.android.tools.r8.ir.optimize.Outliner$Outline outline -> a
+    int argumentMapIndex -> c
+    1:1:void <clinit>():1415:1415 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline,com.android.tools.r8.graph.DexMethod):1421:1421 -> <init>
+    2:6:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline,com.android.tools.r8.graph.DexMethod):1419:1423 -> <init>
+    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
+    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
+    1:1:int instructionCount():1428:1428 -> a
+    2:2:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):1459:1459 -> a
+    3:14:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):1473:1484 -> a
+    15:15:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):1490:1490 -> a
+    16:20:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1501:1505 -> a
+    21:21:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
+    21:21:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1505 -> a
+    22:31:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1505:1514 -> a
+    32:32:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):1520:1520 -> a
+    33:33:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):1526:1526 -> a
+    34:34:int getMoveExceptionRegister(int):1536:1536 -> a
+    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
+    int instructionOffset(int) -> b
+    void setUp() -> b
+    com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder) -> c
+    com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int) -> c
+    boolean verifyCurrentInstructionCanThrow() -> c
+    1:1:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):1541:1541 -> d
+    2:2:com.android.tools.r8.ir.code.Position getCurrentPosition():1546:1546 -> d
+    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
+    boolean verifyRegister(int) -> f
+    int instructionIndex(int) -> g
+com.android.tools.r8.ir.optimize.Outliner$OutlineSpotter -> com.android.tools.r8.ir.optimize.W:
+    int pendingNewInstanceIndex -> n
+    com.android.tools.r8.graph.DexType returnType -> k
+    boolean $assertionsDisabled -> p
+    int returnValueUsersLeft -> m
+    com.android.tools.r8.graph.DexEncodedMethod method -> a
+    int argumentRegisters -> j
+    int actualInstructions -> f
+    int start -> d
+    int index -> e
+    com.android.tools.r8.ir.code.Value returnValue -> l
+    java.util.List instructionArrayCache -> c
+    java.util.List argumentsMap -> i
+    java.util.List argumentTypes -> h
+    java.util.List arguments -> g
+    com.android.tools.r8.ir.code.BasicBlock block -> b
+    com.android.tools.r8.ir.optimize.Outliner this$0 -> o
+    1:1:void <clinit>():715:715 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):734:734 -> <init>
+    2:19:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):720:737 -> <init>
+    void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline) -> a
+    1:4:java.util.List getInstructionArray():741:744 -> a
+    5:10:java.util.List orderedInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):766:771 -> a
+    11:23:com.android.tools.r8.graph.DexType argumentTypeFromInvoke(com.android.tools.r8.ir.code.InvokeMethod,int):917:929 -> a
+    24:30:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):934:940 -> a
+    31:31:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    31:31:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):940 -> a
+    32:38:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):944:950 -> a
+    39:71:com.android.tools.r8.graph.DexType argumentTypeFromValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.InvokeMethod,int):956:988 -> a
+    72:79:void updateReturnValueState(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):1070:1077 -> a
+    80:109:void candidate(int,int,int):1084:1113 -> a
+    110:120:void reset(int):1118:1128 -> a
+    1:1:void invalidateInstructionArray():749:749 -> b
+    1:5:void process():755:759 -> c
+    6:16:void processInstruction(com.android.tools.r8.ir.code.Instruction):782:792 -> c
+    6:16:void process():759 -> c
+    17:103:boolean canIncludeInstruction(com.android.tools.r8.ir.code.Instruction):825:911 -> c
+    17:103:void processInstruction(com.android.tools.r8.ir.code.Instruction):799 -> c
+    17:103:void process():759 -> c
+    104:104:void processInstruction(com.android.tools.r8.ir.code.Instruction):803:803 -> c
+    104:104:void process():759 -> c
+    105:133:void includeInstruction(com.android.tools.r8.ir.code.Instruction):996:1024 -> c
+    105:133:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
+    105:133:void process():759 -> c
+    134:161:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1022:1049 -> c
+    134:161:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
+    134:161:void process():759 -> c
+    162:165:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1048:1051 -> c
+    162:165:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
+    162:165:void process():759 -> c
+    166:193:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1033:1060 -> c
+    166:193:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
+    166:193:void process():759 -> c
+    194:200:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1058:1064 -> c
+    194:200:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
+    194:200:void process():759 -> c
+    201:201:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1062:1062 -> c
+    201:201:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
+    201:201:void process():759 -> c
+    202:212:void processInstruction(com.android.tools.r8.ir.code.Instruction):808:818 -> c
+    202:212:void process():759 -> c
+com.android.tools.r8.ir.optimize.PeepholeOptimizer -> com.android.tools.r8.ir.optimize.X:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:1:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):40:40 -> a
+    2:17:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):489:504 -> a
+    2:17:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> a
+    18:23:boolean constantSpilledAtDefinition(com.android.tools.r8.ir.code.ConstNumber):551:556 -> a
+    18:23:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):504 -> a
+    18:23:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> a
+    24:52:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):507:535 -> a
+    24:52:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> a
+    53:59:void shareIdenticalBlockPrefix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):49:55 -> a
+    53:59:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):42 -> a
+    60:61:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):43:44 -> a
+    62:198:void shareIdenticalBlockPrefixFromNormalSuccessors(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Set,com.android.tools.r8.ir.optimize.InstructionEquivalence):63:199 -> a
+    199:201:boolean lambda$shareIdenticalBlockPrefixFromNormalSuccessors$0(com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction,int,com.android.tools.r8.ir.code.Value):134:136 -> a
+    202:231:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):235:264 -> a
+    232:241:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):263:272 -> a
+    242:257:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):271:286 -> a
+    258:269:int sharedSuffixSize(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):409:420 -> a
+    258:269:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):288 -> a
+    270:279:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):288:297 -> a
+    280:282:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):326:328 -> a
+    280:282:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
+    283:290:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):327:334 -> a
+    283:290:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
+    291:291:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    291:291:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):334 -> a
+    291:291:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
+    292:314:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):335:357 -> a
+    292:314:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
+    315:315:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    315:315:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):358 -> a
+    315:315:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
+    316:345:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):359:388 -> a
+    316:345:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
+    346:358:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):305:317 -> a
+    359:359:java.util.List lambda$shareIdenticalBlockSuffix$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):264:264 -> a
+    360:364:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtBlockExit(com.android.tools.r8.ir.code.BasicBlock):394:398 -> a
+    365:365:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    365:365:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtBlockExit(com.android.tools.r8.ir.code.BasicBlock):398 -> a
+    366:368:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtBlockExit(com.android.tools.r8.ir.code.BasicBlock):399:401 -> a
+    369:389:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):433:453 -> a
+    390:391:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    390:391:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):454 -> a
+    392:392:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):454:454 -> a
+    393:407:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):453:467 -> a
+    408:408:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    408:408:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):468 -> a
+    409:412:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):468:471 -> a
+    413:415:void removeWideConstantCovering(java.util.Map,int):544:546 -> a
+    1:19:boolean mayShareIdenticalBlockPrefix(com.android.tools.r8.ir.code.BasicBlock):207:225 -> b
+    20:20:boolean mayShareIdenticalBlockPrefix(com.android.tools.r8.ir.code.BasicBlock):224:224 -> b
+    21:21:java.util.List lambda$shareIdenticalBlockSuffix$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):272:272 -> b
+com.android.tools.r8.ir.optimize.PhiOptimizations -> com.android.tools.r8.ir.optimize.Y:
+    1:1:void <init>():21:21 -> <init>
+    1:1:boolean optimize(com.android.tools.r8.ir.code.IRCode):24:24 -> a
+    1:6:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):112:117 -> b
+    7:8:boolean predecessorsHaveNormalFlow(com.android.tools.r8.ir.code.BasicBlock):28:29 -> b
+    7:8:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):138 -> b
+    7:8:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
+    9:13:boolean singleUseOfPhiAndOperands(com.android.tools.r8.ir.code.Phi):37:41 -> b
+    9:13:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):138 -> b
+    9:13:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
+    14:15:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):141:142 -> b
+    14:15:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
+    16:30:int getRelativeStackHeightForInstruction(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):58:72 -> b
+    16:30:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):145 -> b
+    16:30:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
+    31:38:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):148:155 -> b
+    31:38:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
+    39:50:int getStackHeightAtInstructionBackwards(com.android.tools.r8.ir.code.Instruction):88:99 -> b
+    39:50:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):155 -> b
+    39:50:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
+    51:64:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):160:173 -> b
+    51:64:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
+com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination -> com.android.tools.r8.ir.optimize.b0:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.code.DominatorTree dominatorTree -> d
+    boolean $assertionsDisabled -> j
+    java.util.Set affectedValues -> e
+    java.util.Map activeStaticFields -> i
+    com.android.tools.r8.ir.code.IRCode code -> c
+    com.android.tools.r8.graph.DexEncodedMethod method -> b
+    java.util.Map activeInstanceFieldsAtEntry -> f
+    java.util.Map activeStaticFieldsAtEntry -> g
+    java.util.Map activeInstanceFields -> h
+    1:1:void <clinit>():42:42 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):63:63 -> <init>
+    2:19:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):50:67 -> <init>
+    1:2:boolean shouldRun(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):71:72 -> a
+    3:7:boolean couldBeVolatile(com.android.tools.r8.graph.DexField):101:105 -> a
+    8:8:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):195:195 -> a
+    8:8:boolean couldBeVolatile(com.android.tools.r8.graph.DexField):105 -> a
+    9:12:boolean couldBeVolatile(com.android.tools.r8.graph.DexField):106:109 -> a
+    13:13:boolean lambda$run$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):189:189 -> a
+    14:15:void killAllActiveFields():258:259 -> a
+    16:42:void killActiveFields(com.android.tools.r8.ir.code.FieldInstruction):263:289 -> a
+    43:46:void eliminateRedundantRead(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.ir.code.FieldInstruction):310:313 -> a
+    1:78:void run():113:190 -> b
+    79:119:void run():186:226 -> b
+    120:146:void run():201:227 -> b
+    147:147:void run():183:183 -> b
+    148:155:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):239:246 -> b
+    148:155:void run():230 -> b
+    156:162:void killActiveFieldsForExceptionalExit(com.android.tools.r8.ir.code.FieldInstruction):298:304 -> b
+    156:162:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):246 -> b
+    156:162:void run():230 -> b
+    163:166:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):249:252 -> b
+    163:166:void run():230 -> b
+    167:168:void run():232:233 -> b
+    169:169:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> b
+    169:169:void run():233 -> b
+    170:172:void run():233:235 -> b
+com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$1 -> com.android.tools.r8.ir.optimize.Z:
+com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$FieldAndObject -> com.android.tools.r8.ir.optimize.a0:
+    com.android.tools.r8.graph.DexField field -> a
+    com.android.tools.r8.ir.code.Value object -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():75:75 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$1):75:75 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value):79:82 -> <init>
+    1:1:com.android.tools.r8.graph.DexField access$100(com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$FieldAndObject):75:75 -> a
+    1:5:boolean equals(java.lang.Object):92:96 -> equals
+    1:1:int hashCode():87:87 -> hashCode
+com.android.tools.r8.ir.optimize.ReflectionOptimizer -> com.android.tools.r8.ir.optimize.c0:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:19:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):38:56 -> a
+    20:43:com.android.tools.r8.graph.DexType getTypeForGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeVirtual):83:106 -> a
+    20:43:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
+    44:44:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    44:44:com.android.tools.r8.graph.DexType getTypeForGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeVirtual):111 -> a
+    44:44:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
+    45:58:com.android.tools.r8.graph.DexType getTypeForGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeVirtual):111:124 -> a
+    45:58:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
+    59:61:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):57:59 -> a
+    62:112:com.android.tools.r8.graph.DexType getTypeForClassForName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeStatic):135:185 -> a
+    62:112:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58 -> a
+    113:113:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    113:113:com.android.tools.r8.graph.DexType getTypeForClassForName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeStatic):186 -> a
+    113:113:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58 -> a
+    114:135:com.android.tools.r8.graph.DexType getTypeForClassForName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeStatic):187:208 -> a
+    114:135:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58 -> a
+    136:138:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):62:64 -> a
+    139:140:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.classClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):393:394 -> a
+    139:140:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):64 -> a
+    141:150:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):65:74 -> a
+    151:151:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    151:151:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):74 -> a
+    152:154:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):74:76 -> a
+com.android.tools.r8.ir.optimize.ServiceLoaderRewriter -> com.android.tools.r8.ir.optimize.e0:
+    com.android.tools.r8.graph.AppView appView -> c
+    java.util.concurrent.ConcurrentHashMap synthesizedServiceLoaders -> b
+    com.android.tools.r8.graph.DexProgramClass synthesizedClass -> a
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():66:66 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):77:77 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.AppView):72:78 -> <init>
+    1:1:com.android.tools.r8.graph.DexProgramClass getSynthesizedClass():82:82 -> a
+    2:2:void rewrite(com.android.tools.r8.ir.code.IRCode):86:86 -> a
+    3:3:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    3:3:void rewrite(com.android.tools.r8.ir.code.IRCode):87 -> a
+    4:71:void rewrite(com.android.tools.r8.ir.code.IRCode):88:155 -> a
+    72:72:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    72:72:void rewrite(com.android.tools.r8.ir.code.IRCode):155 -> a
+    73:83:void rewrite(com.android.tools.r8.ir.code.IRCode):159:169 -> a
+    84:95:void rewrite(com.android.tools.r8.ir.code.IRCode):168:179 -> a
+    96:97:com.android.tools.r8.graph.DexEncodedMethod lambda$rewrite$0(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):171:172 -> a
+    98:98:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    98:98:com.android.tools.r8.graph.DexEncodedMethod lambda$rewrite$0(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):172 -> a
+    99:99:com.android.tools.r8.graph.DexEncodedMethod lambda$rewrite$0(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):173:173 -> a
+    100:135:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):184:219 -> a
+    136:148:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):216:228 -> a
+    149:157:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):46:54 -> a
+    149:157:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    158:173:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):51:66 -> a
+    158:173:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    174:174:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):64:64 -> a
+    174:174:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    175:197:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):57:79 -> a
+    175:197:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    198:198:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):76:76 -> a
+    198:198:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    199:225:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):72:98 -> a
+    199:225:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    226:226:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):96:96 -> a
+    226:226:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    227:252:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):86:111 -> a
+    227:252:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    253:253:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> a
+    253:253:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
+    254:254:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):230:230 -> a
+com.android.tools.r8.ir.optimize.ServiceLoaderRewriter$Rewriter -> com.android.tools.r8.ir.optimize.d0:
+    com.android.tools.r8.ir.code.IRCode code -> a
+    com.android.tools.r8.ir.code.InstructionListIterator iterator -> c
+    com.android.tools.r8.ir.code.InvokeStatic serviceLoaderLoad -> b
+    1:4:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeStatic):264:267 -> <init>
+    boolean lambda$perform$1(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.ir.code.Instruction) -> a
+    1:1:boolean lambda$perform$0(com.android.tools.r8.ir.code.Instruction):274:274 -> a
+    2:5:void clearGetClassLoader(com.android.tools.r8.ir.code.InvokeVirtual):290:293 -> a
+    2:5:void perform(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexMethod):273 -> a
+    6:18:void perform(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexMethod):274:286 -> a
+com.android.tools.r8.ir.optimize.SwitchCaseEliminator -> com.android.tools.r8.ir.optimize.f0:
+    com.android.tools.r8.ir.code.IntSwitch theSwitch -> d
+    com.android.tools.r8.ir.code.InstructionListIterator iterator -> c
+    boolean mayHaveIntroducedUnreachableBlocks -> e
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet switchCasesToBeRemoved -> f
+    com.android.tools.r8.ir.code.BasicBlock defaultTarget -> b
+    com.android.tools.r8.ir.code.BasicBlock block -> a
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):29:29 -> <init>
+    2:9:void <init>(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):26:33 -> <init>
+    1:4:void markSwitchCaseForRemoval(int):51:54 -> a
+    5:16:java.util.function.IntPredicate computeSuccessorHasBecomeDeadPredicate():91:102 -> a
+    17:17:boolean lambda$computeSuccessorHasBecomeDeadPredicate$0(int[],int):102:102 -> a
+    1:1:boolean mayHaveIntroducedUnreachableBlocks():47:47 -> b
+    1:2:boolean canBeOptimized():42:43 -> c
+    1:2:boolean optimize():58 -> c
+    3:3:boolean optimize():59:59 -> c
+    4:5:void unlinkDeadSuccessors():74:75 -> c
+    4:5:boolean optimize():60 -> c
+    6:6:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> c
+    6:6:void unlinkDeadSuccessors():75 -> c
+    6:6:boolean optimize():60 -> c
+    7:18:void unlinkDeadSuccessors():76:87 -> c
+    7:18:boolean optimize():60 -> c
+    19:20:boolean allSwitchCasesMarkedForRemoval():37:38 -> c
+    19:20:boolean optimize():61 -> c
+    21:21:void replaceSwitchByGoto():106:106 -> c
+    21:21:boolean optimize():63 -> c
+    22:23:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> c
+    22:23:void replaceSwitchByGoto():106 -> c
+    22:23:boolean optimize():63 -> c
+    24:24:void replaceSwitchByGoto():106:106 -> c
+    24:24:boolean optimize():63 -> c
+    25:60:void replaceSwitchByOptimizedSwitch(int):110:145 -> c
+    25:60:boolean optimize():66 -> c
+    61:61:void replaceSwitchByOptimizedSwitch(int):140:140 -> c
+    61:61:boolean optimize():66 -> c
+com.android.tools.r8.ir.optimize.SwitchMapCollector -> com.android.tools.r8.ir.optimize.g0:
+    com.android.tools.r8.graph.DexString switchMapPrefix -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.DexString kotlinSwitchMapPrefix -> c
+    com.android.tools.r8.graph.DexType intArrayType -> d
+    java.util.Map switchMaps -> e
+    1:1:void <init>(com.android.tools.r8.graph.AppView):70:70 -> <init>
+    2:10:void <init>(com.android.tools.r8.graph.AppView):68:76 -> <init>
+    1:7:com.android.tools.r8.shaking.AppInfoWithLiveness run():80:86 -> a
+    8:15:void processClasses(com.android.tools.r8.graph.DexProgramClass):91:98 -> a
+    16:16:void lambda$processClasses$0(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedField):98:98 -> a
+    17:52:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):103:138 -> a
+    53:53:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    53:53:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):138 -> a
+    54:64:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):139:149 -> a
+    65:65:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    65:65:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):149 -> a
+    66:77:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):149:160 -> a
+    78:78:boolean lambda$extractSwitchMap$1(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Instruction):122:122 -> a
+    79:81:boolean maybeIsSwitchMap(com.android.tools.r8.graph.DexEncodedField):165:167 -> a
+com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization -> com.android.tools.r8.ir.optimize.i0:
+    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> h
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> i
+    int numberOfInvokesWithNullReceiver -> f
+    int numberOfMonitorWithNullReceiver -> g
+    int numberOfArrayInstructionsWithNullArray -> d
+    int numberOfInvokesWithNullArgument -> e
+    int numberOfInstanceGetOrInstancePutWithNullReceiver -> c
+    com.android.tools.r8.ir.analysis.TypeChecker typeChecker -> b
+    1:47:void <clinit>():56:102 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):113:113 -> <init>
+    2:10:void <init>(com.android.tools.r8.graph.AppView):107:115 -> <init>
+    1:13:com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$UninstantiatedTypeOptimizationGraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):121:133 -> a
+    14:25:com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$UninstantiatedTypeOptimizationGraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):132:143 -> a
+    26:26:com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$UninstantiatedTypeOptimizationGraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123:123 -> a
+    27:27:void lambda$run$0(java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map,com.android.tools.r8.graph.DexProgramClass):135:135 -> a
+    28:37:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):155:164 -> a
+    38:77:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):162:201 -> a
+    78:93:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):200:215 -> a
+    94:94:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):213:213 -> a
+    95:139:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):211:255 -> a
+    140:140:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):253:253 -> a
+    141:171:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):251:281 -> a
+    172:172:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):279:279 -> a
+    173:184:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):277:288 -> a
+    185:185:boolean lambda$processClass$1(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):244:244 -> a
+    186:186:java.util.Set lambda$processClass$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):286:286 -> a
+    187:193:com.android.tools.r8.graph.RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):296:302 -> a
+    194:194:com.android.tools.r8.graph.RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):300:300 -> a
+    195:195:com.android.tools.r8.graph.RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):298:298 -> a
+    196:200:com.android.tools.r8.graph.DexMethod getNewMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription):327:331 -> a
+    201:215:void rewrite(com.android.tools.r8.ir.code.IRCode):335:349 -> a
+    216:225:boolean isThrowNullCandidate(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):404:413 -> a
+    216:225:void rewrite(com.android.tools.r8.ir.code.IRCode):349 -> a
+    226:237:void rewrite(com.android.tools.r8.ir.code.IRCode):351:362 -> a
+    238:238:void rewrite(com.android.tools.r8.ir.code.IRCode):358:358 -> a
+    239:258:void rewrite(com.android.tools.r8.ir.code.IRCode):352:371 -> a
+    259:268:void rewrite(com.android.tools.r8.ir.code.IRCode):370:379 -> a
+    269:289:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.AssumeDynamicTypeRemover,java.util.Set,java.util.Set):505:525 -> a
+    269:289:void rewrite(com.android.tools.r8.ir.code.IRCode):378 -> a
+    290:291:void rewrite(com.android.tools.r8.ir.code.IRCode):389:390 -> a
+    292:292:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1133:1133 -> a
+    292:292:void rewrite(com.android.tools.r8.ir.code.IRCode):391 -> a
+    293:295:void rewrite(com.android.tools.r8.ir.code.IRCode):392:394 -> a
+    296:296:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    296:296:void rewrite(com.android.tools.r8.ir.code.IRCode):394 -> a
+    297:299:void rewrite(com.android.tools.r8.ir.code.IRCode):394:396 -> a
+    300:304:void logResults():423:427 -> a
+    305:312:void logResults():424:431 -> a
+    313:318:void logResults():428:433 -> a
+    319:322:void logResults():432:435 -> a
+    323:326:void logResults():434:437 -> a
+    327:327:void logResults():436:436 -> a
+    328:367:void rewriteFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.AssumeDynamicTypeRemover,java.util.Set):449:488 -> a
+    368:376:void replaceOutValueByNull(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.AssumeDynamicTypeRemover,java.util.Set):536:544 -> a
+    377:379:void replaceOutValueByNull(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.AssumeDynamicTypeRemover,java.util.Set):543:545 -> a
+    1:10:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):307:316 -> b
+    11:11:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo$Builder com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo.builder():50:50 -> b
+    11:11:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):318 -> b
+    12:16:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):318:322 -> b
+com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy -> com.android.tools.r8.ir.optimize.h0:
+    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy ALLOW_ARGUMENT_REMOVAL -> a
+    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy DISALLOW_ARGUMENT_REMOVAL -> b
+    1:2:void <clinit>():59:60 -> <clinit>
+    1:1:void <init>(java.lang.String,int):58:58 -> <init>
+com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$UninstantiatedTypeOptimizationGraphLense -> com.android.tools.r8.ir.optimize.i0$a:
+    java.util.Map removedArgumentsInfoPerMethod -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():63:63 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.AppView):72:78 -> <init>
+    8:16:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.AppView):71:79 -> <init>
+    1:13:com.android.tools.r8.graph.RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):84:96 -> lookupPrototypeChanges
+com.android.tools.r8.ir.optimize.UnusedArgumentsCollector -> com.android.tools.r8.ir.optimize.m0:
+    com.android.tools.r8.ir.optimize.MethodPoolCollection methodPoolCollection -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map removedArguments -> d
+    com.android.tools.r8.com.google.common.collect.BiMap methodMapping -> c
+    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> e
+    boolean $assertionsDisabled -> f
+    1:3:void <clinit>():45:47 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.MethodPoolCollection):93:93 -> <init>
+    2:45:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.MethodPoolCollection):52:95 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector):45:45 -> a
+    2:2:com.android.tools.r8.utils.MethodSignatureEquivalence access$100():45:45 -> a
+    3:4:com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UnusedArgumentsGraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):100:101 -> a
+    5:5:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.stream(java.util.Collection):74:74 -> a
+    5:5:com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UnusedArgumentsGraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):101 -> a
+    6:11:com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UnusedArgumentsGraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):101:106 -> a
+    12:34:com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UnusedArgumentsGraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):100:122 -> a
+    35:45:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):223:233 -> a
+    35:45:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):219 -> a
+    46:46:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod):283:283 -> a
+    46:46:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):237 -> a
+    46:46:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):219 -> a
+    47:47:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):238:238 -> a
+    47:47:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):219 -> a
+    48:49:com.android.tools.r8.graph.DexProto createProtoWithRemovedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):335:336 -> a
+    48:49:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):239 -> a
+    48:49:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):219 -> a
+    50:60:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):240:250 -> a
+    50:60:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):219 -> a
+    61:93:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):288:320 -> a
+    94:94:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo$Builder com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfo.builder():50:50 -> a
+    94:94:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):322 -> a
+    95:101:com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):322:328 -> a
+    1:8:void processVirtualMethods(com.android.tools.r8.graph.DexProgramClass):256:263 -> b
+    9:10:com.android.tools.r8.graph.DexProto createProtoWithRemovedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):335:336 -> b
+    9:10:void processVirtualMethods(com.android.tools.r8.graph.DexProgramClass):264 -> b
+    11:19:void processVirtualMethods(com.android.tools.r8.graph.DexProgramClass):265:273 -> b
+    20:25:void processVirtualMethods(com.android.tools.r8.graph.DexProgramClass):272:277 -> b
+    1:1:java.lang.Runnable runnableForClass(com.android.tools.r8.graph.DexProgramClass):219:219 -> c
+com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1 -> com.android.tools.r8.ir.optimize.j0:
+com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$CollectUsedArguments -> com.android.tools.r8.ir.optimize.k0:
+    java.util.BitSet used -> a
+    1:3:void <init>():339:341 -> <init>
+    4:4:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1):339:339 -> <init>
+    1:1:java.util.BitSet getUsedArguments():344:344 -> a
+    2:2:boolean register(int):349:349 -> a
+com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$GloballyUsedSignatures -> com.android.tools.r8.ir.optimize.l0:
+    com.android.tools.r8.ir.optimize.UnusedArgumentsCollector this$0 -> b
+    com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool methodPool -> a
+    1:2:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):185:186 -> <init>
+    1:12:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):195:206 -> a
+    13:15:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):212:214 -> a
+    16:16:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):213:213 -> a
+com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UnusedArgumentsGraphLense -> com.android.tools.r8.ir.optimize.m0$a:
+    java.util.Map removedArguments -> a
+    1:9:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory,java.util.Map):69:77 -> <init>
+    1:6:com.android.tools.r8.graph.RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):83:88 -> lookupPrototypeChanges
+com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UsedSignatures -> com.android.tools.r8.ir.optimize.n0:
+    com.android.tools.r8.ir.optimize.UnusedArgumentsCollector this$0 -> c
+    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> a
+    java.util.Set usedSignatures -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():129:129 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector):129:132 -> <init>
+    5:5:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector,com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1):129:129 -> <init>
+    1:1:void markSignatureAsUsed(com.android.tools.r8.graph.DexMethod):139:139 -> a
+    1:1:void access$300(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UsedSignatures,com.android.tools.r8.graph.DexMethod):129 -> a
+    2:11:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):148:157 -> a
+    12:12:java.lang.String com.android.tools.r8.utils.SymbolGenerationUtils.numberToIdentifier(int,com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing,char[]):35:35 -> a
+    12:12:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):154 -> a
+    13:23:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):153:163 -> a
+    24:24:boolean isMethodSignatureAvailable(com.android.tools.r8.graph.DexMethod):135:135 -> a
+    24:24:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):165 -> a
+    25:26:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):171:172 -> a
+    27:27:void markSignatureAsUsed(com.android.tools.r8.graph.DexMethod):139:139 -> a
+    27:27:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):174 -> a
+    28:28:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):177:177 -> a
+    29:29:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.RewrittenPrototypeDescription$RemovedArgumentInfoCollection):176:176 -> a
+com.android.tools.r8.ir.optimize.classinliner.ClassInliner -> com.android.tools.r8.ir.optimize.o0.b:
+    java.util.concurrent.ConcurrentHashMap knownClasses -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():40:40 -> <clinit>
+    1:29:void <init>():40:68 -> <init>
+    1:3:void logEligibilityStatus(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus):73:75 -> a
+    4:49:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):178:223 -> a
+    50:52:void logIneligibleUser(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionOrPhi):81:83 -> a
+    50:52:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):223 -> a
+    53:64:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):227:238 -> a
+    65:76:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):234:245 -> a
+    77:77:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    77:77:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):246 -> a
+    78:103:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):246:271 -> a
+    104:104:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1133:1133 -> a
+    104:104:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):272 -> a
+    105:106:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):273:274 -> a
+    107:107:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    107:107:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):274 -> a
+    108:137:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):274:303 -> a
+    138:138:boolean lambda$processMethodCode$0(com.android.tools.r8.ir.code.Instruction):179:179 -> a
+    139:139:void lambda$processMethodCode$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker):286:286 -> a
+    140:140:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):309:309 -> a
+    140:140:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+    141:144:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):326:329 -> a
+    141:144:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):311 -> a
+    141:144:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+    145:145:boolean com.android.tools.r8.graph.DexClass.isAbstract():625:625 -> a
+    145:145:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):331 -> a
+    145:145:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):311 -> a
+    145:145:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+    146:161:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):331:346 -> a
+    146:161:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):311 -> a
+    146:161:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+    162:162:boolean com.android.tools.r8.graph.DexClass.initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppView):829:829 -> a
+    162:162:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):351 -> a
+    162:162:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):311 -> a
+    162:162:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+    163:163:boolean com.android.tools.r8.graph.DexClass.initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppView):828:828 -> a
+    163:163:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):351 -> a
+    163:163:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):311 -> a
+    163:163:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+    164:166:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):352:354 -> a
+    164:166:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):311 -> a
+    164:166:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+    167:167:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):332:332 -> a
+    167:167:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):311 -> a
+    167:167:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+    168:169:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):312:313 -> a
+    168:169:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):198 -> a
+com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus -> com.android.tools.r8.ir.optimize.o0.a:
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus RETRIEVAL_MAY_HAVE_SIDE_EFFECTS -> c
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus UNKNOWN_TYPE -> d
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_CLASS_TYPE -> a
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NOT_A_SINGLETON_FIELD -> b
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus ABSTRACT_OR_INTERFACE -> g
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NEVER_CLASS_INLINE -> h
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus UNUSED_INSTANCE -> e
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_PROGRAM_CLASS -> f
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus TRIGGER_CLINIT -> k
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_CLINIT -> l
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus IS_PINNED_TYPE -> i
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_FINALIZER -> j
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NOT_INITIALIZED_AT_INIT -> o
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus PINNED_FIELD -> p
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_INSTANCE_FIELDS -> m
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_FINAL_TYPE -> n
+    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus ELIGIBLE -> q
+    1:22:void <clinit>():44:65 -> <clinit>
+    1:1:void <init>(java.lang.String,int):42:42 -> <init>
+com.android.tools.r8.ir.optimize.classinliner.ClassInlinerCostAnalysis -> com.android.tools.r8.ir.optimize.o0.c:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set definiteReceiverAliases -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.optimize.inliner.InliningIRProvider inliningIRProvider -> b
+    int estimatedCost -> d
+    1:1:void <clinit>():27:27 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,java.util.Set):38:38 -> <init>
+    2:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,java.util.Set):33:41 -> <init>
+    1:29:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):49:77 -> a
+    30:44:int estimateNumberOfNonMaterializingInstructions(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):107:121 -> a
+    30:44:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):78 -> a
+    45:52:java.util.Set getReceiverAliasesInInlinee(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):144:151 -> a
+    45:52:int estimateNumberOfNonMaterializingInstructions(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):123 -> a
+    45:52:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):78 -> a
+    53:53:int estimateNumberOfNonMaterializingInstructions(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):125:125 -> a
+    53:53:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):78 -> a
+    54:64:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):79:89 -> a
+    65:66:boolean exceedsInstructionBudgetAfterIncrement(int):95:96 -> a
+com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo -> com.android.tools.r8.ir.optimize.o0.d:
+    java.util.List callsReceiver -> a
+    com.android.tools.r8.utils.OptionalBool returnsReceiver -> b
+    boolean hasMonitorOnReceiver -> c
+    1:4:void <init>(java.util.List,com.android.tools.r8.utils.OptionalBool,boolean):29:32 -> <init>
+com.android.tools.r8.ir.optimize.classinliner.ClassInlinerReceiverAnalysis -> com.android.tools.r8.ir.optimize.o0.e:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.code.Value receiver -> d
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.ir.code.IRCode code -> c
+    com.android.tools.r8.graph.DexEncodedMethod method -> b
+    java.util.Map isReceiverAliasCache -> e
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):44:44 -> <init>
+    2:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):42:50 -> <init>
+    1:21:com.android.tools.r8.utils.OptionalBool computeReturnsReceiver():54:74 -> a
+    22:35:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):83:96 -> a
+    36:37:boolean com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement.isRelatedTo(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):90:91 -> a
+    36:37:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):96 -> a
+    38:73:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):98:133 -> a
+    74:74:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):115:115 -> a
+    75:75:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):110:110 -> a
+    1:2:com.android.tools.r8.utils.OptionalBool getOrComputeIsReceiverAlias(com.android.tools.r8.ir.code.Value):78:79 -> b
+com.android.tools.r8.ir.optimize.classinliner.ClassInlinerReceiverSet -> com.android.tools.r8.ir.optimize.o0.f:
+    java.util.Set maybeReceiverAliases -> c
+    java.util.Set illegalReceiverAliases -> d
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.ir.code.Value root -> a
+    java.util.Set definiteReceiverAliases -> b
+    java.util.Map deferredAliasValidityChecks -> e
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value):32:32 -> <init>
+    2:13:void <init>(com.android.tools.r8.ir.code.Value):23:34 -> <init>
+    1:1:java.util.Set getDefiniteReceiverAliases():38:38 -> a
+    2:8:boolean addIllegalReceiverAlias(com.android.tools.r8.ir.code.Value):66:72 -> a
+    9:17:void addDeferredAliasValidityCheck(com.android.tools.r8.ir.code.Value,java.util.function.BooleanSupplier):77:85 -> a
+    18:24:boolean isIllegalReceiverAlias(com.android.tools.r8.ir.code.Value):102:108 -> a
+    18:24:boolean addReceiverAlias(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind):46 -> a
+    25:36:boolean addReceiverAlias(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind):50:61 -> a
+    1:1:boolean isDefiniteReceiverAlias(com.android.tools.r8.ir.code.Value):94:94 -> b
+    2:5:void reset():117:120 -> b
+    1:1:boolean isDefiniteReceiverAlias(com.android.tools.r8.ir.code.Value):94:94 -> c
+    1:1:boolean isReceiverAlias(com.android.tools.r8.ir.code.Value):90 -> c
+    2:2:boolean isMaybeReceiverAlias(com.android.tools.r8.ir.code.Value):98:98 -> c
+    2:2:boolean isReceiverAlias(com.android.tools.r8.ir.code.Value):90 -> c
+    3:3:boolean verifyReceiverSetsAreDisjoint():124:124 -> c
+    4:4:java.util.Set getMaybeReceiverAliases():42:42 -> c
+    4:4:boolean verifyReceiverSetsAreDisjoint():124 -> c
+    5:5:java.util.Set getDefiniteReceiverAliases():38:38 -> c
+    5:5:boolean verifyReceiverSetsAreDisjoint():124 -> c
+    6:6:boolean verifyReceiverSetsAreDisjoint():124:124 -> c
+    1:1:java.util.List lambda$addDeferredAliasValidityCheck$0(com.android.tools.r8.ir.code.Value):84:84 -> d
+com.android.tools.r8.ir.optimize.classinliner.FieldValueHelper -> com.android.tools.r8.ir.optimize.o0.g:
+    com.android.tools.r8.ir.code.Instruction root -> c
+    com.android.tools.r8.graph.AppView appView -> d
+    com.android.tools.r8.ir.code.Value defaultValue -> e
+    com.android.tools.r8.graph.DexField field -> a
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.ir.code.IRCode code -> b
+    java.util.Map ins -> f
+    java.util.Map outs -> g
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):39:39 -> <init>
+    2:13:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):35:46 -> <init>
+    1:8:void replaceValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):50:57 -> a
+    9:45:com.android.tools.r8.ir.code.Value getOrCreateInValue(com.android.tools.r8.ir.code.BasicBlock):86:122 -> a
+    46:75:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):128:157 -> a
+    76:76:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    76:76:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):156 -> a
+    77:81:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):156:160 -> a
+    82:82:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
+    82:82:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):160 -> a
+    83:86:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):162:165 -> a
+    1:3:com.android.tools.r8.ir.code.Value getValueForFieldRead(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):63:65 -> b
+    4:16:com.android.tools.r8.ir.code.Value getOrCreateOutValue(com.android.tools.r8.ir.code.BasicBlock):69:81 -> b
+com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor -> com.android.tools.r8.ir.optimize.o0.j:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.List indirectInlinees -> o
+    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerReceiverSet receivers -> p
+    com.android.tools.r8.ir.optimize.Inliner inliner -> c
+    com.android.tools.r8.ir.code.AliasedValueConfiguration aliasesThroughAssumeAndCheckCasts -> r
+    java.util.Map directInlinees -> n
+    java.util.function.Function isClassEligible -> d
+    com.android.tools.r8.com.google.common.collect.ImmutableSet ALLOWED_ZERO_TEST_TYPES -> q
+    boolean $assertionsDisabled -> s
+    com.android.tools.r8.graph.DexProgramClass eligibleClass -> i
+    com.android.tools.r8.ir.conversion.MethodProcessor methodProcessor -> e
+    com.android.tools.r8.ir.code.Instruction root -> g
+    com.android.tools.r8.ir.code.Value eligibleInstance -> h
+    java.util.Map methodCallsOnInstance -> j
+    java.util.Map extraMethodCalls -> l
+    java.util.Set indirectMethodCallsOnInstance -> k
+    java.util.List unusedArguments -> m
+    com.android.tools.r8.graph.DexEncodedMethod method -> f
+    1:11:void <clinit>():75:85 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Function,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):120:120 -> <init>
+    2:32:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Function,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):98:128 -> <init>
+    1:1:java.util.Map getDirectInlinees():136:136 -> a
+    2:2:boolean lambda$isInstanceEligible$0(com.android.tools.r8.graph.DexType):163:163 -> a
+    3:32:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):214:243 -> a
+    33:33:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    33:33:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):244 -> a
+    34:39:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):250:255 -> a
+    40:40:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> a
+    40:40:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):256 -> a
+    41:44:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):262:265 -> a
+    45:51:boolean isEligibleLibraryMethodCall(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1058:1064 -> a
+    45:51:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):270 -> a
+    52:63:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):274:285 -> a
+    64:90:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):709:735 -> a
+    64:90:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):287 -> a
+    91:91:boolean com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo.receiverMayEscapeOutsideConstructorChain():53:53 -> a
+    91:91:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):736 -> a
+    91:91:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):287 -> a
+    92:97:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):741:746 -> a
+    92:97:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):287 -> a
+    98:98:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    98:98:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):746 -> a
+    98:98:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):287 -> a
+    99:104:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):750:750 -> a
+    99:104:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):287 -> a
+    111:114:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):757:760 -> a
+    111:114:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):287 -> a
+    115:139:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):289:313 -> a
+    140:180:boolean isExtraMethodCallEligible(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):1013:1053 -> a
+    140:180:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):314 -> a
+    181:184:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):323:326 -> a
+    185:185:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):355:355 -> a
+    186:192:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):393:399 -> a
+    186:192:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):356 -> a
+    193:193:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
+    193:193:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):399 -> a
+    193:193:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):356 -> a
+    194:199:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):400:405 -> a
+    194:199:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):356 -> a
+    200:204:boolean forceInlineExtraMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):410:414 -> a
+    200:204:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):358 -> a
+    205:209:void clear():385:389 -> a
+    205:209:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):361 -> a
+    210:217:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):364:371 -> a
+    218:226:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):366:374 -> a
+    227:249:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):479:501 -> a
+    227:249:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):375 -> a
+    250:250:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Value.getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration):273:273 -> a
+    250:250:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):501 -> a
+    250:250:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):375 -> a
+    251:261:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):502:512 -> a
+    251:261:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):375 -> a
+    262:262:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):509:509 -> a
+    262:262:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):375 -> a
+    263:293:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):490:520 -> a
+    263:293:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):375 -> a
+    294:294:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):376:376 -> a
+    295:318:void removeMiscUsages(com.android.tools.r8.ir.code.IRCode):549:572 -> a
+    295:318:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):377 -> a
+    319:372:void removeMiscUsages(com.android.tools.r8.ir.code.IRCode):571:624 -> a
+    319:372:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):377 -> a
+    373:373:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):378:378 -> a
+    374:392:void removeFieldWrites():685:703 -> a
+    374:392:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):379 -> a
+    393:395:void removeFieldWrites():697:699 -> a
+    393:395:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):379 -> a
+    396:398:void removeFieldWrites():687:689 -> a
+    396:398:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):379 -> a
+    399:399:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):380:380 -> a
+    400:406:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):420:426 -> a
+    407:436:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):424:453 -> a
+    437:437:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    437:437:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):453 -> a
+    438:443:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):454:459 -> a
+    444:453:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):455:464 -> a
+    454:454:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):463:463 -> a
+    455:455:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):460:460 -> a
+    456:477:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):450:471 -> a
+    478:506:void removeFieldReads(com.android.tools.r8.ir.code.IRCode):630:658 -> a
+    507:507:int lambda$removeFieldReads$1(com.android.tools.r8.ir.code.InstanceGet):631:631 -> a
+    508:512:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):664:668 -> a
+    513:524:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):667:678 -> a
+    525:525:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    525:525:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):678 -> a
+    526:526:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):679:679 -> a
+    527:527:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
+    527:527:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):679 -> a
+    528:531:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):678:681 -> a
+    532:532:com.android.tools.r8.ir.optimize.classinliner.FieldValueHelper lambda$replaceFieldRead$2(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField):668:668 -> a
+    533:581:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):774:822 -> a
+    533:581:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):872 -> a
+    582:582:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Value.getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration):273:273 -> a
+    582:582:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):822 -> a
+    582:582:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):872 -> a
+    583:585:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):825:827 -> a
+    583:585:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):872 -> a
+    586:586:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Value.getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration):273:273 -> a
+    586:586:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):827 -> a
+    586:586:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):872 -> a
+    587:587:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):831:831 -> a
+    587:587:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):872 -> a
+    588:601:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):803:816 -> a
+    588:601:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):872 -> a
+    602:616:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleDirectVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.function.Supplier):848:862 -> a
+    617:625:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleDirectVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.function.Supplier):861:869 -> a
+    626:654:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleDirectVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.function.Supplier):867:895 -> a
+    655:661:boolean isEligibleIndirectVirtualMethodCall(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):906:912 -> a
+    662:662:boolean lambda$isEligibleIndirectVirtualMethodCall$4(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):917:917 -> a
+    663:706:boolean isEligibleVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):925:968 -> a
+    707:719:boolean isExtraMethodCall(com.android.tools.r8.ir.code.InvokeMethod):973:985 -> a
+    720:732:boolean isEligibleParameterUsages(com.android.tools.r8.ir.code.InvokeMethod,java.util.List,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):1075:1087 -> a
+    733:774:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1100:1141 -> a
+    775:778:boolean isInstanceInitializerEligibleForClassInlining(com.android.tools.r8.graph.DexMethod):1173:1176 -> a
+    775:778:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1142 -> a
+    779:779:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    779:779:boolean isInstanceInitializerEligibleForClassInlining(com.android.tools.r8.graph.DexMethod):1176 -> a
+    779:779:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1142 -> a
+    780:781:boolean isInstanceInitializerEligibleForClassInlining(com.android.tools.r8.graph.DexMethod):1181:1182 -> a
+    780:781:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1142 -> a
+    782:784:boolean isEligibleIndirectVirtualMethodCall(com.android.tools.r8.graph.DexMethod):899:901 -> a
+    782:784:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1138 -> a
+    785:797:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1152:1164 -> a
+    798:798:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1159:1159 -> a
+    799:799:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1197:1197 -> a
+    800:801:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):1186:1187 -> a
+    800:801:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1198 -> a
+    802:802:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    802:802:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):1187 -> a
+    802:802:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1198 -> a
+    803:808:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):1188:1193 -> a
+    803:808:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1198 -> a
+    809:809:boolean com.android.tools.r8.kotlin.KotlinSyntheticClass.isLambda():69:69 -> a
+    809:809:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):1193 -> a
+    809:809:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1198 -> a
+    810:812:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1200:1202 -> a
+    813:820:boolean isEligibleSingleTarget(com.android.tools.r8.graph.DexEncodedMethod):1211:1218 -> a
+    821:821:boolean isEligibleSingleTarget(com.android.tools.r8.graph.DexEncodedMethod):1217:1217 -> a
+    822:822:void lambda$removeInstruction$6(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):1232:1232 -> a
+    823:824:void removeInstruction(com.android.tools.r8.ir.code.Instruction):1232:1233 -> a
+    1:1:com.android.tools.r8.graph.DexProgramClass getEligibleClass():132:132 -> b
+    2:2:boolean lambda$isEligibleParameterUsages$5(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1088:1088 -> b
+    1:1:java.util.List getIndirectInlinees():140:140 -> c
+    1:1:com.android.tools.r8.ir.optimize.classinliner.ClassInlinerReceiverSet getReceivers():144:144 -> d
+    1:1:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassAndUsageEligible():203:203 -> e
+    1:7:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():150:156 -> f
+    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> f
+    8:8:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():156 -> f
+    9:17:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():156:164 -> f
+    18:31:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():160:173 -> f
+    32:32:boolean com.android.tools.r8.ir.code.StaticGet.instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:140 -> f
+    32:32:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():173 -> f
+    33:43:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():174:184 -> f
+    44:44:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> f
+    44:44:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():184 -> f
+    45:49:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():184:188 -> f
+    50:50:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():181:181 -> f
+    1:6:void removeAliasIntroducingInstructionsLinkedToEligibleInstance():525:530 -> g
+    7:7:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> g
+    7:7:void removeAliasIntroducingInstructionsLinkedToEligibleInstance():530 -> g
+    8:21:void removeAliasIntroducingInstructionsLinkedToEligibleInstance():530:543 -> g
+com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind -> com.android.tools.r8.ir.optimize.o0.h:
+    com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind MAYBE -> b
+    com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind DEFINITE -> a
+    1:2:void <clinit>():78:79 -> <clinit>
+    1:1:void <init>(java.lang.String,int):77:77 -> <init>
+com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$IllegalClassInlinerStateException -> com.android.tools.r8.ir.optimize.o0.i:
+    1:1:void <init>():1236:1236 -> <init>
+com.android.tools.r8.ir.optimize.enums.EnumInfoMapCollector -> com.android.tools.r8.ir.optimize.p0.a:
+    java.util.Map valueInfoMaps -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    1:1:void <init>(com.android.tools.r8.graph.AppView):35:35 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.AppView):33:36 -> <init>
+    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness run():40:40 -> a
+    2:44:void processClasses(com.android.tools.r8.graph.DexProgramClass):51:93 -> a
+    2:44:com.android.tools.r8.shaking.AppInfoWithLiveness run():41 -> a
+    45:48:com.android.tools.r8.shaking.AppInfoWithLiveness run():43:46 -> a
+com.android.tools.r8.ir.optimize.enums.EnumUnboxer -> com.android.tools.r8.ir.optimize.p0.c:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map debugLogs -> d
+    com.android.tools.r8.graph.DexItemFactory factory -> e
+    boolean $assertionsDisabled -> f
+    java.util.Set enumsToUnbox -> b
+    boolean debugLogEnabled -> c
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:11:void <init>(com.android.tools.r8.graph.AppView):44:54 -> <init>
+    1:1:void analyzeEnums(com.android.tools.r8.ir.code.IRCode):65:65 -> a
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    2:2:void analyzeEnums(com.android.tools.r8.ir.code.IRCode):65 -> a
+    3:3:void analyzeEnums(com.android.tools.r8.ir.code.IRCode):66:66 -> a
+    4:16:void analyzeEnumsInMethod(com.android.tools.r8.ir.code.IRCode):102:114 -> a
+    4:16:void analyzeEnums(com.android.tools.r8.ir.code.IRCode):69 -> a
+    17:19:void markEnumAsUnboxable(com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason,com.android.tools.r8.graph.DexProgramClass):73:75 -> a
+    20:21:com.android.tools.r8.graph.DexProgramClass getEnumUnboxingCandidateOrNull(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):79:80 -> a
+    22:25:com.android.tools.r8.graph.DexProgramClass getEnumUnboxingCandidateOrNull(com.android.tools.r8.graph.DexType):95:98 -> a
+    22:25:com.android.tools.r8.graph.DexProgramClass getEnumUnboxingCandidateOrNull(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):81 -> a
+    26:30:com.android.tools.r8.graph.DexProgramClass getEnumUnboxingCandidateOrNull(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):83:87 -> a
+    31:34:com.android.tools.r8.graph.DexProgramClass getEnumUnboxingCandidateOrNull(com.android.tools.r8.graph.DexType):95:98 -> a
+    31:34:com.android.tools.r8.graph.DexProgramClass getEnumUnboxingCandidateOrNull(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):88 -> a
+    35:35:com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason validateEnumUsages(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.Set,com.android.tools.r8.graph.DexProgramClass):122:122 -> a
+    36:51:com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason instructionAllowEnumUnboxing(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass):182:197 -> a
+    36:51:com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason validateEnumUsages(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.Set,com.android.tools.r8.graph.DexProgramClass):123 -> a
+    52:52:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    52:52:com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason instructionAllowEnumUnboxing(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass):197 -> a
+    52:52:com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason validateEnumUsages(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.Set,com.android.tools.r8.graph.DexProgramClass):123 -> a
+    53:149:com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason instructionAllowEnumUnboxing(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass):199:295 -> a
+    53:149:com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason validateEnumUsages(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.Set,com.android.tools.r8.graph.DexProgramClass):123 -> a
+    150:163:com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason validateEnumUsages(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.Set,com.android.tools.r8.graph.DexProgramClass):124:137 -> a
+    164:196:void finishEnumAnalysis():141:173 -> a
+    197:204:void reportEnumsAnalysis():299:306 -> a
+    197:204:void finishEnumAnalysis():174 -> a
+    205:220:void reportEnumsAnalysis():301:316 -> a
+    205:220:void finishEnumAnalysis():174 -> a
+    221:222:void reportFailure(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason):320:321 -> a
+com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason -> com.android.tools.r8.ir.optimize.p0.b:
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason OTHER_UNSUPPORTED_INSTRUCTION -> z
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason TYPE_MISSMATCH_FIELD_PUT -> x
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INVALID_FIELD_PUT -> v
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason UNSUPPORTED_LIBRARY_CALL -> t
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason TO_STRING_INVOKE -> r
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason VALUES_INVOKE -> p
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason IMPLICIT_UP_CAST_IN_RETURN -> n
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INVALID_INVOKE -> l
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INVALID_INIT -> j
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INVALID_PHI -> h
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason VIRTUAL_METHOD -> f
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INSTANCE_FIELD -> d
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason SUBTYPES -> b
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INVALID_IF_TYPES -> y
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason FIELD_PUT_ON_ENUM -> w
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason MISSING_INFO_MAP -> u
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason NAME_INVOKE -> s
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason COMPARE_TO_INVOKE -> q
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason VALUE_OF_INVOKE -> o
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INVALID_INVOKE_ON_ARRAY -> m
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INVALID_CLINIT -> k
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason NO_INIT -> i
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason UNEXPECTED_DIRECT_METHOD -> g
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason UNEXPECTED_STATIC_FIELD -> e
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason INTERFACE -> c
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer$Reason ELIGIBLE -> a
+    1:26:void <clinit>():326:351 -> <clinit>
+    1:1:void <init>(java.lang.String,int):325:325 -> <init>
+com.android.tools.r8.ir.optimize.enums.EnumUnboxingCandidateAnalysis -> com.android.tools.r8.ir.optimize.p0.d:
+    com.android.tools.r8.graph.DexItemFactory factory -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.optimize.enums.EnumUnboxer enumUnboxer -> b
+    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.enums.EnumUnboxer):23:26 -> <init>
+    1:2:java.util.Set findCandidates():30:31 -> a
+    3:17:boolean isEnumUnboxingCandidate(com.android.tools.r8.graph.DexProgramClass):40:54 -> a
+    3:17:java.util.Set findCandidates():32 -> a
+    18:26:boolean enumHasBasicStaticFields(com.android.tools.r8.graph.DexProgramClass):97:105 -> a
+    18:26:boolean isEnumUnboxingCandidate(com.android.tools.r8.graph.DexProgramClass):57 -> a
+    18:26:java.util.Set findCandidates():32 -> a
+    27:48:boolean isEnumUnboxingCandidate(com.android.tools.r8.graph.DexProgramClass):58:79 -> a
+    27:48:java.util.Set findCandidates():32 -> a
+    49:49:boolean isStandardEnumInitializer(com.android.tools.r8.graph.DexEncodedMethod):90:90 -> a
+    49:49:boolean isEnumUnboxingCandidate(com.android.tools.r8.graph.DexProgramClass):80 -> a
+    49:49:java.util.Set findCandidates():32 -> a
+    50:51:boolean isEnumUnboxingCandidate(com.android.tools.r8.graph.DexProgramClass):81:82 -> a
+    50:51:java.util.Set findCandidates():32 -> a
+    52:52:java.util.Set findCandidates():33:33 -> a
+com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer -> com.android.tools.r8.ir.optimize.p0.g:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():37:37 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.AppView):42:44 -> <init>
+    1:7:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):142:148 -> a
+    8:46:com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer$EnumSwitchInfo analyzeSwitchOverEnum(com.android.tools.r8.ir.code.Instruction):228:266 -> a
+    8:46:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):149 -> a
+    47:53:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):153:159 -> a
+    54:54:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> a
+    54:54:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> a
+    54:54:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):159 -> a
+    55:63:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):160:168 -> a
+    64:64:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
+    64:64:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):170 -> a
+    65:65:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    65:65:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
+    65:65:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):170 -> a
+    66:74:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):173:181 -> a
+    75:75:void lambda$removeSwitchMaps$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):175:175 -> a
+    1:1:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):49:49 -> b
+    2:2:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> b
+    2:2:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):53 -> b
+    3:45:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):54:96 -> b
+    46:46:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> b
+    46:46:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):96 -> b
+    47:47:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):98:98 -> b
+    48:48:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> b
+    48:48:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):98 -> b
+    49:62:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):101:114 -> b
+    63:63:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> b
+    63:63:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):114 -> b
+    64:64:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):118:118 -> b
+com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer$1 -> com.android.tools.r8.ir.optimize.p0.e:
+com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer$EnumSwitchInfo -> com.android.tools.r8.ir.optimize.p0.f:
+    com.android.tools.r8.ir.code.Instruction arrayGet -> b
+    com.android.tools.r8.ir.code.Instruction staticGet -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap indexMap -> d
+    com.android.tools.r8.ir.code.Instruction ordinalInvoke -> a
+    java.util.Map valueInfoMap -> e
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Map,com.android.tools.r8.ir.optimize.enums.EnumValueOptimizer$1):186:186 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Map):201:207 -> <init>
+com.android.tools.r8.ir.optimize.info.BottomCallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.a:
+    com.android.tools.r8.ir.optimize.info.BottomCallSiteOptimizationInfo INSTANCE -> d
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>():10:10 -> <init>
+    boolean isBottom() -> b
+com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.b:
+    com.android.tools.r8.ir.optimize.info.TopCallSiteOptimizationInfo TOP -> b
+    com.android.tools.r8.ir.optimize.info.BottomCallSiteOptimizationInfo BOTTOM -> a
+    boolean $assertionsDisabled -> c
+    1:3:void <clinit>():15:17 -> <clinit>
+    1:1:void <init>():15:15 -> <init>
+    com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo asConcreteCallSiteOptimizationInfo() -> a
+    boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod) -> a
+    1:12:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):37:48 -> a
+    13:13:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):44:44 -> a
+    14:14:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractArgumentValue(int):72:72 -> a
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(int) -> b
+    boolean isBottom() -> b
+    boolean isConcreteCallSiteOptimizationInfo() -> c
+    boolean isTop() -> d
+com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap constants -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap dynamicUpperBoundTypes -> e
+    boolean $assertionsDisabled -> g
+    int size -> d
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:5:void <init>(int,boolean):38:42 -> <init>
+    com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo asConcreteCallSiteOptimizationInfo() -> a
+    1:26:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):47:72 -> a
+    27:35:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):71:79 -> a
+    36:42:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):83:89 -> a
+    36:42:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
+    43:49:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):88:94 -> a
+    43:49:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
+    50:50:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):93:93 -> a
+    50:50:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
+    51:81:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):102:132 -> a
+    82:87:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractArgumentValue(int):148:153 -> a
+    88:89:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo fromArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):160:161 -> a
+    90:90:void <init>(com.android.tools.r8.graph.DexEncodedMethod,boolean):34:34 -> a
+    90:90:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo fromArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):161 -> a
+    91:118:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo fromArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):163:190 -> a
+    1:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(int):141:143 -> b
+    boolean isConcreteCallSiteOptimizationInfo() -> c
+    1:6:boolean equals(java.lang.Object):205:210 -> equals
+    1:2:int hashCode():215:216 -> hashCode
+    1:2:java.lang.String toString():221:222 -> toString
+com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.d:
+    com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo INSTANCE -> a
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:1:void <init>():16:16 -> <init>
+    boolean cannotBeKept() -> b
+    1:1:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue():34:34 -> c
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> d
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> e
+    int getReadBits() -> f
+    boolean isDefaultFieldOptimizationInfo() -> g
+    1:1:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():24:24 -> i
+    boolean valueHasBeenPropagated() -> j
+    1:1:com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo getInstance():19:19 -> k
+com.android.tools.r8.ir.optimize.info.DefaultMethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.e:
+    boolean UNKNOWN_MAY_HAVE_SIDE_EFFECTS -> n
+    boolean UNKNOWN_RETURN_VALUE_ONLY_DEPENDS_ON_ARGUMENTS -> o
+    boolean UNKNOWN_CHECKS_NULL_RECEIVER_BEFORE_ANY_SIDE_EFFECT -> i
+    com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo UNKNOWN_PARAMETER_USAGE_INFO -> m
+    boolean UNKNOWN_TRIGGERS_CLASS_INIT_BEFORE_ANY_SIDE_EFFECT -> j
+    boolean UNKNOWN_INITIALIZER_ENABLING_JAVA_ASSERTIONS -> l
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement UNKNOWN_CLASS_TYPE -> h
+    java.util.BitSet NO_NULL_PARAMETER_ON_NORMAL_EXITS_FACTS -> q
+    java.util.Set UNKNOWN_INITIALIZED_CLASSES_ON_NORMAL_EXIT -> b
+    java.util.BitSet NO_NULL_PARAMETER_OR_THROW_FACTS -> p
+    int UNKNOWN_RETURNED_ARGUMENT -> c
+    boolean $assertionsDisabled -> r
+    com.android.tools.r8.ir.analysis.value.AbstractValue UNKNOWN_ABSTRACT_RETURN_VALUE -> f
+    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo UNKNOWN_CLASS_INLINER_ELIGIBILITY -> k
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo DEFAULT_INSTANCE -> a
+    boolean UNKNOWN_NEVER_RETURNS_NORMALLY -> e
+    boolean UNKNOWN_NEVER_RETURNS_NULL -> d
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement UNKNOWN_TYPE -> g
+    1:20:void <clinit>():20:39 -> <clinit>
+    1:1:void <init>():41:41 -> <init>
+    1:1:java.util.Set getInitializedClassesOnNormalExit():80:80 -> A
+    java.util.BitSet getNonNullParamOrThrow() -> B
+    1:1:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsages(int):90:90 -> a
+    2:2:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo mutableCopy():187:187 -> a
+    java.util.BitSet getNonNullParamOnNormalExits() -> b
+    boolean cannotBeKept() -> c
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> d
+    boolean checksNullReceiverBeforeAnySideEffect() -> e
+    boolean returnValueHasBeenPropagated() -> f
+    1:1:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractReturnValue():142:142 -> g
+    boolean classInitializerMayBePostponed() -> h
+    1:2:int getReturnedArgument():121:122 -> i
+    1:1:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo getInstanceInitializerInfo():85:85 -> j
+    boolean returnValueOnlyDependsOnArguments() -> k
+    boolean neverInline() -> l
+    boolean neverReturnsNormally() -> m
+    boolean triggersClassInitBeforeAnySideEffect() -> n
+    boolean returnsArgument() -> o
+    boolean isUpdatableMethodOptimizationInfo() -> p
+    boolean neverReturnsNull() -> q
+    boolean isReachabilitySensitive() -> r
+    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> s
+    boolean forceInline() -> t
+    boolean isDefaultMethodOptimizationInfo() -> u
+    1:1:boolean mayHaveSideEffects():172:172 -> v
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> w
+    boolean hasBeenInlinedIntoSingleCallSite() -> x
+    boolean isInitializerEnablingJavaVmAssertions() -> y
+    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo getClassInlinerEligibility() -> z
+com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.f:
+    1:1:void <init>():11:11 -> <init>
+    com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo asMutableFieldOptimizationInfo() -> a
+    boolean cannotBeKept() -> b
+    com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue() -> c
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> d
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> e
+    int getReadBits() -> f
+    boolean isDefaultFieldOptimizationInfo() -> g
+    boolean isMutableFieldOptimizationInfo() -> h
+    com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy() -> i
+    boolean valueHasBeenPropagated() -> j
+com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.g:
+    java.util.Set getInitializedClassesOnNormalExit() -> A
+    java.util.BitSet getNonNullParamOrThrow() -> B
+    com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsages(int) -> a
+    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo mutableCopy() -> a
+    java.util.BitSet getNonNullParamOnNormalExits() -> b
+    boolean cannotBeKept() -> c
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> d
+    boolean checksNullReceiverBeforeAnySideEffect() -> e
+    boolean returnValueHasBeenPropagated() -> f
+    com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractReturnValue() -> g
+    boolean classInitializerMayBePostponed() -> h
+    int getReturnedArgument() -> i
+    com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo getInstanceInitializerInfo() -> j
+    boolean returnValueOnlyDependsOnArguments() -> k
+    boolean neverInline() -> l
+    boolean neverReturnsNormally() -> m
+    boolean triggersClassInitBeforeAnySideEffect() -> n
+    boolean returnsArgument() -> o
+    boolean isUpdatableMethodOptimizationInfo() -> p
+    boolean neverReturnsNull() -> q
+    boolean isReachabilitySensitive() -> r
+    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> s
+    boolean forceInline() -> t
+    boolean isDefaultMethodOptimizationInfo() -> u
+    boolean mayHaveSideEffects() -> v
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> w
+    boolean hasBeenInlinedIntoSingleCallSite() -> x
+    boolean isInitializerEnablingJavaVmAssertions() -> y
+    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo getClassInlinerEligibility() -> z
+com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference -> com.android.tools.r8.ir.optimize.info.g$a:
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference NeverInline -> a
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference ForceInline -> b
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference Default -> c
+    1:3:void <clinit>():20:22 -> <clinit>
+    1:1:void <init>(java.lang.String,int):19:19 -> <init>
+com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector -> com.android.tools.r8.ir.optimize.info.i:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.utils.InternalOptions options -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():109:109 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView):114:117 -> <init>
+    1:1:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):126:126 -> a
+    2:6:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):286:290 -> a
+    2:6:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):127 -> a
+    7:13:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage collectParameterUsages(int,com.android.tools.r8.ir.code.Value):306:312 -> a
+    7:13:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):293 -> a
+    7:13:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):127 -> a
+    14:21:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):295:302 -> a
+    14:21:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):127 -> a
+    22:22:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):298:298 -> a
+    22:22:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):127 -> a
+    23:57:void identifyReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):317:351 -> a
+    23:57:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):128 -> a
+    58:59:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):129:130 -> a
+    60:63:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):630:633 -> a
+    60:63:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):130 -> a
+    64:70:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):632:638 -> a
+    64:70:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):130 -> a
+    71:71:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):637:637 -> a
+    71:71:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):130 -> a
+    72:90:void computeDynamicReturnType(com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):889:907 -> a
+    72:90:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):132 -> a
+    91:97:void computeInitializedClassesOnNormalExit(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):914:920 -> a
+    91:97:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):133 -> a
+    98:121:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):360:383 -> a
+    98:121:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    122:122:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):410:410 -> a
+    122:122:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    122:122:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    123:123:boolean com.android.tools.r8.graph.DexClass.definesFinalizer(com.android.tools.r8.graph.DexItemFactory):847:847 -> a
+    123:123:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):410 -> a
+    123:123:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    123:123:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    124:313:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):415:604 -> a
+    124:313:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    124:313:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    314:319:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):589:594 -> a
+    314:319:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    314:319:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    320:343:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):557:580 -> a
+    320:343:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    320:343:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    344:346:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):509:511 -> a
+    344:346:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    344:346:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    347:347:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    347:347:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):511 -> a
+    347:347:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    347:347:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    348:373:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):515:540 -> a
+    348:373:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    348:373:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    374:399:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):522:547 -> a
+    374:399:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    374:399:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    400:417:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):485:502 -> a
+    400:417:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    400:417:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    418:428:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):467:477 -> a
+    418:428:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    418:428:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    429:622:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder):432:625 -> a
+    429:622:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):385 -> a
+    429:622:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    623:623:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):390:390 -> a
+    623:623:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    624:624:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):386:386 -> a
+    624:624:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):134 -> a
+    625:625:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):135:135 -> a
+    626:632:void computeReturnValueOnlyDependsOnArguments(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):1003:1009 -> a
+    626:632:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):136 -> a
+    633:655:void computeNonNullParamOrThrow(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):1016:1038 -> a
+    633:655:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):137 -> a
+    656:687:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):1043:1074 -> a
+    656:687:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):138 -> a
+    688:733:boolean isNormalExitDominated(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree,java.util.Set):1096:1141 -> a
+    688:733:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):1075 -> a
+    688:733:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):138 -> a
+    734:739:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):1081:1086 -> a
+    734:739:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):138 -> a
+    740:753:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):156:169 -> a
+    754:754:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    754:754:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):169 -> a
+    755:839:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):174:258 -> a
+    840:847:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):232:239 -> a
+    848:852:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):216:220 -> a
+    853:938:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):195:280 -> a
+    939:939:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):276:276 -> a
+    940:940:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Value.getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration):273:273 -> a
+    940:940:boolean lambda$identifyClassInlinerEligibility$0(com.android.tools.r8.ir.code.AliasedValueConfiguration,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):180 -> a
+    941:941:boolean triggersClassInitializationBeforeSideEffect(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):650:650 -> a
+    942:958:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$triggersClassInitializationBeforeSideEffect$1(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):653:669 -> a
+    959:1017:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):681:739 -> a
+    1018:1057:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):700:739 -> a
+    1058:1070:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):727:739 -> a
+    1071:1071:boolean checksNullBeforeSideEffect(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):750:750 -> a
+    1072:1076:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):753:757 -> a
+    1077:1095:boolean isKotlinNullCheck(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):833:851 -> a
+    1077:1095:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):759 -> a
+    1096:1115:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):760:779 -> a
+    1116:1121:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):778:783 -> a
+    1122:1129:boolean isInstantiationOfNullPointerException(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.graph.DexItemFactory):870:877 -> a
+    1122:1129:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):783 -> a
+    1130:1150:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):784:804 -> a
+    1151:1153:boolean isNullCheck(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):859:861 -> a
+    1154:1165:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):928:939 -> a
+    1166:1166:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):42:42 -> a
+    1166:1166:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):940 -> a
+    1167:1167:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> a
+    1167:1167:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):43 -> a
+    1167:1167:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):940 -> a
+    1168:1179:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):46:57 -> a
+    1168:1179:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):940 -> a
+    1180:1180:com.android.tools.r8.ir.analysis.AbstractError com.android.tools.r8.ir.code.Instruction.instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):563:563 -> a
+    1180:1180:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58 -> a
+    1180:1180:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):940 -> a
+    1181:1189:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58:66 -> a
+    1181:1189:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):940 -> a
+    1190:1216:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):59:85 -> a
+    1190:1216:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):940 -> a
+    1217:1272:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):78:133 -> a
+    1217:1272:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):940 -> a
+    1273:1273:boolean com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect.isNone():32:32 -> a
+    1273:1273:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):941 -> a
+    1274:1275:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):942:943 -> a
+    1276:1276:boolean com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect.canBePostponed():28:28 -> a
+    1276:1276:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):944 -> a
+    1277:1279:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):945:947 -> a
+    1280:1281:boolean com.android.tools.r8.graph.DexType.isD8R8SynthesizedLambdaClassType():268:269 -> a
+    1280:1281:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):947 -> a
+    1282:1285:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):947:947 -> a
+    1288:1296:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):950:958 -> a
+    1297:1297:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):977:977 -> a
+    1297:1297:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):958 -> a
+    1298:1298:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    1298:1298:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):977 -> a
+    1298:1298:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):958 -> a
+    1299:1307:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):979:987 -> a
+    1299:1307:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):958 -> a
+    1308:1312:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):966:970 -> a
+    1313:1313:boolean lambda$computeMayHaveSideEffects$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):967:967 -> a
+com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect -> com.android.tools.r8.ir.optimize.info.h:
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect DESIRED_EFFECT -> a
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect NO_EFFECT -> d
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect OTHER_EFFECT -> c
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect CONDITIONAL_EFFECT -> b
+    1:4:void <clinit>():823:826 -> <clinit>
+    1:1:void <init>(java.lang.String,int):822:822 -> <init>
+com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.j:
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement dynamicUpperBoundType -> f
+    int readBits -> b
+    boolean cannotBeKept -> c
+    com.android.tools.r8.ir.analysis.value.AbstractValue abstractValue -> a
+    boolean valueHasBeenPropagated -> d
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement dynamicLowerBoundType -> e
+    1:8:void <init>():23:30 -> <init>
+    com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo asMutableFieldOptimizationInfo() -> a
+    1:5:void fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):34:38 -> a
+    6:6:void setAbstractValue(com.android.tools.r8.ir.analysis.value.AbstractValue):56:56 -> a
+    7:7:void joinReadBits(int):65:65 -> a
+    8:8:void setDynamicLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):83:83 -> a
+    9:9:void setDynamicUpperBoundType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):92:92 -> a
+    1:1:boolean cannotBeKept():70:70 -> b
+    1:1:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue():52:52 -> c
+    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():79:79 -> d
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType():88:88 -> e
+    1:1:int getReadBits():61:61 -> f
+    boolean isMutableFieldOptimizationInfo() -> h
+    1:1:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():44:44 -> i
+    2:2:boolean cannotBeKept():70:70 -> i
+    2:2:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():45 -> i
+    3:3:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():45:45 -> i
+    4:4:boolean valueHasBeenPropagated():97:97 -> i
+    4:4:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():46 -> i
+    5:5:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():46:46 -> i
+    1:1:boolean valueHasBeenPropagated():97:97 -> j
+    1:1:void markAsPropagated():101:101 -> k
+    1:1:void markCannotBeKept():74:74 -> l
+com.android.tools.r8.ir.optimize.info.OptimizationFeedback -> com.android.tools.r8.ir.optimize.info.k:
+    1:1:void <init>():18:18 -> <init>
+    void modifyAppInfoWithLiveness(java.util.function.Consumer) -> a
+    1:1:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):32:32 -> a
+    2:2:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):31:31 -> a
+    3:4:void lambda$fixupOptimizationInfos$0(com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer,com.android.tools.r8.graph.DexProgramClass):34:35 -> a
+com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer -> com.android.tools.r8.ir.optimize.info.k$a:
+    void fixup(com.android.tools.r8.graph.DexEncodedField) -> a
+    void fixup(com.android.tools.r8.graph.DexEncodedMethod) -> a
+com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed -> com.android.tools.r8.ir.optimize.info.l:
+    java.util.Map fieldOptimizationInfos -> b
+    java.util.Map methodOptimizationInfos -> c
+    java.util.Map processed -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.shaking.AppInfoWithLivenessModifier appInfoWithLivenessModifier -> a
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:10:void <init>():29:38 -> <init>
+    1:2:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):66:67 -> a
+    3:3:void modifyAppInfoWithLiveness(java.util.function.Consumer):72:72 -> a
+    4:4:void refineAppInfoWithLiveness(com.android.tools.r8.shaking.AppInfoWithLiveness):76:76 -> a
+    5:5:boolean lambda$updateVisibleOptimizationInfo$0(java.util.Map$Entry):84:84 -> a
+    6:12:boolean noUpdatesLeft():101:107 -> a
+    13:13:void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField):120:120 -> a
+    14:14:void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):126:126 -> a
+    15:15:void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):131:131 -> a
+    16:16:void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int):136:136 -> a
+    17:18:void recordFieldHasAbstractValue(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue):142:143 -> a
+    19:20:void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):167:168 -> a
+    21:21:void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int):173:173 -> a
+    22:23:void methodReturnsAbstractValue(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue):179:180 -> a
+    24:24:void methodReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):187:187 -> a
+    25:25:void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):193:193 -> a
+    26:26:void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod):203:203 -> a
+    27:27:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):223:223 -> a
+    28:28:void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean):235:235 -> a
+    29:29:void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):241:241 -> a
+    30:31:void setInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):247:248 -> a
+    32:32:void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo):259:259 -> a
+    33:33:void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):264:264 -> a
+    1:3:void updateVisibleOptimizationInfo():83:83 -> b
+    5:17:void updateVisibleOptimizationInfo():85:97 -> b
+    18:18:boolean lambda$updateVisibleOptimizationInfo$1(java.util.Map$Entry):85:85 -> b
+    19:19:void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField):115:115 -> b
+    20:20:void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod):208:208 -> b
+    21:21:void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean):229:229 -> b
+    22:22:void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):269:269 -> b
+    1:6:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo getFieldOptimizationInfoForUpdating(com.android.tools.r8.graph.DexEncodedField):42:47 -> c
+    7:7:void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod):156:156 -> c
+    1:1:void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod):213:213 -> d
+    1:1:void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod):198:198 -> e
+    1:1:void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod):274:274 -> f
+    1:1:void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod):161:161 -> g
+    1:1:void setInitializerEnablingJavaVmAssertions(com.android.tools.r8.graph.DexEncodedMethod):253:253 -> h
+    1:6:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo getMethodOptimizationInfoForUpdating(com.android.tools.r8.graph.DexEncodedMethod):53:58 -> i
+com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore -> com.android.tools.r8.ir.optimize.info.m:
+    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore INSTANCE -> a
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>():25:25 -> <init>
+    void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField) -> a
+    void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int) -> a
+    void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
+    void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
+    void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget) -> a
+    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
+    void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
+    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> a
+    void methodReturnsAbstractValue(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
+    void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
+    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
+    void methodReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
+    void recordFieldHasAbstractValue(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
+    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo) -> a
+    void setInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo) -> a
+    void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> a
+    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo) -> a
+    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore getInstance():28:28 -> a
+    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
+    void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField) -> b
+    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> b
+    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
+    void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod) -> c
+    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> d
+    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> e
+    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> f
+    void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod) -> g
+    void setInitializerEnablingJavaVmAssertions(com.android.tools.r8.graph.DexEncodedMethod) -> h
+com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore$1 -> com.android.tools.r8.ir.optimize.info.m$a:
+    1:1:void <init>():23:23 -> <init>
+com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple -> com.android.tools.r8.ir.optimize.info.n:
+    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple INSTANCE -> a
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>():25:25 -> <init>
+    void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int) -> a
+    void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
+    void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
+    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
+    void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
+    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> a
+    void methodReturnsAbstractValue(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
+    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
+    void methodReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
+    void recordFieldHasAbstractValue(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
+    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo) -> a
+    void setInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo) -> a
+    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo) -> a
+    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple getInstance():28:28 -> a
+    2:2:void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField):40:40 -> a
+    3:3:void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int):90:90 -> a
+    4:4:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):139:139 -> a
+    5:5:void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):176:176 -> a
+    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
+    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> b
+    1:1:void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField):35:35 -> b
+    2:2:void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):181:181 -> b
+    1:1:void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod):74:74 -> c
+    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> d
+    1:1:void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod):123:123 -> e
+    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> f
+    1:1:void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> g
+    1:1:void setInitializerEnablingJavaVmAssertions(com.android.tools.r8.graph.DexEncodedMethod):166:166 -> h
+com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo -> com.android.tools.r8.ir.optimize.info.o:
+    boolean $assertionsDisabled -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableList parametersUsages -> a
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:5:void <init>(java.util.List):35:39 -> <init>
+    6:6:void <init>(java.util.List):38:38 -> <init>
+    1:1:java.lang.Integer lambda$new$0(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage):39:39 -> a
+    2:3:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsage(int):43:44 -> a
+    1:2:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):52:53 -> b
+    3:3:java.lang.Object com.android.tools.r8.utils.ListUtils.last(java.util.List):20:20 -> b
+    3:3:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):53 -> b
+    4:8:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):53:57 -> b
+    9:10:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage.copyAndShift(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,int):117:118 -> b
+    9:10:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):58 -> b
+    11:24:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):58:71 -> b
+com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage -> com.android.tools.r8.ir.optimize.info.o$a:
+    boolean $assertionsDisabled -> i
+    java.util.List callsReceiver -> c
+    boolean hasFieldRead -> e
+    boolean isAssignedToField -> f
+    boolean isReturned -> g
+    java.util.Set ifZeroTest -> b
+    boolean isUsedInMonitor -> h
+    int index -> a
+    boolean hasFieldAssignment -> d
+    1:1:void <clinit>():74:74 -> <clinit>
+    1:11:void <init>(int,java.util.Set,java.util.List,boolean,boolean,boolean,boolean,boolean):103:113 -> <init>
+    1:2:boolean notUsed():130:131 -> a
+com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsageBuilder -> com.android.tools.r8.ir.optimize.info.p:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
+    boolean isReturned -> i
+    java.util.Set ifZeroTestTypes -> d
+    java.util.List callsOnReceiver -> e
+    boolean isUsedInMonitor -> j
+    boolean $assertionsDisabled -> k
+    boolean hasFieldAssignment -> f
+    com.android.tools.r8.ir.code.Value arg -> b
+    boolean hasFieldRead -> g
+    boolean isAssignedToField -> h
+    int index -> a
+    1:1:void <clinit>():140:140 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.graph.DexItemFactory):155:155 -> <init>
+    2:14:void <init>(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.graph.DexItemFactory):146:158 -> <init>
+    1:7:boolean note(com.android.tools.r8.ir.code.Instruction):163:169 -> a
+    8:10:boolean note(com.android.tools.r8.ir.code.If):205:207 -> a
+    8:10:boolean note(com.android.tools.r8.ir.code.Instruction):169 -> a
+    11:13:boolean note(com.android.tools.r8.ir.code.If):206:208 -> a
+    11:13:boolean note(com.android.tools.r8.ir.code.Instruction):169 -> a
+    14:15:boolean note(com.android.tools.r8.ir.code.Instruction):171:172 -> a
+    16:18:boolean note(com.android.tools.r8.ir.code.InstanceGet):215:217 -> a
+    16:18:boolean note(com.android.tools.r8.ir.code.Instruction):172 -> a
+    19:20:boolean note(com.android.tools.r8.ir.code.Instruction):174:175 -> a
+    21:28:boolean note(com.android.tools.r8.ir.code.InstancePut):224:231 -> a
+    21:28:boolean note(com.android.tools.r8.ir.code.Instruction):175 -> a
+    29:33:boolean note(com.android.tools.r8.ir.code.Instruction):177:181 -> a
+    34:36:boolean note(com.android.tools.r8.ir.code.InvokeStatic):250:252 -> a
+    34:36:boolean note(com.android.tools.r8.ir.code.Instruction):181 -> a
+    37:38:boolean note(com.android.tools.r8.ir.code.Instruction):183:184 -> a
+    39:41:boolean note(com.android.tools.r8.ir.code.Return):260:260 -> a
+    39:41:boolean note(com.android.tools.r8.ir.code.Instruction):184 -> a
+    43:43:boolean note(com.android.tools.r8.ir.code.Return):262:262 -> a
+    43:43:boolean note(com.android.tools.r8.ir.code.Instruction):184 -> a
+    44:45:boolean note(com.android.tools.r8.ir.code.Instruction):186:187 -> a
+    46:48:boolean note(com.android.tools.r8.ir.code.Monitor):267:269 -> a
+    46:48:boolean note(com.android.tools.r8.ir.code.Instruction):187 -> a
+    49:49:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage build():193:193 -> a
+    50:50:boolean lambda$note$0(com.android.tools.r8.ir.code.Value):239:239 -> a
+    51:51:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):239:239 -> a
+    52:57:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):238:243 -> a
+    58:58:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):240:240 -> a
+com.android.tools.r8.ir.optimize.info.TopCallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.q:
+    com.android.tools.r8.ir.optimize.info.TopCallSiteOptimizationInfo INSTANCE -> d
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>():10:10 -> <init>
+    boolean isTop() -> d
+com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.r:
+    com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo parametersUsages -> i
+    boolean $assertionsDisabled -> n
+    int flags -> l
+    int DEFAULT_FLAGS -> m
+    java.util.BitSet nonNullParamOnNormalExits -> k
+    java.util.BitSet nonNullParamOrThrow -> j
+    java.util.Set initializedClassesOnNormalExit -> a
+    com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo instanceInitializerInfo -> h
+    int returnedArgument -> b
+    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference inlining -> f
+    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement returnsObjectWithLowerBoundType -> e
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement returnsObjectWithUpperBoundType -> d
+    com.android.tools.r8.ir.analysis.value.AbstractValue abstractReturnValue -> c
+    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo classInlinerEligibility -> g
+    1:96:void <clinit>():22:117 -> <clinit>
+    1:1:void <init>():122:122 -> <init>
+    2:98:void <init>():24:120 -> <init>
+    99:99:void <init>(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):128:128 -> <init>
+    100:216:void <init>(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):24:140 -> <init>
+    1:1:java.util.Set getInitializedClassesOnNormalExit():221:221 -> A
+    1:1:java.util.BitSet getNonNullParamOrThrow():236:236 -> B
+    1:26:void adjustOptimizationInfoAfterRemovingThisParameter():459:484 -> C
+    27:27:void markCheckNullReceiverBeforeAnySideEffect(boolean):433:433 -> C
+    27:27:void adjustOptimizationInfoAfterRemovingThisParameter():484 -> C
+    28:28:void adjustOptimizationInfoAfterRemovingThisParameter():487:487 -> C
+    29:29:void markTriggerClassInitBeforeAnySideEffect(boolean):437:437 -> C
+    29:29:void adjustOptimizationInfoAfterRemovingThisParameter():487 -> C
+    30:49:void adjustOptimizationInfoAfterRemovingThisParameter():490:509 -> C
+    1:1:void markAsPropagated():442:442 -> D
+    1:1:void markCannotBeKept():197:197 -> E
+    1:1:void markClassInitializerMayBePostponed():206:206 -> F
+    1:2:void markForceInline():414:415 -> G
+    1:1:void markInlinedIntoSingleCallSite():250:250 -> H
+    1:1:void markMayNotHaveSideEffects():363:363 -> I
+    1:2:void markNeverInline():428:429 -> J
+    1:1:void markNeverReturnsNormally():375:375 -> K
+    1:1:void markNeverReturnsNull():371:371 -> L
+    1:1:void markReturnValueOnlyDependsOnArguments():367:367 -> M
+    1:1:void setInitializerEnablingJavaAssertions():349:349 -> N
+    1:2:void unsetForceInline():421:422 -> O
+    1:7:void fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):145:151 -> a
+    8:8:void setFlag(int):164:164 -> a
+    8:8:void setFlag(int,boolean):157 -> a
+    9:9:void clearFlag(int):168:168 -> a
+    9:9:void setFlag(int,boolean):159 -> a
+    10:10:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsages(int):231:231 -> a
+    11:11:void setParameterUsages(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo):325:325 -> a
+    12:12:void setNonNullParamOnNormalExits(java.util.BitSet):333:333 -> a
+    13:13:void setClassInlinerEligibility(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):341:341 -> a
+    14:14:void setInstanceInitializerInfo(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):345:345 -> a
+    15:15:void markInitializesClassesOnNormalExit(java.util.Set):353:353 -> a
+    16:18:void markReturnsAbstractValue(com.android.tools.r8.ir.analysis.value.AbstractValue):379:381 -> a
+    19:28:void markReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):385:394 -> a
+    29:32:void markReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):393:396 -> a
+    33:39:void markReturnsObjectWithLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):400:406 -> a
+    40:45:void markReturnsObjectWithLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):403:408 -> a
+    46:46:void markCheckNullReceiverBeforeAnySideEffect(boolean):433:433 -> a
+    47:48:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo mutableCopy():452:453 -> a
+    1:1:void clearFlag(int):168:168 -> b
+    2:2:java.util.BitSet getNonNullParamOnNormalExits():241:241 -> b
+    3:3:void setNonNullParamOrThrow(java.util.BitSet):329:329 -> b
+    4:4:void markTriggerClassInitBeforeAnySideEffect(boolean):437:437 -> b
+    1:1:boolean isFlagSet(int):172:172 -> c
+    2:2:boolean cannotBeKept():192:192 -> c
+    3:3:void setReachabilitySensitive(boolean):337:337 -> c
+    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType():211:211 -> d
+    2:4:void markReturnsArgument(int):357:359 -> d
+    1:1:void setFlag(int):164:164 -> e
+    2:2:boolean checksNullReceiverBeforeAnySideEffect():306:306 -> e
+    1:1:boolean returnValueHasBeenPropagated():447:447 -> f
+    1:1:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractReturnValue():286:286 -> g
+    1:1:boolean classInitializerMayBePostponed():202:202 -> h
+    1:2:int getReturnedArgument():265:266 -> i
+    1:1:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo getInstanceInitializerInfo():226:226 -> j
+    1:1:boolean returnValueOnlyDependsOnArguments():321:321 -> k
+    1:1:boolean neverInline():301:301 -> l
+    1:1:boolean neverReturnsNormally():276:276 -> m
+    1:1:boolean triggersClassInitBeforeAnySideEffect():311:311 -> n
+    1:1:boolean returnsArgument():260:260 -> o
+    boolean isUpdatableMethodOptimizationInfo() -> p
+    1:1:boolean neverReturnsNull():271:271 -> q
+    1:1:boolean isReachabilitySensitive():255:255 -> r
+    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> s
+    1:1:boolean forceInline():296:296 -> t
+    boolean isDefaultMethodOptimizationInfo() -> u
+    1:1:boolean mayHaveSideEffects():316:316 -> v
+    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():216:216 -> w
+    1:1:boolean hasBeenInlinedIntoSingleCallSite():246:246 -> x
+    1:1:boolean isInitializerEnablingJavaVmAssertions():291:291 -> y
+    1:1:com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo getClassInlinerEligibility():281:281 -> z
+com.android.tools.r8.ir.optimize.info.field.EmptyInstanceFieldInitializationInfoCollection -> com.android.tools.r8.ir.optimize.info.s.a:
+    com.android.tools.r8.ir.optimize.info.field.EmptyInstanceFieldInitializationInfoCollection INSTANCE -> a
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:1:void <init>():19:19 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfo get(com.android.tools.r8.graph.DexEncodedField):27:27 -> a
+    boolean isEmpty() -> b
+    1:1:com.android.tools.r8.ir.optimize.info.field.EmptyInstanceFieldInitializationInfoCollection getInstance():22:22 -> c
+com.android.tools.r8.ir.optimize.info.field.InstanceFieldArgumentInitializationInfo -> com.android.tools.r8.ir.optimize.info.s.b:
+    int argumentIndex -> a
+    1:2:void <init>(int):16:17 -> <init>
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldArgumentInitializationInfo asArgumentInitializationInfo() -> a
+    boolean isArgumentInitializationInfo() -> b
+    1:1:int getArgumentIndex():21:21 -> d
+com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfo -> com.android.tools.r8.ir.optimize.info.s.c:
+    1:1:void <init>():14:14 -> <init>
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldArgumentInitializationInfo asArgumentInitializationInfo() -> a
+    boolean isArgumentInitializationInfo() -> b
+    boolean isUnknown() -> c
+com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection -> com.android.tools.r8.ir.optimize.info.s.e:
+    1:1:void <init>():19:19 -> <init>
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfo get(com.android.tools.r8.graph.DexEncodedField) -> a
+    1:1:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection$Builder builder():22:22 -> a
+    boolean isEmpty() -> b
+com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection$Builder -> com.android.tools.r8.ir.optimize.info.s.d:
+    java.util.Map infos -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:3:void <init>():29:31 -> <init>
+    1:2:void recordInitializationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfo):35:36 -> a
+    3:6:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection build():40:43 -> a
+com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoFactory -> com.android.tools.r8.ir.optimize.info.s.f:
+    java.util.concurrent.ConcurrentHashMap argumentInitializationInfos -> a
+    1:3:void <init>():9:11 -> <init>
+    1:3:com.android.tools.r8.ir.optimize.info.field.InstanceFieldArgumentInitializationInfo createArgumentInitializationInfo(int):16:16 -> a
+com.android.tools.r8.ir.optimize.info.field.NonTrivialInstanceFieldInitializationInfoCollection -> com.android.tools.r8.ir.optimize.info.s.g:
+    java.util.Map infos -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:4:void <init>(java.util.Map):18:21 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfo get(com.android.tools.r8.graph.DexEncodedField):26:26 -> a
+    boolean isEmpty() -> b
+com.android.tools.r8.ir.optimize.info.field.UnknownInstanceFieldInitializationInfo -> com.android.tools.r8.ir.optimize.info.s.h:
+    com.android.tools.r8.ir.optimize.info.field.UnknownInstanceFieldInitializationInfo INSTANCE -> a
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>():16:16 -> <init>
+    boolean isUnknown() -> c
+    1:1:com.android.tools.r8.ir.optimize.info.field.UnknownInstanceFieldInitializationInfo getInstance():19:19 -> d
+com.android.tools.r8.ir.optimize.info.initializer.DefaultInstanceInitializerInfo -> com.android.tools.r8.ir.optimize.info.t.a:
+    com.android.tools.r8.ir.optimize.info.initializer.DefaultInstanceInitializerInfo INSTANCE -> a
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>():18:18 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection fieldInitializationInfos():36:36 -> a
+    com.android.tools.r8.graph.DexMethod getParent() -> b
+    boolean instanceFieldInitializationMayDependOnEnvironment() -> c
+    boolean mayHaveOtherSideEffectsThanInstanceFieldAssignments() -> d
+    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet():41:41 -> e
+    boolean receiverNeverEscapesOutsideConstructorChain() -> f
+    1:1:com.android.tools.r8.ir.optimize.info.initializer.DefaultInstanceInitializerInfo getInstance():21:21 -> g
+com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo -> com.android.tools.r8.ir.optimize.info.t.b:
+    1:1:void <init>():11:11 -> <init>
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection fieldInitializationInfos() -> a
+    com.android.tools.r8.graph.DexMethod getParent() -> b
+    boolean instanceFieldInitializationMayDependOnEnvironment() -> c
+    boolean mayHaveOtherSideEffectsThanInstanceFieldAssignments() -> d
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet() -> e
+    boolean receiverNeverEscapesOutsideConstructorChain() -> f
+com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo -> com.android.tools.r8.ir.optimize.info.t.e:
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection fieldInitializationInfos -> b
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet -> c
+    com.android.tools.r8.graph.DexMethod parent -> d
+    int data -> a
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection,com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$1):15:15 -> <init>
+    2:7:void <init>(int,com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection,com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet,com.android.tools.r8.graph.DexMethod):30:35 -> <init>
+    1:1:boolean verifyNoUnknownBits(int):43:43 -> a
+    2:2:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder builder(com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):49:49 -> a
+    3:3:com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection fieldInitializationInfos():59:59 -> a
+    1:1:com.android.tools.r8.graph.DexMethod getParent():54:54 -> b
+    1:1:boolean instanceFieldInitializationMayDependOnEnvironment():69:69 -> c
+    1:1:boolean mayHaveOtherSideEffectsThanInstanceFieldAssignments():74:74 -> d
+    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet():64:64 -> e
+    1:1:boolean receiverNeverEscapesOutsideConstructorChain():79:79 -> f
+com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$1 -> com.android.tools.r8.ir.optimize.info.t.c:
+com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder -> com.android.tools.r8.ir.optimize.info.t.d:
+    com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection instanceFieldInitializationInfos -> a
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet -> c
+    com.android.tools.r8.graph.DexMethod parent -> d
+    int data -> b
+    1:1:void <clinit>():82:82 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):93:93 -> <init>
+    2:10:void <init>(com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfoCollection):86:94 -> <init>
+    1:3:boolean isTrivial():98:100 -> a
+    1:3:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo build():181 -> a
+    4:5:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo build():182:183 -> a
+    6:13:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markFieldAsRead(com.android.tools.r8.graph.DexEncodedField):105:112 -> a
+    14:14:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):138:138 -> a
+    15:18:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markFieldsAsRead(com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet):117:120 -> a
+    15:18:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):138 -> a
+    19:19:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markAllFieldsAsRead():133:133 -> a
+    19:19:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markFieldsAsRead(com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet):121 -> a
+    19:19:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):138 -> a
+    20:24:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markFieldsAsRead(com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet):123:127 -> a
+    20:24:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):138 -> a
+    25:29:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):139:143 -> a
+    30:30:boolean com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo.receiverMayEscapeOutsideConstructorChain():53:53 -> a
+    30:30:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):145 -> a
+    31:31:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):146:146 -> a
+    32:32:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setParent(com.android.tools.r8.graph.DexMethod):175:175 -> a
+    33:33:boolean hasParent():171:171 -> a
+    33:33:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setParent(com.android.tools.r8.graph.DexMethod):175 -> a
+    34:35:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setParent(com.android.tools.r8.graph.DexMethod):175:176 -> a
+    1:1:boolean hasParent():171:171 -> b
+    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markAllFieldsAsRead():133:133 -> c
+    1:1:boolean mayHaveOtherSideEffectsThanInstanceFieldAssignments():157:157 -> d
+    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setInstanceFieldInitializationMayDependOnEnvironment():152:152 -> e
+    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setMayHaveOtherSideEffectsThanInstanceFieldAssignments():161:161 -> f
+    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setReceiverMayEscapeOutsideConstructorChain():166:166 -> g
+com.android.tools.r8.ir.optimize.inliner.DefaultInliningReasonStrategy -> com.android.tools.r8.ir.optimize.q0.a:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.conversion.CallSiteInformation callSiteInformation -> b
+    com.android.tools.r8.ir.optimize.Inliner inliner -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallSiteInformation,com.android.tools.r8.ir.optimize.Inliner):24:27 -> <init>
+    1:19:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):33:51 -> a
+    20:22:boolean isDoubleInliningTarget(com.android.tools.r8.graph.DexEncodedMethod):61:63 -> a
+    20:22:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):53 -> a
+    23:25:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):54:56 -> a
+    26:27:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):36:37 -> a
+com.android.tools.r8.ir.optimize.inliner.FixedInliningReasonStrategy -> com.android.tools.r8.ir.optimize.q0.b:
+    com.android.tools.r8.ir.optimize.Inliner$Reason reason -> a
+    1:2:void <init>(com.android.tools.r8.ir.optimize.Inliner$Reason):15:16 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):22:22 -> a
+com.android.tools.r8.ir.optimize.inliner.InlinerUtils -> com.android.tools.r8.ir.optimize.q0.c:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:4:void collectAllMonitorEnterValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.Set):20:23 -> a
+    5:9:void addMonitorEnterValue(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Set):32:36 -> a
+    10:10:void addMonitorEnterValue(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Set):34:34 -> a
+com.android.tools.r8.ir.optimize.inliner.InliningIRProvider -> com.android.tools.r8.ir.optimize.q0.d:
+    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map cache -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.DexEncodedMethod context -> b
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):25:25 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):23:28 -> <init>
+    1:1:com.android.tools.r8.ir.code.IRCode getAndCacheInliningIR(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):42:42 -> a
+    2:3:void cacheInliningIR(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):48:49 -> a
+    2:3:com.android.tools.r8.ir.code.IRCode getAndCacheInliningIR(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):43 -> a
+    4:4:boolean verifyIRCacheIsEmpty():53:53 -> a
+    1:7:com.android.tools.r8.ir.code.IRCode getInliningIR(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):32:38 -> b
+com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy -> com.android.tools.r8.ir.optimize.q0.e:
+    com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod) -> a
+com.android.tools.r8.ir.optimize.inliner.NopWhyAreYouNotInliningReporter -> com.android.tools.r8.ir.optimize.q0.f:
+    com.android.tools.r8.ir.optimize.inliner.NopWhyAreYouNotInliningReporter INSTANCE -> a
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>():18:18 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.inliner.NopWhyAreYouNotInliningReporter getInstance():21:21 -> A
+    void reportBlacklisted() -> a
+    void reportIncorrectArity(int,int) -> a
+    void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set) -> a
+    void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut) -> a
+    void reportUnsafeConstructorInliningDueToIndirectConstructorCall(com.android.tools.r8.ir.code.InvokeDirect) -> a
+    void reportUnsafeConstructorInliningDueToUninitializedObjectUse(com.android.tools.r8.ir.code.Instruction) -> a
+    void reportCallerNotSameClass() -> b
+    void reportPotentialExplosionInExceptionalControlFlowResolutionBlocks(int,int) -> b
+    void reportCallerNotSameNest() -> c
+    void reportWillExceedInstructionBudget(int,int) -> c
+    void reportCallerNotSamePackage() -> d
+    void reportWillExceedMaxInliningDepth(int,int) -> d
+    void reportCallerNotSubtype() -> e
+    void reportWillExceedMonitorEnterValuesBudget(int,int) -> e
+    void reportClasspathMethod() -> f
+    void reportInaccessible() -> g
+    void reportInlineeDoesNotHaveCode() -> h
+    void reportInlineeNotInliningCandidate() -> i
+    void reportInlineeNotProcessed() -> j
+    void reportInlineeNotSimple() -> k
+    void reportInlineeRefersToClassesNotInMainDex() -> l
+    void reportInliningAcrossFeatureSplit() -> m
+    void reportInstructionBudgetIsExceeded() -> n
+    void reportInvalidDoubleInliningCandidate() -> o
+    void reportLibraryMethod() -> p
+    void reportMarkedAsNeverInline() -> q
+    void reportMustTriggerClassInitialization() -> r
+    void reportNoInliningIntoConstructorsWhenGeneratingClassFiles() -> s
+    void reportPinned() -> t
+    void reportProcessedConcurrently() -> u
+    void reportReceiverDefinitelyNull() -> v
+    void reportReceiverMaybeNull() -> w
+    void reportRecursiveMethod() -> x
+    void reportUnknownTarget() -> y
+    boolean unsetReasonHasBeenReportedFlag() -> z
+com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter -> com.android.tools.r8.ir.optimize.q0.g:
+    1:1:void <init>():18:18 -> <init>
+    void reportBlacklisted() -> a
+    void reportIncorrectArity(int,int) -> a
+    void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set) -> a
+    void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut) -> a
+    void reportUnsafeConstructorInliningDueToIndirectConstructorCall(com.android.tools.r8.ir.code.InvokeDirect) -> a
+    void reportUnsafeConstructorInliningDueToUninitializedObjectUse(com.android.tools.r8.ir.code.Instruction) -> a
+    1:5:com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter createFor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):22:26 -> a
+    6:20:void handleInvokeWithUnknownTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):31:45 -> a
+    void reportCallerNotSameClass() -> b
+    void reportPotentialExplosionInExceptionalControlFlowResolutionBlocks(int,int) -> b
+    void reportCallerNotSameNest() -> c
+    void reportWillExceedInstructionBudget(int,int) -> c
+    void reportCallerNotSamePackage() -> d
+    void reportWillExceedMaxInliningDepth(int,int) -> d
+    void reportCallerNotSubtype() -> e
+    void reportWillExceedMonitorEnterValuesBudget(int,int) -> e
+    void reportClasspathMethod() -> f
+    void reportInaccessible() -> g
+    void reportInlineeDoesNotHaveCode() -> h
+    void reportInlineeNotInliningCandidate() -> i
+    void reportInlineeNotProcessed() -> j
+    void reportInlineeNotSimple() -> k
+    void reportInlineeRefersToClassesNotInMainDex() -> l
+    void reportInliningAcrossFeatureSplit() -> m
+    void reportInstructionBudgetIsExceeded() -> n
+    void reportInvalidDoubleInliningCandidate() -> o
+    void reportLibraryMethod() -> p
+    void reportMarkedAsNeverInline() -> q
+    void reportMustTriggerClassInitialization() -> r
+    void reportNoInliningIntoConstructorsWhenGeneratingClassFiles() -> s
+    void reportPinned() -> t
+    void reportProcessedConcurrently() -> u
+    void reportReceiverDefinitelyNull() -> v
+    void reportReceiverMaybeNull() -> w
+    void reportRecursiveMethod() -> x
+    void reportUnknownTarget() -> y
+    boolean unsetReasonHasBeenReportedFlag() -> z
+com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporterImpl -> com.android.tools.r8.ir.optimize.q0.h:
+    com.android.tools.r8.graph.DexEncodedMethod callee -> a
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.DexEncodedMethod context -> b
+    java.io.PrintStream output -> c
+    boolean reasonHasBeenReported -> d
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):25:25 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):22:28 -> <init>
+    1:11:void print(java.lang.String):32:42 -> a
+    12:12:void printWithExceededThreshold(java.lang.String,java.lang.String,int,int):47:47 -> a
+    13:13:void reportBlacklisted():52:52 -> a
+    14:14:void reportIncorrectArity(int,int):92:92 -> a
+    15:20:void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set):146:146 -> a
+    21:26:void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut):219:219 -> a
+    27:30:void reportUnsafeConstructorInliningDueToIndirectConstructorCall(com.android.tools.r8.ir.code.InvokeDirect):229:229 -> a
+    31:31:void reportUnsafeConstructorInliningDueToUninitializedObjectUse(com.android.tools.r8.ir.code.Instruction):237:237 -> a
+    1:1:void reportCallerNotSameClass():57:57 -> b
+    2:2:void reportPotentialExplosionInExceptionalControlFlowResolutionBlocks(int,int):184:184 -> b
+    1:1:void reportCallerNotSameNest():62:62 -> c
+    2:2:void reportWillExceedInstructionBudget(int,int):242:242 -> c
+    1:1:void reportCallerNotSamePackage():67:67 -> d
+    2:2:void reportWillExceedMaxInliningDepth(int,int):251:251 -> d
+    1:1:void reportCallerNotSubtype():74:74 -> e
+    2:2:void reportWillExceedMonitorEnterValuesBudget(int,int):261:261 -> e
+    1:1:void reportClasspathMethod():82:82 -> f
+    1:1:void reportInaccessible():87:87 -> g
+    1:1:void reportInlineeDoesNotHaveCode():102:102 -> h
+    1:1:void reportInlineeNotInliningCandidate():107:107 -> i
+    1:1:void reportInlineeNotProcessed():112:112 -> j
+    1:1:void reportInlineeNotSimple():117:117 -> k
+    1:1:void reportInlineeRefersToClassesNotInMainDex():124:124 -> l
+    1:1:void reportInliningAcrossFeatureSplit():131:131 -> m
+    1:1:void reportInstructionBudgetIsExceeded():136:136 -> n
+    1:1:void reportInvalidDoubleInliningCandidate():141:141 -> o
+    1:1:void reportLibraryMethod():156:156 -> p
+    1:1:void reportMarkedAsNeverInline():161:161 -> q
+    1:1:void reportMustTriggerClassInitialization():166:166 -> r
+    1:1:void reportNoInliningIntoConstructorsWhenGeneratingClassFiles():173:173 -> s
+    1:1:void reportPinned():178:178 -> t
+    1:1:void reportProcessedConcurrently():193:193 -> u
+    1:1:void reportReceiverDefinitelyNull():199:199 -> v
+    1:1:void reportReceiverMaybeNull():204:204 -> w
+    1:1:void reportRecursiveMethod():209:209 -> x
+    1:1:void reportUnknownTarget():214:214 -> y
+    1:2:boolean unsetReasonHasBeenReportedFlag():270:271 -> z
+com.android.tools.r8.ir.optimize.lambda.CaptureSignature -> com.android.tools.r8.ir.optimize.r0.a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList SINGLE_LIST -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList EMPTY_LIST -> a
+    boolean $assertionsDisabled -> c
+    1:3:void <clinit>():36:38 -> <clinit>
+    1:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getReverseCaptureMapping(com.android.tools.r8.graph.DexType[]):49:63 -> a
+    16:20:boolean verifyMapping(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):152:156 -> a
+    16:20:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getReverseCaptureMapping(com.android.tools.r8.graph.DexType[]):63 -> a
+    21:21:int lambda$getReverseCaptureMapping$0(com.android.tools.r8.graph.DexType[],java.lang.Integer):62:62 -> a
+    22:42:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):69:89 -> a
+    43:47:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):73:77 -> a
+    48:62:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):71:85 -> a
+    63:69:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):81:87 -> a
+    70:70:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):79:79 -> a
+    71:71:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):75:75 -> a
+    72:80:java.lang.String getCaptureSignature(int,java.util.function.IntFunction):98:106 -> a
+    81:81:java.lang.String getCaptureSignature(java.util.List):111:111 -> a
+    82:82:com.android.tools.r8.graph.DexType lambda$getCaptureSignature$1(java.util.List,int):111:111 -> a
+    83:83:java.lang.String getCaptureSignature(com.android.tools.r8.graph.DexTypeList):116:116 -> a
+    84:84:com.android.tools.r8.graph.DexType lambda$getCaptureSignature$2(com.android.tools.r8.graph.DexTypeList,int):116:116 -> a
+    85:110:int mapFieldIntoCaptureIndex(java.lang.String,java.util.List,com.android.tools.r8.graph.DexField):123:148 -> a
+com.android.tools.r8.ir.optimize.lambda.CodeProcessor -> com.android.tools.r8.ir.optimize.r0.d:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.DexEncodedMethod context -> j
+    com.android.tools.r8.ir.code.IRCode code -> g
+    com.android.tools.r8.ir.code.InstructionListIterator instructions -> i
+    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy NoOp -> k
+    boolean $assertionsDisabled -> l
+    java.util.function.Function strategyProvider -> d
+    com.android.tools.r8.kotlin.Kotlin kotlin -> c
+    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaChecker -> e
+    java.util.ListIterator blocks -> h
+    com.android.tools.r8.graph.DexEncodedMethod method -> f
+    1:29:void <clinit>():47:75 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Function,com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):160:160 -> <init>
+    2:11:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Function,com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):169:178 -> <init>
+    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet) -> a
+    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut) -> a
+    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod) -> a
+    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance) -> a
+    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet) -> a
+    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut) -> a
+    1:2:com.android.tools.r8.ir.code.InstructionListIterator instructions():182:183 -> a
+    3:3:boolean shouldRewrite(com.android.tools.r8.graph.DexType):206:206 -> a
+    4:23:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):211:230 -> a
+    4:23:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):47 -> a
+    24:24:boolean shouldRewrite(com.android.tools.r8.graph.DexMethod):201:201 -> a
+    24:24:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):230 -> a
+    24:24:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):47 -> a
+    25:34:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):231:240 -> a
+    25:34:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):47 -> a
+    35:39:java.lang.Void visit(com.android.tools.r8.ir.code.NewInstance):246:250 -> a
+    35:39:java.lang.Object visit(com.android.tools.r8.ir.code.NewInstance):47 -> a
+    40:40:java.lang.Void visit(com.android.tools.r8.ir.code.CheckCast):258:258 -> a
+    40:40:java.lang.Object visit(com.android.tools.r8.ir.code.CheckCast):47 -> a
+    41:41:java.lang.Void visit(com.android.tools.r8.ir.code.NewArrayEmpty):264:264 -> a
+    41:41:java.lang.Object visit(com.android.tools.r8.ir.code.NewArrayEmpty):47 -> a
+    42:42:java.lang.Void visit(com.android.tools.r8.ir.code.ConstClass):270:270 -> a
+    42:42:java.lang.Object visit(com.android.tools.r8.ir.code.ConstClass):47 -> a
+    43:43:java.lang.Void visit(com.android.tools.r8.ir.code.ConstMethodType):276:276 -> a
+    43:43:java.lang.Object visit(com.android.tools.r8.ir.code.ConstMethodType):47 -> a
+    44:44:java.lang.Void visit(com.android.tools.r8.ir.code.ConstMethodHandle):282:282 -> a
+    44:44:java.lang.Object visit(com.android.tools.r8.ir.code.ConstMethodHandle):47 -> a
+    45:47:java.lang.Void visit(com.android.tools.r8.ir.code.InstanceGet):288:290 -> a
+    45:47:java.lang.Object visit(com.android.tools.r8.ir.code.InstanceGet):47 -> a
+    48:48:boolean shouldRewrite(com.android.tools.r8.graph.DexField):197:197 -> a
+    48:48:java.lang.Void visit(com.android.tools.r8.ir.code.InstanceGet):291 -> a
+    48:48:java.lang.Object visit(com.android.tools.r8.ir.code.InstanceGet):47 -> a
+    49:57:java.lang.Void visit(com.android.tools.r8.ir.code.InstanceGet):293:301 -> a
+    49:57:java.lang.Object visit(com.android.tools.r8.ir.code.InstanceGet):47 -> a
+    58:60:java.lang.Void visit(com.android.tools.r8.ir.code.InstancePut):307:309 -> a
+    58:60:java.lang.Object visit(com.android.tools.r8.ir.code.InstancePut):47 -> a
+    61:61:boolean shouldRewrite(com.android.tools.r8.graph.DexField):197:197 -> a
+    61:61:java.lang.Void visit(com.android.tools.r8.ir.code.InstancePut):310 -> a
+    61:61:java.lang.Object visit(com.android.tools.r8.ir.code.InstancePut):47 -> a
+    62:70:java.lang.Void visit(com.android.tools.r8.ir.code.InstancePut):312:320 -> a
+    62:70:java.lang.Object visit(com.android.tools.r8.ir.code.InstancePut):47 -> a
+    71:73:java.lang.Void visit(com.android.tools.r8.ir.code.StaticGet):326:328 -> a
+    71:73:java.lang.Object visit(com.android.tools.r8.ir.code.StaticGet):47 -> a
+    74:74:boolean shouldRewrite(com.android.tools.r8.graph.DexField):197:197 -> a
+    74:74:java.lang.Void visit(com.android.tools.r8.ir.code.StaticGet):329 -> a
+    74:74:java.lang.Object visit(com.android.tools.r8.ir.code.StaticGet):47 -> a
+    75:79:java.lang.Void visit(com.android.tools.r8.ir.code.StaticGet):331:335 -> a
+    75:79:java.lang.Object visit(com.android.tools.r8.ir.code.StaticGet):47 -> a
+    80:82:java.lang.Void visit(com.android.tools.r8.ir.code.StaticPut):342:344 -> a
+    80:82:java.lang.Object visit(com.android.tools.r8.ir.code.StaticPut):47 -> a
+    83:83:boolean shouldRewrite(com.android.tools.r8.graph.DexField):197:197 -> a
+    83:83:java.lang.Void visit(com.android.tools.r8.ir.code.StaticPut):345 -> a
+    83:83:java.lang.Object visit(com.android.tools.r8.ir.code.StaticPut):47 -> a
+    84:88:java.lang.Void visit(com.android.tools.r8.ir.code.StaticPut):347:351 -> a
+    84:88:java.lang.Object visit(com.android.tools.r8.ir.code.StaticPut):47 -> a
+    1:5:void processCode():187:191 -> b
+com.android.tools.r8.ir.optimize.lambda.CodeProcessor$1 -> com.android.tools.r8.ir.optimize.r0.b:
+    1:1:void <init>():76:76 -> <init>
+    boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod) -> a
+    boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance) -> a
+    boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> a
+    1:1:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance):114:114 -> a
+    2:2:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):119:119 -> a
+    3:3:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet):124:124 -> a
+    4:4:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):129:129 -> a
+    boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> b
+    boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> c
+    boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> d
+com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy -> com.android.tools.r8.ir.optimize.r0.c:
+    boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod) -> a
+    boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance) -> a
+    boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> a
+    void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet) -> a
+    void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod) -> a
+    void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance) -> a
+    void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet) -> a
+    boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> b
+    boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> c
+    boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> d
+com.android.tools.r8.ir.optimize.lambda.LambdaGroup -> com.android.tools.r8.ir.optimize.r0.g:
+    java.util.Map lambdas -> c
+    com.android.tools.r8.ir.optimize.lambda.LambdaGroupId id -> a
+    com.android.tools.r8.graph.DexType classType -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():39:39 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):63:63 -> <init>
+    2:15:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):51:64 -> <init>
+    com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory) -> a
+    com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping) -> a
+    1:3:void forEachLambda(java.util.function.Consumer):77:79 -> a
+    4:6:boolean anyLambda(java.util.function.Predicate):84:86 -> a
+    7:8:boolean shouldAddToMainDex(com.android.tools.r8.graph.AppView):96:97 -> a
+    9:9:boolean containsLambda(com.android.tools.r8.graph.DexType):105:105 -> a
+    10:11:void add(com.android.tools.r8.graph.DexProgramClass):131:132 -> a
+    12:24:void compact():141:153 -> a
+    25:35:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):168:178 -> a
+    36:49:java.lang.String createHash(java.util.List):189:202 -> a
+    36:49:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):179 -> a
+    50:50:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):179:179 -> a
+    51:58:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):174:181 -> a
+    59:59:java.lang.String createHash(java.util.List):204:204 -> a
+    59:59:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):179 -> a
+    60:62:boolean verifyLambdaIds(boolean):210:212 -> a
+    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy getCodeStrategy() -> b
+    1:2:java.util.List lambdaCaptureFields(com.android.tools.r8.graph.DexType):114:115 -> b
+    1:2:com.android.tools.r8.graph.DexType getGroupClassType():68:69 -> c
+    3:4:int lambdaId(com.android.tools.r8.graph.DexType):109:110 -> c
+    java.lang.String getGroupSuffix() -> d
+    1:4:com.android.tools.r8.graph.DexEncodedField lambdaSingletonField(com.android.tools.r8.graph.DexType):119:122 -> d
+    java.lang.String getTypePackage() -> e
+    1:2:void remove(com.android.tools.r8.graph.DexType):136:137 -> e
+    1:1:boolean isTrivial():127:127 -> f
+    1:1:int size():73:73 -> g
+com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo -> com.android.tools.r8.ir.optimize.r0.e:
+    com.android.tools.r8.graph.DexProgramClass clazz -> b
+    int id -> a
+    1:3:void <init>(int,com.android.tools.r8.graph.DexProgramClass):57:59 -> <init>
+com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError -> com.android.tools.r8.ir.optimize.r0.f:
+    boolean reportable -> a
+    1:2:void <init>(java.lang.String,boolean):225:226 -> <init>
+com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder -> com.android.tools.r8.ir.optimize.r0.h:
+    java.lang.String origin -> n
+    com.android.tools.r8.graph.DexItemFactory factory -> m
+    com.android.tools.r8.ir.optimize.lambda.LambdaGroup group -> l
+    1:4:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):31:34 -> <init>
+    com.android.tools.r8.graph.ClassAccessFlags buildAccessFlags() -> a
+    com.android.tools.r8.graph.DexEncodedField[] buildStaticFields(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback) -> a
+    com.android.tools.r8.graph.DexAnnotationSet buildAnnotations() -> b
+    1:21:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):39:59 -> b
+    com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods() -> c
+    com.android.tools.r8.graph.EnclosingMethodAttribute buildEnclosingMethodAttribute() -> d
+    java.util.List buildInnerClasses() -> e
+    com.android.tools.r8.graph.DexEncodedField[] buildInstanceFields() -> f
+    com.android.tools.r8.graph.DexTypeList buildInterfaces() -> g
+    com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods() -> h
+    com.android.tools.r8.graph.DexType getSuperClassType() -> i
+com.android.tools.r8.ir.optimize.lambda.LambdaGroupId -> com.android.tools.r8.ir.optimize.r0.i:
+    com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup() -> a
+com.android.tools.r8.ir.optimize.lambda.LambdaMerger -> com.android.tools.r8.ir.optimize.r0.q:
+    java.util.Map lambdas -> a
+    com.android.tools.r8.kotlin.Kotlin kotlin -> f
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger$Mode mode -> h
+    java.util.Map groups -> b
+    java.util.Set invalidatedLambdas -> c
+    java.util.Set methodsToReprocess -> d
+    boolean $assertionsDisabled -> k
+    com.android.tools.r8.graph.AppView appView -> e
+    com.android.tools.r8.DiagnosticsHandler reporter -> g
+    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaInvalidator -> i
+    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaChecker -> j
+    1:1:void <clinit>():90:90 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):192:192 -> <init>
+    2:43:void <init>(com.android.tools.r8.graph.AppView):159:200 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):0:0 -> a
+    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy access$700(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):90 -> a
+    2:2:com.android.tools.r8.ir.optimize.lambda.LambdaGroup getLambdaGroup(com.android.tools.r8.graph.DexType):218:218 -> a
+    2:2:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):466 -> a
+    2:2:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy access$700(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):90 -> a
+    3:3:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):467:467 -> a
+    3:3:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy access$700(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):90 -> a
+    4:4:com.android.tools.r8.graph.AppView access$200(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):90:90 -> a
+    5:5:void invalidateLambda(com.android.tools.r8.graph.DexType):210:210 -> a
+    6:6:void queueForProcessing(com.android.tools.r8.graph.DexEncodedMethod):222:222 -> a
+    6:6:void access$600(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod):90 -> a
+    7:42:void collectGroupCandidates(com.android.tools.r8.graph.DexApplication):230:265 -> a
+    43:43:int lambda$collectGroupCandidates$3(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):240:240 -> a
+    44:45:void analyzeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):279:280 -> a
+    46:47:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner):295:296 -> a
+    48:49:void rewriteCodeForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):306:307 -> a
+    50:59:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):318:327 -> a
+    60:77:com.android.tools.r8.com.google.common.collect.BiMap finalizeLambdaGroups(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):394:411 -> a
+    60:77:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):331 -> a
+    78:98:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):335:355 -> a
+    99:99:java.util.Set com.android.tools.r8.com.google.common.collect.HashBiMap.values():469:469 -> a
+    99:99:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):359 -> a
+    100:108:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):359:367 -> a
+    109:109:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):366:366 -> a
+    110:110:void lambda$applyLambdaClassMapping$5(com.android.tools.r8.graph.DexEncodedMethod):356:356 -> a
+    111:130:void analyzeLambdaClassesStructure(java.util.concurrent.ExecutorService):371:390 -> a
+    131:131:void lambda$analyzeLambdaClassesStructure$7(java.util.List,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):376:376 -> a
+    132:137:void lambda$analyzeLambdaClassesStructure$6(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):378:383 -> a
+    138:143:void lambda$analyzeLambdaClassesStructure$6(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):381:386 -> a
+    144:144:void invalidateLambda(com.android.tools.r8.graph.DexType):210:210 -> a
+    144:144:void lambda$analyzeLambdaClassesStructure$6(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):386 -> a
+    145:151:void removeTrivialLambdaGroups():417:423 -> a
+    152:152:void lambda$removeTrivialLambdaGroups$8(com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):423:423 -> a
+    153:161:void rewriteLambdaReferences(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):430:438 -> a
+    162:163:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):442:443 -> a
+    164:273:void com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor.accept(com.android.tools.r8.graph.DexTypeList):0:109 -> a
+    164:273:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):443 -> a
+    274:291:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):444:461 -> a
+    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor access$500(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):90:90 -> b
+    2:2:boolean isMergeableLambda(com.android.tools.r8.graph.DexType):214:214 -> b
+    3:3:boolean lambda$collectGroupCandidates$1(com.android.tools.r8.graph.DexProgramClass):231:231 -> b
+    4:4:com.android.tools.r8.graph.DexEncodedMethod lambda$rewriteLambdaReferences$9(com.android.tools.r8.graph.DexEncodedMethod):435:435 -> b
+    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor access$800(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):90:90 -> c
+    2:2:void lambda$new$0(com.android.tools.r8.graph.DexType):205:205 -> c
+    3:5:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):234:236 -> c
+    6:6:boolean com.android.tools.r8.kotlin.KotlinSyntheticClass.isLambda():69:69 -> c
+    6:6:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):236 -> c
+    7:10:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):236:239 -> c
+    1:1:java.util.Map access$900(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):90:90 -> d
+    2:14:void lambda$collectGroupCandidates$4(com.android.tools.r8.graph.DexProgramClass):244:256 -> d
+    15:15:void lambda$collectGroupCandidates$4(com.android.tools.r8.graph.DexProgramClass):251:251 -> d
+com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1 -> com.android.tools.r8.ir.optimize.r0.j:
+com.android.tools.r8.ir.optimize.lambda.LambdaMerger$AnalysisStrategy -> com.android.tools.r8.ir.optimize.r0.k:
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> m
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):470:470 -> <init>
+    2:6:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):471:475 -> <init>
+    7:7:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):472:472 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy lambda$new$0(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):474:474 -> a
+    2:2:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod):482:482 -> a
+    3:3:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance):487:487 -> a
+    4:4:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut):492:492 -> a
+    5:5:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet):497:497 -> a
+    6:6:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut):502:502 -> a
+    7:7:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet):507:507 -> a
+com.android.tools.r8.ir.optimize.lambda.LambdaMerger$AnalyzeMode -> com.android.tools.r8.ir.optimize.r0.l:
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> a
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):100:100 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):100:100 -> <init>
+    1:1:void analyzeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):104:104 -> a
+com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyMode -> com.android.tools.r8.ir.optimize.r0.m:
+    java.util.Map lambdaGroups -> a
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> c
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer optimizationInfoFixer -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():108:108 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,java.util.Map,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):115:117 -> <init>
+    1:1:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod):123:123 -> a
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    2:2:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod):123 -> a
+    3:33:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod):123:153 -> a
+com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy -> com.android.tools.r8.ir.optimize.r0.n:
+    boolean $assertionsDisabled -> o
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer optimizationInfoFixer -> m
+    java.util.Set typeAffectedValues -> n
+    1:1:void <clinit>():511:511 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):511:511 -> <init>
+    2:4:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):523:525 -> <init>
+    5:5:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):522:522 -> <init>
+    6:20:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):515:529 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy lambda$new$0(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):524:524 -> a
+    2:4:void recordTypeHasChanged(com.android.tools.r8.ir.code.Value):533:535 -> a
+    5:5:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod):593:593 -> a
+    6:6:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance):598:598 -> a
+    7:7:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut):605:605 -> a
+    8:8:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet):610:610 -> a
+    9:9:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut):617:617 -> a
+    10:10:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet):622:622 -> a
+    1:28:void processCode():542:569 -> b
+    29:45:void processCode():568:584 -> b
+    46:46:boolean typeMayHaveChanged(com.android.tools.r8.ir.code.Value):588:588 -> b
+com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer -> com.android.tools.r8.ir.optimize.r0.o:
+    java.util.Map lambdaGroupsClasses -> a
+    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():626:626 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,java.util.Map):631:632 -> <init>
+    1:5:void fixup(com.android.tools.r8.graph.DexEncodedField):649:653 -> a
+    6:12:void fixup(com.android.tools.r8.graph.DexEncodedMethod):659:665 -> a
+    1:1:java.lang.Object apply(java.lang.Object):626:626 -> apply
+    2:6:com.android.tools.r8.graph.DexType apply(com.android.tools.r8.graph.DexType):637:641 -> apply
+    2:6:java.lang.Object apply(java.lang.Object):626 -> apply
+com.android.tools.r8.ir.optimize.lambda.LambdaMerger$Mode -> com.android.tools.r8.ir.optimize.r0.p:
+    1:1:void <init>():92:92 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):92:92 -> <init>
+    void analyzeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode) -> a
+    void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod) -> a
+com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor -> com.android.tools.r8.ir.optimize.r0.r:
+    java.util.function.Consumer onLambdaType -> c
+    java.util.function.Predicate isLambdaType -> b
+    boolean $assertionsDisabled -> d
+    com.android.tools.r8.graph.DexItemFactory factory -> a
+    1:1:void <clinit>():31:31 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,java.util.function.Predicate,java.util.function.Consumer):37:40 -> <init>
+    1:4:void accept(com.android.tools.r8.graph.DexCallSite):44:47 -> a
+    5:28:void accept(com.android.tools.r8.graph.DexValue):52:75 -> a
+    29:31:void accept(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):89:91 -> a
+    32:35:void accept(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):96:99 -> a
+    36:37:void accept(com.android.tools.r8.graph.DexProto):103:104 -> a
+    38:39:void accept(com.android.tools.r8.graph.DexTypeList):108:109 -> a
+    38:39:void accept(com.android.tools.r8.graph.DexProto):104 -> a
+    40:40:void accept(com.android.tools.r8.graph.DexAnnotationSet):114:114 -> a
+    41:41:void accept(com.android.tools.r8.graph.DexAnnotation):124:124 -> a
+    41:41:void accept(com.android.tools.r8.graph.DexAnnotationSet):115 -> a
+    42:43:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):128:129 -> a
+    42:43:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
+    42:43:void accept(com.android.tools.r8.graph.DexAnnotationSet):115 -> a
+    44:44:void accept(com.android.tools.r8.graph.DexAnnotationElement):135:135 -> a
+    44:44:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):130 -> a
+    44:44:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
+    44:44:void accept(com.android.tools.r8.graph.DexAnnotationSet):115 -> a
+    45:45:void accept(com.android.tools.r8.graph.ParameterAnnotationsList):120:120 -> a
+    46:46:void accept(com.android.tools.r8.graph.DexAnnotation):124:124 -> a
+    47:48:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):128:129 -> a
+    47:48:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
+    49:49:void accept(com.android.tools.r8.graph.DexAnnotationElement):135:135 -> a
+    49:49:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):130 -> a
+    49:49:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
+    50:58:void accept(com.android.tools.r8.graph.DexType):142:150 -> a
+    59:59:boolean com.android.tools.r8.graph.DexMethodHandle.isFieldHandle():293:293 -> a
+    59:59:void accept(com.android.tools.r8.graph.DexMethodHandle):80 -> a
+    60:62:void accept(com.android.tools.r8.graph.DexMethodHandle):81:83 -> a
+    63:63:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> a
+    63:63:void accept(com.android.tools.r8.graph.DexMethodHandle):83 -> a
+    64:65:void accept(com.android.tools.r8.graph.DexMethodHandle):83:84 -> a
+com.android.tools.r8.ir.optimize.lambda.kotlin.ClassInitializerSourceCode -> com.android.tools.r8.ir.optimize.r0.s.a:
+    boolean $assertionsDisabled -> n
+    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> m
+    com.android.tools.r8.graph.DexItemFactory factory -> l
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.ir.code.Position):26:30 -> <init>
+    1:15:void lambda$prepareInstructions$4(int,com.android.tools.r8.graph.DexType,int,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):46:60 -> a
+    16:16:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):49:49 -> a
+    17:17:void lambda$prepareInstructions$2(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
+    1:1:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):50:50 -> b
+    1:1:void lambda$prepareInstructions$3(int,int,com.android.tools.r8.ir.conversion.IRBuilder):62:62 -> c
+    1:3:void prepareInstructions():35:37 -> h
+    4:35:void prepareInstructions():36:67 -> h
+com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup -> com.android.tools.r8.ir.optimize.r0.s.g:
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId,com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$1):103:103 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId):105:105 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$ClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):110:110 -> a
+    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):103 -> a
+    2:2:com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):116:116 -> a
+    java.lang.String getGroupSuffix() -> d
+com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$1 -> com.android.tools.r8.ir.optimize.r0.s.b:
+com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$ClassBuilder -> com.android.tools.r8.ir.optimize.r0.s.c:
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):179:179 -> <init>
+    1:4:com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):190:193 -> a
+    5:5:com.android.tools.r8.graph.DexField lambda$createInstanceInitializerSourceCode$0(int):194:194 -> a
+    1:1:com.android.tools.r8.graph.DexType getSuperClassType():184:184 -> i
+com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$ClassValidator -> com.android.tools.r8.ir.optimize.r0.s.d:
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):151:151 -> <init>
+    1:1:int getInstanceInitializerSize(java.util.List):156:156 -> a
+    2:9:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):163:170 -> a
+    10:10:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):166:166 -> a
+com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId -> com.android.tools.r8.ir.optimize.r0.s.e:
+    1:1:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):129:129 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup():144:144 -> a
+    java.lang.String getLambdaKindDescriptor() -> c
+    1:1:boolean equals(java.lang.Object):134:134 -> equals
+com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$InstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.r0.s.f:
+    com.android.tools.r8.graph.DexMethod objectInitializer -> n
+    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):212:213 -> <init>
+    1:7:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):220:220 -> c
+    1:1:void prepareSuperConstructorCall(int):218:218 -> i
+com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.r0.s.h:
+    boolean $assertionsDisabled -> n
+    com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroupIdFactory INSTANCE -> m
+    1:2:void <clinit>():16:17 -> <clinit>
+    1:1:void <init>():16:16 -> <init>
+    1:6:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):22:27 -> b
+    7:7:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):48:48 -> b
+    7:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
+    8:19:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):56:67 -> b
+    8:19:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    20:29:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):34:43 -> b
+    30:31:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):60:61 -> b
+    30:31:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    32:32:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    32:32:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61 -> b
+    32:32:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    33:33:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61:61 -> b
+    33:33:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    34:34:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
+    34:34:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    35:35:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    35:35:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57 -> b
+    35:35:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    36:36:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
+    36:36:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    37:37:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
+    37:37:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
+    38:38:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    38:38:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49 -> b
+    38:38:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
+    39:39:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
+    39:39:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
+com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup -> com.android.tools.r8.ir.optimize.r0.s.n:
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId,com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$1):109:109 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId):111:111 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$ClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):116:116 -> a
+    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):109 -> a
+    2:2:com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):122:122 -> a
+    java.lang.String getGroupSuffix() -> d
+com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$1 -> com.android.tools.r8.ir.optimize.r0.s.i:
+com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$ClassBuilder -> com.android.tools.r8.ir.optimize.r0.s.j:
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):190:190 -> <init>
+    1:7:com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):201:207 -> a
+    8:8:com.android.tools.r8.graph.DexField lambda$createInstanceInitializerSourceCode$0(int):205:205 -> a
+    1:1:com.android.tools.r8.graph.DexType getSuperClassType():195:195 -> i
+com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$ClassValidator -> com.android.tools.r8.ir.optimize.r0.s.k:
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):157:157 -> <init>
+    1:1:int getInstanceInitializerSize(java.util.List):162:162 -> a
+    2:14:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):169:181 -> a
+    15:15:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):177:177 -> a
+com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId -> com.android.tools.r8.ir.optimize.r0.s.l:
+    1:1:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):135:135 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup():150:150 -> a
+    java.lang.String getLambdaKindDescriptor() -> c
+    1:1:boolean equals(java.lang.Object):140:140 -> equals
+com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$InstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.r0.s.m:
+    int arity -> n
+    com.android.tools.r8.graph.DexMethod lambdaInitializer -> o
+    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position):226:229 -> <init>
+    5:5:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position):228:228 -> <init>
+    1:1:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):235:235 -> c
+    2:8:void lambda$prepareSuperConstructorCall$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):238:238 -> c
+    1:3:void prepareSuperConstructorCall(int):234:236 -> i
+com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.r0.s.o:
+    boolean $assertionsDisabled -> n
+    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory INSTANCE -> m
+    1:2:void <clinit>():16:17 -> <clinit>
+    1:1:void <init>():16:16 -> <init>
+    1:6:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):22:27 -> b
+    7:7:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):48:48 -> b
+    7:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
+    8:16:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):56:64 -> b
+    8:16:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    17:26:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):34:43 -> b
+    27:27:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65:65 -> b
+    27:27:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    28:28:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    28:28:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65 -> b
+    28:28:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    29:29:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65:65 -> b
+    29:29:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    30:31:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):60:61 -> b
+    30:31:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    32:32:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    32:32:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61 -> b
+    32:32:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    33:33:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61:61 -> b
+    33:33:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    34:34:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
+    34:34:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    35:35:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    35:35:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57 -> b
+    35:35:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    36:36:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
+    36:36:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
+    37:37:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
+    37:37:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
+    38:38:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    38:38:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49 -> b
+    38:38:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
+    39:39:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
+    39:39:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinInstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.r0.s.p:
+    com.android.tools.r8.graph.DexField idField -> l
+    java.util.function.IntFunction fieldGenerator -> m
+    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):25:27 -> <init>
+    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):35:35 -> b
+    2:2:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> b
+    3:3:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> b
+    1:17:void prepareInstructions():32:48 -> h
+    void prepareSuperConstructorCall(int) -> i
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaClassValidator -> com.android.tools.r8.ir.optimize.r0.s.q:
+    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> c
+    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> b
+    com.android.tools.r8.kotlin.Kotlin kotlin -> a
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():47:47 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.graph.AppInfoWithSubtyping):59:62 -> <init>
+    int getInstanceInitializerSize(java.util.List) -> a
+    int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int) -> a
+    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError structureError(java.lang.String):67:67 -> a
+    1:1:void accept(java.lang.Object):47:47 -> accept
+    2:2:void accept(com.android.tools.r8.graph.DexClass):72:72 -> accept
+    2:2:void accept(java.lang.Object):47 -> accept
+    3:3:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup.id():27:27 -> accept
+    3:3:void accept(com.android.tools.r8.graph.DexClass):72 -> accept
+    3:3:void accept(java.lang.Object):47 -> accept
+    4:22:void accept(com.android.tools.r8.graph.DexClass):72:90 -> accept
+    4:22:void accept(java.lang.Object):47 -> accept
+    23:34:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):225:236 -> accept
+    23:34:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    23:34:void accept(java.lang.Object):47 -> accept
+    35:37:boolean isLambdaInitializerMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):255:257 -> accept
+    35:37:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):236 -> accept
+    35:37:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    35:37:void accept(java.lang.Object):47 -> accept
+    38:39:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):239:240 -> accept
+    38:39:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    38:39:void accept(java.lang.Object):47 -> accept
+    40:40:boolean isLambdaSingletonField(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexField):249:249 -> accept
+    40:40:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):240 -> accept
+    40:40:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    40:40:void accept(java.lang.Object):47 -> accept
+    41:42:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):243:244 -> accept
+    41:42:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    41:42:void accept(java.lang.Object):47 -> accept
+    43:43:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):241:241 -> accept
+    43:43:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    43:43:void accept(java.lang.Object):47 -> accept
+    44:44:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):237:237 -> accept
+    44:44:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    44:44:void accept(java.lang.Object):47 -> accept
+    45:45:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):232:232 -> accept
+    45:45:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    45:45:void accept(java.lang.Object):47 -> accept
+    46:46:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):228:228 -> accept
+    46:46:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
+    46:46:void accept(java.lang.Object):47 -> accept
+    47:47:void accept(com.android.tools.r8.graph.DexClass):88:88 -> accept
+    47:47:void accept(java.lang.Object):47 -> accept
+    48:61:void accept(com.android.tools.r8.graph.DexClass):85:98 -> accept
+    48:61:void accept(java.lang.Object):47 -> accept
+    62:66:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):134:138 -> accept
+    62:66:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
+    62:66:void accept(java.lang.Object):47 -> accept
+    67:129:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):154:216 -> accept
+    67:129:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
+    67:129:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
+    67:129:void accept(java.lang.Object):47 -> accept
+    130:184:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):157:211 -> accept
+    130:184:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
+    130:184:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
+    130:184:void accept(java.lang.Object):47 -> accept
+    185:197:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):190:202 -> accept
+    185:197:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
+    185:197:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
+    185:197:void accept(java.lang.Object):47 -> accept
+    198:201:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):181:184 -> accept
+    198:201:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
+    198:201:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
+    198:201:void accept(java.lang.Object):47 -> accept
+    202:205:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):165:168 -> accept
+    202:205:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
+    202:205:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
+    202:205:void accept(java.lang.Object):47 -> accept
+    206:207:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):147:148 -> accept
+    206:207:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
+    206:207:void accept(java.lang.Object):47 -> accept
+    208:208:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):139:139 -> accept
+    208:208:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
+    208:208:void accept(java.lang.Object):47 -> accept
+    209:228:void accept(com.android.tools.r8.graph.DexClass):96:115 -> accept
+    209:228:void accept(java.lang.Object):47 -> accept
+    229:236:void accept(com.android.tools.r8.graph.DexClass):114:121 -> accept
+    229:236:void accept(java.lang.Object):47 -> accept
+    237:237:void accept(com.android.tools.r8.graph.DexClass):73:73 -> accept
+    237:237:void accept(java.lang.Object):47 -> accept
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaConstants -> com.android.tools.r8.ir.optimize.r0.s.r:
+    com.android.tools.r8.graph.FieldAccessFlags CAPTURE_FIELD_FLAGS -> j
+    com.android.tools.r8.graph.FieldAccessFlags SINGLETON_FIELD_FLAGS -> i
+    com.android.tools.r8.graph.MethodAccessFlags CLASS_INITIALIZER_FLAGS -> c
+    com.android.tools.r8.graph.MethodAccessFlags CONSTRUCTOR_FLAGS -> d
+    com.android.tools.r8.graph.MethodAccessFlags CONSTRUCTOR_FLAGS_RELAXED -> e
+    com.android.tools.r8.graph.FieldAccessFlags CAPTURE_FIELD_FLAGS_RELAXED -> k
+    com.android.tools.r8.graph.ClassAccessFlags LAMBDA_CLASS_FLAGS -> a
+    com.android.tools.r8.graph.MethodAccessFlags MAIN_METHOD_FLAGS -> f
+    com.android.tools.r8.graph.ClassAccessFlags PUBLIC_LAMBDA_CLASS_FLAGS -> b
+    com.android.tools.r8.graph.MethodAccessFlags BRIDGE_METHOD_FLAGS -> g
+    com.android.tools.r8.graph.MethodAccessFlags BRIDGE_METHOD_FLAGS_FIXED -> h
+    1:38:void <clinit>():15:52 -> <clinit>
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup -> com.android.tools.r8.ir.optimize.r0.s.s:
+    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategy -> e
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):23:23 -> <init>
+    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):20:20 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> a
+    1:1:int mapFieldIntoCaptureIndex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):72 -> a
+    2:2:int mapFieldIntoCaptureIndex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):72:72 -> a
+    3:3:int mapFieldIntoCaptureIndex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):71:71 -> a
+    4:4:boolean lambda$hasAnySingletons$0(com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):36:36 -> a
+    5:5:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):76:76 -> a
+    6:6:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> a
+    6:6:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):76 -> a
+    7:8:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):76:77 -> a
+    9:9:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> a
+    9:9:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):78 -> a
+    10:10:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):78:78 -> a
+    11:11:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):77:77 -> a
+    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> b
+    1:1:com.android.tools.r8.graph.DexProto createConstructorProto(com.android.tools.r8.graph.DexItemFactory):57 -> b
+    2:8:com.android.tools.r8.graph.DexProto createConstructorProto(com.android.tools.r8.graph.DexItemFactory):57:63 -> b
+    9:11:com.android.tools.r8.graph.DexField getSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,int):46:46 -> b
+    12:12:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy getCodeStrategy():83:83 -> b
+    1:1:com.android.tools.r8.graph.DexField getLambdaIdField(com.android.tools.r8.graph.DexItemFactory):67:67 -> c
+    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> e
+    1:1:java.lang.String getTypePackage():52 -> e
+    2:3:java.lang.String getTypePackage():52:53 -> e
+    1:2:boolean isSingletonLambda(com.android.tools.r8.graph.DexType):40:41 -> f
+    1:2:boolean hasAnySingletons():35:36 -> h
+    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> i
+    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> j
+    1:1:boolean isStateless():31 -> j
+    2:2:boolean isStateless():31:31 -> j
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupClassBuilder -> com.android.tools.r8.ir.optimize.r0.s.t:
+    boolean $assertionsDisabled -> p
+    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id -> o
+    1:1:void <clinit>():43:43 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):49:50 -> <init>
+    com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position) -> a
+    1:1:com.android.tools.r8.graph.ClassAccessFlags buildAccessFlags():59:59 -> a
+    2:6:com.android.tools.r8.ir.conversion.SourceCode lambda$buildVirtualMethods$0(com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.ir.code.Position):124:128 -> a
+    7:14:void lambda$collectVirtualMethods$3(java.util.Map,int,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):146:153 -> a
+    15:15:java.util.Map lambda$collectVirtualMethods$1(com.android.tools.r8.graph.DexString):149:149 -> a
+    16:16:java.util.List lambda$collectVirtualMethods$2(int,com.android.tools.r8.graph.DexProto):151:151 -> a
+    17:17:com.android.tools.r8.ir.conversion.SourceCode lambda$buildDirectMethods$5(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):199:199 -> a
+    18:41:com.android.tools.r8.graph.DexEncodedField[] buildStaticFields(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):227:250 -> a
+    42:54:void lambda$buildStaticFields$6(java.util.List,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):234:246 -> a
+    1:5:com.android.tools.r8.graph.DexAnnotationSet buildAnnotations():81:85 -> b
+    6:6:com.android.tools.r8.ir.conversion.SourceCode lambda$buildDirectMethods$4(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):180:180 -> b
+    1:14:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():164:177 -> c
+    15:15:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> c
+    15:15:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():177 -> c
+    16:28:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():177:189 -> c
+    29:38:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():187:196 -> c
+    39:39:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> c
+    39:39:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():196 -> c
+    40:40:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():196:196 -> c
+    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute buildEnclosingMethodAttribute():65:65 -> d
+    1:1:java.util.List buildInnerClasses():71:71 -> e
+    2:2:boolean com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId.hasInnerClassAttribute():71:71 -> e
+    2:2:java.util.List buildInnerClasses():71 -> e
+    3:5:java.util.List buildInnerClasses():72:74 -> e
+    6:6:java.util.List buildInnerClasses():73:73 -> e
+    1:10:com.android.tools.r8.graph.DexEncodedField[] buildInstanceFields():209:218 -> f
+    1:1:com.android.tools.r8.graph.DexTypeList buildInterfaces():255:255 -> g
+    1:25:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():97:121 -> h
+    26:26:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):234:234 -> h
+    26:26:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():121 -> h
+    27:46:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():116:135 -> h
+    1:3:java.util.Map collectVirtualMethods():143:145 -> j
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupCodeStrategy -> com.android.tools.r8.ir.optimize.r0.s.u:
+    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup):38:39 -> <init>
+    1:7:boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):49:55 -> a
+    8:8:boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance):87:87 -> a
+    9:9:boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):92:92 -> a
+    10:12:boolean isValidVirtualCall(com.android.tools.r8.ir.code.InvokeMethod):109:111 -> a
+    13:20:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance):116:123 -> a
+    21:21:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    21:21:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance):122 -> a
+    22:27:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance):122:127 -> a
+    28:30:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):132:134 -> a
+    31:35:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):212:216 -> a
+    31:35:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    36:36:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    36:36:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):216 -> a
+    36:36:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    37:46:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):217:226 -> a
+    37:46:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    47:48:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):257:258 -> a
+    47:48:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226 -> a
+    47:48:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    49:49:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup.id():27:27 -> a
+    49:49:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):258 -> a
+    49:49:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226 -> a
+    49:49:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    50:52:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):258:260 -> a
+    50:52:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226 -> a
+    50:52:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    53:53:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):259:259 -> a
+    53:53:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226 -> a
+    53:53:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    54:54:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):227:227 -> a
+    54:54:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    55:63:java.util.List mapInitializerArgs(com.android.tools.r8.ir.code.Value,java.util.List,com.android.tools.r8.graph.DexProto):242:250 -> a
+    55:63:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):227 -> a
+    55:63:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    64:64:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):228:228 -> a
+    64:64:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    65:65:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
+    65:65:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):228 -> a
+    65:65:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    66:66:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):228:228 -> a
+    66:66:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
+    67:69:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):137:139 -> a
+    70:70:com.android.tools.r8.graph.DexMethod mapVirtualMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):265:265 -> a
+    70:70:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):139 -> a
+    71:79:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):141:149 -> a
+    80:81:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet):155:156 -> a
+    82:82:com.android.tools.r8.graph.DexField mapCaptureField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):270:270 -> a
+    82:82:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet):156 -> a
+    83:110:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet):158:185 -> a
+    111:112:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):191:192 -> a
+    113:113:com.android.tools.r8.graph.DexField mapSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexField):275:275 -> a
+    113:113:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):192 -> a
+    114:117:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):194:197 -> a
+    118:118:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    118:118:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):196 -> a
+    119:125:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):196:202 -> a
+    126:129:com.android.tools.r8.ir.code.Value createValueForType(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexType):234:237 -> a
+    130:130:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    130:130:com.android.tools.r8.ir.code.Value createValueForType(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexType):236 -> a
+    1:5:boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):70:74 -> b
+    6:15:boolean isValidInitializerCall(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):96:105 -> b
+    16:16:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup.id():27:27 -> b
+    16:16:boolean isValidInitializerCall(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):105 -> b
+    17:17:boolean isValidInitializerCall(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):105:105 -> b
+    1:4:boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):61:64 -> c
+    1:1:boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):79:79 -> d
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId -> com.android.tools.r8.ir.optimize.r0.s.v:
+    com.android.tools.r8.graph.DexProto mainMethodProto -> g
+    com.android.tools.r8.graph.ParameterAnnotationsList mainMethodParamAnnotations -> i
+    int innerClassAccess -> k
+    com.android.tools.r8.graph.DexString mainMethodName -> f
+    boolean $assertionsDisabled -> l
+    com.android.tools.r8.graph.DexType iface -> c
+    com.android.tools.r8.graph.EnclosingMethodAttribute enclosing -> j
+    java.lang.String capture -> b
+    java.lang.String signature -> e
+    com.android.tools.r8.graph.DexAnnotationSet mainMethodAnnotations -> h
+    int hash -> a
+    java.lang.String pkg -> d
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:14:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):54:67 -> <init>
+    1:12:boolean computeEquals(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId):97:108 -> a
+    1:10:int computeHashCode():80:89 -> b
+    java.lang.String getLambdaKindDescriptor() -> c
+    1:1:int hashCode():76:76 -> hashCode
+    1:21:java.lang.String toString():113:133 -> toString
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.r0.s.w:
+    boolean $assertionsDisabled -> l
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:1:void <init>():22:22 -> <init>
+    1:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId create(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):35:41 -> a
+    8:12:boolean hasValidAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):90:94 -> a
+    13:13:boolean com.android.tools.r8.graph.DexEncodedField.hasAnnotation():147:147 -> a
+    13:13:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):224 -> a
+    14:18:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):225:229 -> a
+    19:19:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    19:19:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):229 -> a
+    20:20:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):229:229 -> a
+    21:24:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):149:152 -> a
+    25:25:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):236:236 -> a
+    25:25:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):151 -> a
+    26:28:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):153:155 -> a
+    29:37:void validateDirectMethods(com.android.tools.r8.graph.DexClass):159:167 -> a
+    38:42:void validateDirectMethods(com.android.tools.r8.graph.DexClass):165:169 -> a
+    43:43:void validateDirectMethods(com.android.tools.r8.graph.DexClass):163:163 -> a
+    44:44:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    44:44:void validateDirectMethods(com.android.tools.r8.graph.DexClass):163 -> a
+    45:72:void validateDirectMethods(com.android.tools.r8.graph.DexClass):163:190 -> a
+    73:73:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):236:236 -> a
+    73:73:void validateDirectMethods(com.android.tools.r8.graph.DexClass):190 -> a
+    74:74:void validateDirectMethods(com.android.tools.r8.graph.DexClass):192:192 -> a
+    75:75:void validateDirectMethods(com.android.tools.r8.graph.DexClass):179:179 -> a
+    76:76:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    76:76:void validateDirectMethods(com.android.tools.r8.graph.DexClass):179 -> a
+    77:98:void validateDirectMethods(com.android.tools.r8.graph.DexClass):179:200 -> a
+    99:99:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    99:99:void validateDirectMethods(com.android.tools.r8.graph.DexClass):200 -> a
+    100:100:void validateDirectMethods(com.android.tools.r8.graph.DexClass):200:200 -> a
+    101:101:void validateDirectMethods(com.android.tools.r8.graph.DexClass):196:196 -> a
+    102:102:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    102:102:void validateDirectMethods(com.android.tools.r8.graph.DexClass):196 -> a
+    103:103:void validateDirectMethods(com.android.tools.r8.graph.DexClass):196:196 -> a
+    104:105:void validateDirectMethods(com.android.tools.r8.graph.DexClass):171:172 -> a
+    106:106:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    106:106:void validateDirectMethods(com.android.tools.r8.graph.DexClass):172 -> a
+    107:107:void validateDirectMethods(com.android.tools.r8.graph.DexClass):172:172 -> a
+    108:120:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):207:219 -> a
+    121:121:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    121:121:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):219 -> a
+    122:122:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):219:219 -> a
+    123:127:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):208:212 -> a
+    128:128:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    128:128:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):212 -> a
+    129:129:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):212:212 -> a
+    130:130:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):236:236 -> a
+    131:136:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):242:247 -> a
+    137:137:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
+    137:137:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):247 -> a
+    138:138:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):247:247 -> a
+    com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions) -> b
+    1:6:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):75:80 -> b
+    7:7:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    7:7:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):80 -> b
+    8:8:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):80:80 -> b
+    9:24:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):104:119 -> b
+    25:25:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
+    25:25:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):119 -> b
+    26:28:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):119:121 -> b
+    1:4:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):54:57 -> c
+    5:5:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> c
+    5:5:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):57 -> c
+    6:10:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):57:61 -> c
+    11:11:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):236:236 -> c
+    11:11:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):61 -> c
+    12:18:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):63:69 -> c
+    19:31:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):126:138 -> c
+    32:32:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):236:236 -> c
+    32:32:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):138 -> c
+    33:33:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):139:139 -> c
+    34:34:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136:136 -> c
+    35:35:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> c
+    35:35:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136 -> c
+    36:36:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136:136 -> c
+    37:37:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):132:132 -> c
+    38:38:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> c
+    38:38:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):132 -> c
+    39:50:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):132:143 -> c
+    51:51:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> c
+    51:51:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):143 -> c
+    52:52:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):143:143 -> c
+com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaVirtualMethodSourceCode -> com.android.tools.r8.ir.optimize.r0.s.x:
+    com.android.tools.r8.graph.DexItemFactory factory -> l
+    java.util.List implMethods -> n
+    com.android.tools.r8.graph.DexField idField -> m
+    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField,java.util.List,com.android.tools.r8.ir.code.Position):33:36 -> <init>
+    1:1:void lambda$prepareInstructions$1(int,int[],int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):64:64 -> a
+    2:2:boolean lambda$prepareInstructions$2(int,int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):65:65 -> a
+    3:6:boolean com.android.tools.r8.ir.synthetic.SyntheticSourceCode.endsSwitch(com.android.tools.r8.ir.conversion.IRBuilder,int,int,int[]):231:234 -> a
+    3:6:boolean lambda$prepareInstructions$2(int,int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):65 -> a
+    7:14:void lambda$prepareInstructions$5(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.IRBuilder):89:96 -> a
+    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):55:55 -> b
+    1:1142:void com.android.tools.r8.ir.conversion.IRBuilder.addNullConst(int):0:1141 -> c
+    1:1142:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):70 -> c
+    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):71:71 -> d
+    1:1:void lambda$prepareInstructions$6(int,com.android.tools.r8.ir.conversion.IRBuilder):102:102 -> e
+    1:1:void lambda$prepareInstructions$7(int,com.android.tools.r8.ir.conversion.IRBuilder):103:103 -> f
+    1:65:void prepareInstructions():41:105 -> h
+com.android.tools.r8.ir.optimize.library.BooleanMethodOptimizer -> com.android.tools.r8.ir.optimize.s0.a:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    1:3:void <init>(com.android.tools.r8.graph.AppView):26:28 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getType():33:33 -> a
+    2:2:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):43:43 -> a
+    3:12:void optimizeBooleanValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):52:61 -> a
+    3:12:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):44 -> a
+    13:13:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):45:45 -> a
+    14:22:void optimizeValueOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,java.util.Set):72:80 -> a
+    14:22:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):46 -> a
+    23:23:void optimizeValueOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,java.util.Set):75:75 -> a
+    23:23:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):46 -> a
+com.android.tools.r8.ir.optimize.library.LibraryMethodModelCollection -> com.android.tools.r8.ir.optimize.s0.b:
+    com.android.tools.r8.graph.DexType getType() -> a
+    void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
+com.android.tools.r8.ir.optimize.library.LibraryMethodOptimizer -> com.android.tools.r8.ir.optimize.s0.c:
+    java.util.Map libraryMethodModelCollections -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set modeledLibraryTypes -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):34:34 -> <init>
+    2:20:void <init>(com.android.tools.r8.graph.AppView):29:47 -> <init>
+    1:1:boolean isModeled(com.android.tools.r8.graph.DexType):63:63 -> a
+    2:6:void register(com.android.tools.r8.ir.optimize.library.LibraryMethodModelCollection):67:71 -> a
+    7:7:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):79:79 -> a
+    8:8:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    8:8:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):80 -> a
+    9:14:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):81:86 -> a
+    15:17:void optimizeInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):103:105 -> a
+    15:17:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):88 -> a
+    18:20:void optimizeInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):104:106 -> a
+    18:20:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):88 -> a
+    21:22:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):92:93 -> a
+    23:23:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    23:23:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):93 -> a
+    24:24:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):93:93 -> a
+com.android.tools.r8.ir.optimize.library.LibraryOptimizationInfoInitializer -> com.android.tools.r8.ir.optimize.s0.d:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple feedback -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set modeledLibraryTypes -> d
+    1:1:void <init>(com.android.tools.r8.graph.AppView):25:25 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.AppView):22:27 -> <init>
+    1:1:java.util.Set getModeledLibraryTypes():37:37 -> a
+    2:2:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):76:76 -> a
+    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    3:3:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):76 -> a
+    4:4:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):78:78 -> a
+    1:4:void modelLibraryMethodsReturningNonNull():41:44 -> b
+    1:4:void run():31 -> b
+    5:128:void com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple.methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod):0:123 -> b
+    5:128:void modelLibraryMethodsReturningNonNull():44 -> b
+    5:128:void run():31 -> b
+    129:132:void modelLibraryMethodsReturningReceiver():50:53 -> b
+    129:132:void run():32 -> b
+    133:133:void modelRequireNonNullMethods():59:59 -> b
+    133:133:void run():33 -> b
+    134:134:java.lang.Iterable com.android.tools.r8.graph.DexItemFactory$ObjectsMethods.requireNonNullMethods():786:786 -> b
+    134:134:void modelRequireNonNullMethods():59 -> b
+    134:134:void run():33 -> b
+    135:146:void modelRequireNonNullMethods():59:70 -> b
+    135:146:void run():33 -> b
+com.android.tools.r8.ir.optimize.library.LogMethodOptimizer -> com.android.tools.r8.ir.optimize.s0.e:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.DexMethod wtfMethod -> i
+    com.android.tools.r8.graph.DexMethod eMethod -> h
+    com.android.tools.r8.graph.DexMethod wMethod -> g
+    com.android.tools.r8.graph.DexMethod iMethod -> f
+    com.android.tools.r8.graph.DexType logType -> b
+    com.android.tools.r8.graph.DexMethod dMethod -> e
+    com.android.tools.r8.graph.DexMethod vMethod -> d
+    com.android.tools.r8.graph.DexMethod isLoggableMethod -> c
+    1:10:void <init>(com.android.tools.r8.graph.AppView):41:50 -> <init>
+    11:19:void <init>(com.android.tools.r8.graph.AppView):48:56 -> <init>
+    20:28:void <init>(com.android.tools.r8.graph.AppView):54:62 -> <init>
+    29:37:void <init>(com.android.tools.r8.graph.AppView):60:68 -> <init>
+    38:46:void <init>(com.android.tools.r8.graph.AppView):66:74 -> <init>
+    47:55:void <init>(com.android.tools.r8.graph.AppView):72:80 -> <init>
+    56:64:void <init>(com.android.tools.r8.graph.AppView):78:86 -> <init>
+    65:65:void <init>(com.android.tools.r8.graph.AppView):84:84 -> <init>
+    1:3:boolean isEnabled(com.android.tools.r8.graph.AppView):92:94 -> a
+    4:4:com.android.tools.r8.graph.DexType getType():99:99 -> a
+    5:39:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):109:143 -> a
+    40:43:void replaceInvokeWithConstNumber(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,int):150:153 -> a
+com.android.tools.r8.ir.optimize.library.NopLibraryMethodModelCollection -> com.android.tools.r8.ir.optimize.s0.f:
+    com.android.tools.r8.ir.optimize.library.NopLibraryMethodModelCollection INSTANCE -> a
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:1:void <init>():21:21 -> <init>
+    void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
+    1:1:com.android.tools.r8.graph.DexType getType():29:29 -> a
+    1:1:com.android.tools.r8.ir.optimize.library.NopLibraryMethodModelCollection getInstance():24:24 -> b
+com.android.tools.r8.ir.optimize.library.ObjectsMethodOptimizer -> com.android.tools.r8.ir.optimize.s0.g:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
+    1:2:void <init>(com.android.tools.r8.graph.AppView):21:22 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getType():27:27 -> a
+    2:2:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):37:37 -> a
+    3:3:boolean com.android.tools.r8.graph.DexItemFactory$ObjectsMethods.isRequireNonNullMethod(com.android.tools.r8.graph.DexMethod):780:780 -> a
+    3:3:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):37 -> a
+    4:11:void optimizeRequireNonNull(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,java.util.Set):44:51 -> a
+    4:11:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):38 -> a
+com.android.tools.r8.ir.optimize.library.StringMethodOptimizer -> com.android.tools.r8.ir.optimize.s0.h:
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    1:3:void <init>(com.android.tools.r8.graph.AppView):25:27 -> <init>
+    1:1:com.android.tools.r8.graph.DexType getType():32:32 -> a
+    2:2:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):42:42 -> a
+    3:9:void optimizeEquals(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):49:55 -> a
+    3:9:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):43 -> a
+    10:33:boolean isPrunedClassNameComparison(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):67:90 -> a
+com.android.tools.r8.ir.optimize.peepholes.BasicBlockMuncher -> com.android.tools.r8.ir.optimize.t0.a:
+    1:1:java.util.List nonDestructivePeepholes():22:22 -> a
+    1:1:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):37 -> a
+    2:2:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):37:37 -> a
+    3:3:java.util.List destructivePeepholes():28:28 -> a
+    3:3:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):38 -> a
+    4:4:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):38:38 -> a
+    5:33:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List,com.android.tools.r8.utils.InternalOptions):43:71 -> a
+    34:34:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    34:34:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List,com.android.tools.r8.utils.InternalOptions):71 -> a
+    35:35:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    35:35:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    35:35:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List,com.android.tools.r8.utils.InternalOptions):71 -> a
+    36:40:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List,com.android.tools.r8.utils.InternalOptions):71:75 -> a
+com.android.tools.r8.ir.optimize.peepholes.BasicBlockPeephole -> com.android.tools.r8.ir.optimize.t0.b:
+    boolean match(com.android.tools.r8.ir.code.InstructionListIterator) -> a
+    boolean resetAfterMatch() -> a
+com.android.tools.r8.ir.optimize.peepholes.DupDupDupPeephole -> com.android.tools.r8.ir.optimize.t0.c:
+    com.android.tools.r8.ir.optimize.peepholes.Point dup3Exp -> c
+    com.android.tools.r8.ir.optimize.peepholes.Point dup2Exp -> b
+    com.android.tools.r8.ir.optimize.peepholes.Point dup1Exp -> a
+    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> d
+    1:10:void <init>():28:37 -> <init>
+    boolean resetAfterMatch() -> a
+    1:1:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):31:31 -> a
+    2:39:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):41:78 -> a
+    1:1:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):33:33 -> b
+    1:1:boolean lambda$new$2(com.android.tools.r8.ir.code.Instruction):35:35 -> c
+com.android.tools.r8.ir.optimize.peepholes.LoadLoadDupPeephole -> com.android.tools.r8.ir.optimize.t0.d:
+    com.android.tools.r8.ir.optimize.peepholes.Point firstLoadExp -> b
+    com.android.tools.r8.ir.optimize.peepholes.Point lastLoadExp -> a
+    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:8:void <init>():30:37 -> <init>
+    boolean resetAfterMatch() -> a
+    1:24:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):41:64 -> a
+com.android.tools.r8.ir.optimize.peepholes.Match -> com.android.tools.r8.ir.optimize.t0.e:
+    java.util.List instructions -> a
+    1:3:void <init>(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[],java.util.List):14:16 -> <init>
+com.android.tools.r8.ir.optimize.peepholes.MoveLoadUpPeephole -> com.android.tools.r8.ir.optimize.t0.f:
+    com.android.tools.r8.ir.optimize.peepholes.Point firstLoad -> d
+    com.android.tools.r8.ir.code.Instruction insertPosition -> c
+    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> f
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.ir.optimize.peepholes.Wildcard canMoveOver -> e
+    com.android.tools.r8.ir.code.Value local -> a
+    int stackHeight -> b
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:34:void <init>():33:66 -> <init>
+    boolean resetAfterMatch() -> a
+    1:2:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):42:43 -> a
+    3:6:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):70:73 -> a
+    7:30:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):107:130 -> a
+    7:30:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
+    31:31:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):125:125 -> a
+    31:31:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
+    32:32:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):120:120 -> a
+    32:32:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
+    33:59:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):76:102 -> a
+    1:10:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):51:60 -> b
+com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression -> com.android.tools.r8.ir.optimize.t0.g:
+    int getMin() -> a
+    void setIndex(int) -> a
+    java.util.function.Predicate getPredicate() -> b
+    int getMax() -> c
+com.android.tools.r8.ir.optimize.peepholes.PeepholeHelper -> com.android.tools.r8.ir.optimize.t0.h:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:1:java.util.function.Predicate withoutLocalInfo(java.util.function.Predicate):17:17 -> a
+    2:4:boolean lambda$withoutLocalInfo$0(java.util.function.Predicate,com.android.tools.r8.ir.code.Instruction):18:20 -> a
+    5:5:void resetNext(com.android.tools.r8.ir.code.InstructionListIterator,int):25:25 -> a
+    6:7:int numberOfValuesConsumedFromStack(com.android.tools.r8.ir.code.Instruction):47:48 -> a
+    8:22:void moveInstructionsUpToCurrentPosition(com.android.tools.r8.ir.code.InstructionListIterator,java.util.List):57:71 -> a
+    23:23:boolean lambda$moveInstructionsUpToCurrentPosition$1(java.util.List,com.android.tools.r8.ir.code.Instruction):64:64 -> a
+    1:1:void resetPrevious(com.android.tools.r8.ir.code.InstructionListIterator,int):31:31 -> b
+    2:5:int numberOfValuesPutOnStack(com.android.tools.r8.ir.code.Instruction):36:39 -> b
+    6:6:boolean lambda$moveInstructionsUpToCurrentPosition$2(java.util.List,com.android.tools.r8.ir.code.Instruction):70:70 -> b
+com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout -> com.android.tools.r8.ir.optimize.t0.i:
+    com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[] expressions -> b
+    java.util.List instructions -> a
+    boolean backwards -> c
+    1:8:void <init>(boolean,com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):18:25 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout lookBackward(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):33:33 -> a
+    2:2:java.lang.Boolean lambda$test$0(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> a
+    3:39:com.android.tools.r8.ir.optimize.peepholes.Match testDirection(java.util.function.Supplier,java.util.function.Supplier,java.lang.Runnable):48:84 -> a
+    1:1:com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout lookForward(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):29:29 -> b
+    2:2:com.android.tools.r8.ir.code.Instruction lambda$test$1(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> b
+    1:1:void lambda$test$2(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> c
+    1:1:java.lang.Boolean lambda$test$3(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> d
+    1:1:com.android.tools.r8.ir.code.Instruction lambda$test$4(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> e
+    1:1:void lambda$test$5(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> f
+    1:4:com.android.tools.r8.ir.optimize.peepholes.Match test(com.android.tools.r8.ir.code.InstructionListIterator):37:40 -> g
+com.android.tools.r8.ir.optimize.peepholes.Point -> com.android.tools.r8.ir.optimize.t0.j:
+    java.util.function.Predicate predicate -> a
+    int index -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:1:void <init>(java.util.function.Predicate):15:15 -> <init>
+    2:5:void <init>(java.util.function.Predicate):13:16 -> <init>
+    int getMin() -> a
+    1:2:void setIndex(int):36:37 -> a
+    3:3:com.android.tools.r8.ir.code.Instruction get(com.android.tools.r8.ir.optimize.peepholes.Match):41:41 -> a
+    1:1:java.util.function.Predicate getPredicate():21:21 -> b
+    int getMax() -> c
+com.android.tools.r8.ir.optimize.peepholes.StoreLoadPeephole -> com.android.tools.r8.ir.optimize.t0.k:
+    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> b
+    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> a
+    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> c
+    1:6:void <init>():22:27 -> <init>
+    boolean resetAfterMatch() -> a
+    1:18:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):31:48 -> a
+com.android.tools.r8.ir.optimize.peepholes.StoreLoadToDupStorePeephole -> com.android.tools.r8.ir.optimize.t0.l:
+    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> b
+    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> a
+    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.optimize.peepholes.Wildcard dupsExp -> c
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:7:void <init>():33:39 -> <init>
+    boolean lambda$match$1(com.android.tools.r8.ir.code.Load,com.android.tools.r8.ir.code.Instruction) -> a
+    boolean resetAfterMatch() -> a
+    1:1:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):37:37 -> a
+    2:39:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):43:80 -> a
+com.android.tools.r8.ir.optimize.peepholes.StoreSequenceLoadPeephole -> com.android.tools.r8.ir.optimize.t0.m:
+    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> c
+    com.android.tools.r8.ir.code.Store store -> a
+    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> f
+    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> e
+    com.android.tools.r8.ir.optimize.peepholes.Wildcard seqExp -> d
+    int stackHeight -> b
+    1:48:void <init>():34:81 -> <init>
+    boolean lambda$match$3(com.android.tools.r8.ir.code.Load,com.android.tools.r8.ir.code.Instruction) -> a
+    boolean resetAfterMatch() -> a
+    1:8:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):42:49 -> a
+    9:50:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):85:126 -> a
+    1:10:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):56:65 -> b
+    1:4:boolean lambda$new$2(com.android.tools.r8.ir.code.Instruction):72:75 -> c
+com.android.tools.r8.ir.optimize.peepholes.Wildcard -> com.android.tools.r8.ir.optimize.t0.n:
+    java.util.function.Predicate predicate -> a
+    int index -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:1:void <init>(java.util.function.Predicate):16:16 -> <init>
+    2:5:void <init>(java.util.function.Predicate):14:17 -> <init>
+    int getMin() -> a
+    1:2:void setIndex(int):37:38 -> a
+    3:3:java.util.List get(com.android.tools.r8.ir.optimize.peepholes.Match):42:42 -> a
+    1:1:java.util.function.Predicate getPredicate():22:22 -> b
+    int getMax() -> c
+com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer -> com.android.tools.r8.ir.optimize.u0.d:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.concurrent.ConcurrentHashMap candidates -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ir.conversion.IRConverter converter -> c
+    1:1:void <clinit>():50:50 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):103:103 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):101:106 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$100(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer):50:50 -> a
+    2:50:void collectCandidates(com.android.tools.r8.graph.DexApplication):113:161 -> a
+    51:83:void lambda$collectCandidates$0(java.util.Map,java.util.Set,com.android.tools.r8.graph.DexProgramClass):124:156 -> a
+    84:88:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):162:166 -> a
+    89:94:boolean isPinned(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):178:183 -> a
+    89:94:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):167 -> a
+    95:98:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):168:171 -> a
+    99:109:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):213:223 -> a
+    110:121:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):222:233 -> a
+    122:140:java.util.List isValidGetter(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.IRCode):502:520 -> a
+    122:140:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):234 -> a
+    141:172:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):236:267 -> a
+    173:181:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):367:375 -> a
+    173:181:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    182:182:boolean com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.isHostClassInitializer(com.android.tools.r8.graph.DexEncodedMethod):81:81 -> a
+    182:182:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):378 -> a
+    182:182:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    183:183:com.android.tools.r8.graph.DexItemFactory access$000(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer):50:50 -> a
+    183:183:boolean com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.isHostClassInitializer(com.android.tools.r8.graph.DexEncodedMethod):81 -> a
+    183:183:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):378 -> a
+    183:183:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    184:184:boolean com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.isHostClassInitializer(com.android.tools.r8.graph.DexEncodedMethod):81:81 -> a
+    184:184:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):378 -> a
+    184:184:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    185:225:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):381:421 -> a
+    185:225:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    226:226:boolean isNonThrowingConstInstruction(com.android.tools.r8.ir.code.Instruction):449:449 -> a
+    226:226:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):421 -> a
+    226:226:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    227:240:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):424:437 -> a
+    227:240:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    241:248:boolean isValidStaticPut(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Instruction):484:491 -> a
+    241:248:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):437 -> a
+    241:248:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    249:253:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):438:442 -> a
+    249:253:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
+    254:255:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):274:275 -> a
+    256:259:boolean isAllowedInHostClassInitializer(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):357:360 -> a
+    256:259:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275 -> a
+    260:265:boolean com.android.tools.r8.ir.code.Goto.isTrivialGotoToTheNextBlock(com.android.tools.r8.ir.code.IRCode):104:109 -> a
+    260:265:boolean isAllowedInHostClassInitializer(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):360 -> a
+    260:265:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275 -> a
+    266:266:boolean isAllowedInHostClassInitializer(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):361:361 -> a
+    266:266:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275 -> a
+    267:291:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):276:300 -> a
+    292:304:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processStaticFieldRead(com.android.tools.r8.ir.code.StaticGet):533:545 -> a
+    292:304:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):300 -> a
+    305:317:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):302:314 -> a
+    318:327:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic):553:562 -> a
+    318:327:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):314 -> a
+    328:360:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):316:348 -> a
+    361:386:boolean isValidInitCall(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):454:479 -> a
+    387:435:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo analyzeAllValueUsers(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Value,boolean):569:617 -> a
+    436:436:boolean lambda$analyzeAllValueUsers$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):588:588 -> a
+    437:437:void staticizeCandidates(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):640:640 -> a
+    1:1:boolean lambda$isValidInitCall$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):464:464 -> b
+com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$1 -> com.android.tools.r8.ir.optimize.u0.a:
+com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CallSiteReferencesInvalidator -> com.android.tools.r8.ir.optimize.u0.b:
+    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer this$0 -> a
+    1:1:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$1):643:643 -> <init>
+    2:3:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexItemFactory):645:646 -> <init>
+    1:2:boolean registerMethod(com.android.tools.r8.graph.DexMethod):650:651 -> a
+    3:4:boolean registerField(com.android.tools.r8.graph.DexField):656:657 -> a
+    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):693:693 -> registerInstanceFieldRead
+    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):688:688 -> registerInstanceFieldWrite
+    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):668:668 -> registerInvokeDirect
+    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):678:678 -> registerInvokeInterface
+    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):673:673 -> registerInvokeStatic
+    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):683:683 -> registerInvokeSuper
+    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):663:663 -> registerInvokeVirtual
+    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):698:698 -> registerNewInstance
+    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):703:703 -> registerStaticFieldRead
+    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):708:708 -> registerStaticFieldWrite
+    1:3:boolean registerTypeReference(com.android.tools.r8.graph.DexType):713:715 -> registerTypeReference
+com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo -> com.android.tools.r8.ir.optimize.u0.c:
+    java.util.concurrent.atomic.AtomicInteger instancesCreated -> e
+    com.android.tools.r8.graph.DexEncodedField singletonField -> b
+    java.util.concurrent.atomic.AtomicInteger fieldWrites -> d
+    java.util.concurrent.atomic.AtomicReference constructor -> g
+    boolean $assertionsDisabled -> j
+    java.util.concurrent.atomic.AtomicReference getter -> h
+    java.util.concurrent.atomic.AtomicBoolean preserveRead -> c
+    com.android.tools.r8.graph.DexProgramClass candidate -> a
+    java.util.Set referencedFrom -> f
+    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer this$0 -> i
+    1:1:void <clinit>():58:58 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):70:70 -> <init>
+    2:18:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):61:77 -> <init>
+    1:1:com.android.tools.r8.graph.DexType hostType():85:85 -> a
+    1:1:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo invalidate():95:95 -> b
+com.android.tools.r8.ir.optimize.staticizer.ClassStaticizerGraphLense -> com.android.tools.r8.ir.optimize.u0.e:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):22:28 -> <init>
+    8:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):21:21 -> <init>
+    1:3:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):33:35 -> mapInvocationType
+com.android.tools.r8.ir.optimize.staticizer.StaticizingProcessor -> com.android.tools.r8.ir.optimize.u0.f:
+    java.util.Set methodsToBeStaticized -> g
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer classStaticizer -> b
+    java.util.Map processingQueue -> d
+    boolean $assertionsDisabled -> j
+    java.util.Set referencingExtraMethods -> e
+    java.util.Map candidateToHostMapping -> i
+    java.util.Map hostClassInits -> f
+    com.android.tools.r8.ir.conversion.IRConverter converter -> c
+    java.util.Map singletonFields -> h
+    1:1:void <clinit>():58:58 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.ir.conversion.IRConverter):77:77 -> <init>
+    2:17:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.ir.conversion.IRConverter):65:80 -> <init>
+    1:4:void lambda$run$0(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder):95:98 -> a
+    5:5:void lambda$run$1(com.android.tools.r8.com.google.common.collect.ImmutableList$Builder):104:104 -> a
+    6:59:void finalEligibilityCheck():131:184 -> a
+    60:60:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> a
+    60:60:void finalEligibilityCheck():184 -> a
+    61:71:void finalEligibilityCheck():184:194 -> a
+    72:101:void finalEligibilityCheck():193:222 -> a
+    102:115:void finalEligibilityCheck():221:234 -> a
+    116:116:boolean lambda$finalEligibilityCheck$4(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.StaticGet):214:214 -> a
+    117:118:void enqueueMethodsWithCodeOptimizations(java.lang.Iterable,java.util.function.Consumer):271:272 -> a
+    119:119:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder lambda$enqueueMethodsWithCodeOptimizations$5(com.android.tools.r8.graph.DexEncodedMethod):272:272 -> a
+    120:127:void processMethodsConcurrently(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):288:295 -> a
+    128:128:void lambda$processMethodsConcurrently$6(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.OneTimeMethodProcessor,com.android.tools.r8.graph.DexEncodedMethod):292:292 -> a
+    129:129:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):294:294 -> a
+    129:129:void lambda$removeCandidateInstantiation$9(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):345 -> a
+    130:134:void forEachMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.OneTimeMethodProcessor):304:308 -> a
+    135:135:void lambda$forEachMethod$7(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OneTimeMethodProcessor,java.util.function.BiConsumer):306:306 -> a
+    136:136:void insertAssumeInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):312:312 -> a
+    137:137:java.util.function.BiConsumer collectOptimizationInfo(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):317:317 -> a
+    138:145:void lambda$collectOptimizationInfo$8(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):318:318 -> a
+    146:146:boolean lambda$rewriteReferences$10(com.android.tools.r8.ir.code.StaticGet):364:364 -> a
+    147:154:void lambda$rewriteReferences$11(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):369:376 -> a
+    155:155:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):294:294 -> a
+    155:155:void lambda$rewriteReferences$11(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):377 -> a
+    156:176:boolean testAndCollectPhisComposedOfThis(java.util.Set,java.util.Set,com.android.tools.r8.ir.code.Value,java.util.Set):388:408 -> a
+    177:181:void fixupStaticizedThisUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):415:419 -> a
+    182:199:void fixupStaticizedThisUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):418:435 -> a
+    200:223:boolean testAndCollectPhisComposedOfSameFieldRead(java.util.Set,java.util.Set,com.android.tools.r8.graph.DexField,java.util.Set):474:497 -> a
+    224:229:void fixupStaticizedFieldReadUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):505:510 -> a
+    230:247:void fixupStaticizedFieldReadUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):509:526 -> a
+    248:257:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):530:539 -> a
+    258:258:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1052:1052 -> a
+    258:258:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):539 -> a
+    259:266:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):540:547 -> a
+    267:267:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
+    267:267:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):546 -> a
+    268:268:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    268:268:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
+    268:268:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):546 -> a
+    269:269:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):606:606 -> a
+    270:270:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> a
+    270:270:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):608 -> a
+    271:273:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):608:610 -> a
+    274:274:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> a
+    274:274:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):612 -> a
+    275:275:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):612:612 -> a
+    276:279:boolean classMembersConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):660:663 -> a
+    280:280:boolean lambda$classMembersConflict$12(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):662:662 -> a
+    281:281:boolean lambda$classMembersConflict$13(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):663:663 -> a
+    282:282:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):732:732 -> a
+    283:283:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> a
+    283:283:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):733 -> a
+    284:285:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):734:735 -> a
+    286:286:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):733:733 -> a
+    1:1:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):86:86 -> b
+    2:5:void prepareCandidates():241:244 -> b
+    2:5:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):89 -> b
+    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():89:89 -> b
+    6:6:void prepareCandidates():246 -> b
+    6:6:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):89 -> b
+    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():89 -> b
+    7:7:void prepareCandidates():246 -> b
+    7:7:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):89 -> b
+    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():90:90 -> b
+    8:8:void prepareCandidates():246 -> b
+    8:8:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):89 -> b
+    9:17:void prepareCandidates():247:255 -> b
+    9:17:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):89 -> b
+    18:18:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> b
+    18:18:void prepareCandidates():256 -> b
+    18:18:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):89 -> b
+    19:28:void prepareCandidates():256:265 -> b
+    19:28:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):89 -> b
+    29:31:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):92:92 -> b
+    42:46:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):103:107 -> b
+    47:58:java.util.Set staticizeMethodSymbols():618:629 -> b
+    47:58:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    59:59:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> b
+    59:59:java.util.Set staticizeMethodSymbols():630 -> b
+    59:59:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    60:73:java.util.Set staticizeMethodSymbols():630:643 -> b
+    60:73:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    74:74:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    74:74:java.util.Set staticizeMethodSymbols():643 -> b
+    74:74:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    75:76:java.util.Set staticizeMethodSymbols():644:645 -> b
+    75:76:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    77:115:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):672:710 -> b
+    77:115:java.util.Set staticizeMethodSymbols():647 -> b
+    77:115:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    116:116:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> b
+    116:116:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):712 -> b
+    116:116:java.util.Set staticizeMethodSymbols():647 -> b
+    116:116:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    117:117:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):712:712 -> b
+    117:117:java.util.Set staticizeMethodSymbols():647 -> b
+    117:117:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    118:134:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):711:727 -> b
+    118:134:java.util.Set staticizeMethodSymbols():647 -> b
+    118:134:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    135:136:java.util.Set staticizeMethodSymbols():653:654 -> b
+    135:136:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):111 -> b
+    137:148:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):116:127 -> b
+    149:152:void lambda$run$2(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder):121:124 -> b
+    153:153:boolean lambda$finalEligibilityCheck$3(com.android.tools.r8.graph.DexEncodedMethod):176:176 -> b
+    154:166:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):328:340 -> b
+    167:167:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> b
+    167:167:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):340 -> b
+    168:173:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):340:345 -> b
+    174:174:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):294:294 -> b
+    174:174:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):346 -> b
+    175:175:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):351:351 -> b
+    1:1:void removeReferencesToThis(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):355:355 -> c
+    1:21:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):361:381 -> d
+    22:22:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> d
+    22:22:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):553 -> d
+    22:22:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    23:36:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):554:567 -> d
+    23:36:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    37:39:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):566:568 -> d
+    37:39:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    40:40:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):565:565 -> d
+    40:40:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    41:41:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> d
+    41:41:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):563 -> d
+    41:41:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    42:46:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):574:578 -> d
+    42:46:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    47:47:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> d
+    47:47:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):578 -> d
+    47:47:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    48:51:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):583:586 -> d
+    48:51:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    52:52:com.android.tools.r8.graph.DexItemFactory factory():740:740 -> d
+    52:52:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):588 -> d
+    52:52:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    53:61:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):588:596 -> d
+    53:61:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    62:64:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):595:597 -> d
+    62:64:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    65:69:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):594:598 -> d
+    65:69:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+    70:70:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> d
+    70:70:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):598 -> d
+    70:70:void rewriteReferences(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):382 -> d
+com.android.tools.r8.ir.optimize.string.StringBuilderOptimizationConfiguration -> com.android.tools.r8.ir.optimize.string.a:
+    boolean isBuilderInit(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType) -> a
+    boolean isBuilderType(com.android.tools.r8.graph.DexType) -> a
+    boolean isSupportedAppendMethod(com.android.tools.r8.ir.code.InvokeMethod) -> a
+    boolean isToStringMethod(com.android.tools.r8.graph.DexMethod) -> a
+    boolean isAppendMethod(com.android.tools.r8.graph.DexMethod) -> b
+    boolean isBuilderInitWithInitialValue(com.android.tools.r8.ir.code.InvokeMethod) -> b
+    boolean isBuilderInit(com.android.tools.r8.graph.DexMethod) -> c
+com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer -> com.android.tools.r8.ir.optimize.string.b:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    int numberOfDeadBuilders -> n
+    int numberOfBuildersSimplified -> o
+    int numberOfBuildersWithMergingPoints -> l
+    com.android.tools.r8.graph.AppView appView -> a
+    int numberOfBuildersWithNonDeterministicArg -> m
+    int numberOfBuildersWithNonTrivialStateChange -> j
+    int numberOfBuildersWithUnsupportedArg -> k
+    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizationConfiguration optimizationConfiguration -> e
+    int numberOfBuildersThatEscape -> h
+    int numberOfBuildersWhoseResultIsInterned -> i
+    int numberOfBuildersWithMultipleToString -> f
+    int numberOfBuildersWithoutToString -> g
+    boolean $assertionsDisabled -> t
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfAppendChains -> p
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfEndResult -> q
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfPartialAppendChains -> r
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfPartialResult -> s
+    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis analysis -> d
+    1:1:void <clinit>():79:79 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):103:103 -> <init>
+    2:31:void <init>(com.android.tools.r8.graph.AppView):88:117 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap access$1000(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> a
+    2:4:void logResults():122:124 -> a
+    5:8:void logResults():123:126 -> a
+    9:12:void logResults():125:128 -> a
+    13:16:void logResults():127:130 -> a
+    17:20:void logResults():129:132 -> a
+    21:24:void logResults():131:134 -> a
+    25:28:void logResults():133:136 -> a
+    29:32:void logResults():135:138 -> a
+    33:61:void logResults():137:165 -> a
+    62:64:void lambda$logResults$0(java.lang.Integer,java.lang.Integer):144:144 -> a
+    65:80:void computeTrivialStringConcatenation(com.android.tools.r8.ir.code.IRCode):173:188 -> a
+    81:81:boolean lambda$computeTrivialStringConcatenation$4(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis,com.android.tools.r8.ir.code.Value):180:180 -> a
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap access$1100(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> b
+    2:4:void lambda$logResults$1(java.lang.Integer,java.lang.Integer):151:151 -> b
+    1:1:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo access$1200(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> c
+    2:4:void lambda$logResults$2(java.lang.Integer,java.lang.Integer):159:159 -> c
+    1:1:int access$1308(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> d
+    2:4:void lambda$logResults$3(java.lang.Integer,java.lang.Integer):166:166 -> d
+    1:1:int access$1408(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> e
+    1:1:int access$1508(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> f
+    1:1:int access$1608(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> g
+    1:1:int access$1708(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> h
+    1:1:int access$1808(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> i
+    1:1:int access$1908(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> j
+    1:1:int access$2008(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> k
+    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> l
+    1:1:int access$408(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> m
+    1:1:int access$508(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> n
+    1:1:com.android.tools.r8.graph.DexItemFactory access$700(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> o
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap access$800(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> p
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap access$900(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> q
+com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$1 -> com.android.tools.r8.ir.optimize.string.b$a:
+com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState -> com.android.tools.r8.ir.optimize.string.b$b:
+    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState previous -> a
+    java.util.Set nexts -> c
+    java.lang.String addition -> b
+    1:4:void <init>():966:969 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState createRoot():973:973 -> a
+    2:8:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState createChild(java.lang.String):977:983 -> a
+com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$DefaultStringBuilderOptimizationConfiguration -> com.android.tools.r8.ir.optimize.string.b$c:
+    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer this$0 -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():794:794 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):794:794 -> <init>
+    1:2:boolean isBuilderType(com.android.tools.r8.graph.DexType):798:799 -> a
+    3:4:boolean isBuilderInit(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):804:805 -> a
+    5:20:boolean isSupportedAppendMethod(com.android.tools.r8.ir.code.InvokeMethod):829:844 -> a
+    21:21:boolean canHandleArgumentType(com.android.tools.r8.graph.DexType):858:858 -> a
+    21:21:boolean isSupportedAppendMethod(com.android.tools.r8.ir.code.InvokeMethod):845 -> a
+    22:23:boolean isToStringMethod(com.android.tools.r8.graph.DexMethod):852:853 -> a
+    1:3:boolean isBuilderInitWithInitialValue(com.android.tools.r8.ir.code.InvokeMethod):816:818 -> b
+    4:5:boolean isAppendMethod(com.android.tools.r8.graph.DexMethod):823:824 -> b
+    1:2:boolean isBuilderInit(com.android.tools.r8.graph.DexMethod):810:811 -> c
+com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringBuilderOptimizerEscapeAnalysisConfiguration -> com.android.tools.r8.ir.optimize.string.b$d:
+    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer this$0 -> b
+    com.android.tools.r8.graph.DexType builderType -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():862:862 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$1):862:862 -> <init>
+    2:5:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.Value):866:869 -> <init>
+    1:1:void logEscapingRoute(boolean):874:874 -> a
+    1:10:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):884:893 -> isLegitimateEscapeRoute
+    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> isLegitimateEscapeRoute
+    11:11:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):893 -> isLegitimateEscapeRoute
+    12:73:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):894:955 -> isLegitimateEscapeRoute
+    74:74:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):885:885 -> isLegitimateEscapeRoute
+com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis -> com.android.tools.r8.ir.optimize.string.b$e:
+    java.util.Map builderStates -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap builderToStringCounts -> b
+    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer this$0 -> f
+    java.util.Set deadBuilders -> d
+    java.util.Set simplifiedBuilders -> e
+    com.android.tools.r8.ir.code.IRCode code -> a
+    boolean $assertionsDisabled -> g
+    1:1:void <clinit>():191:191 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.IRCode):205:205 -> <init>
+    2:374:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.IRCode):203:575 -> <init>
+    375:375:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.IRCode):206:206 -> <init>
+    1:28:java.util.Set findAllLocalBuilders():217:244 -> a
+    1:28:java.util.Set access$000(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis):191 -> a
+    29:31:java.util.Set collectAllLinkedBuilders(com.android.tools.r8.ir.code.Value):257:259 -> a
+    29:31:java.util.Set findAllLocalBuilders():245 -> a
+    29:31:java.util.Set access$000(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis):191 -> a
+    32:40:java.util.Set findAllLocalBuilders():245:253 -> a
+    32:40:java.util.Set access$000(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis):191 -> a
+    41:49:void collectAllLinkedBuilders(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Set):264:272 -> a
+    50:73:boolean canBeOptimized(com.android.tools.r8.ir.code.Value):280:303 -> a
+    50:73:boolean access$2100(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis,com.android.tools.r8.ir.code.Value):191 -> a
+    74:74:java.util.Map createBuilderState(com.android.tools.r8.ir.code.Value):312:312 -> a
+    75:153:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis buildBuilderStateGraph(java.util.Set):346:424 -> a
+    75:153:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis access$100(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis,java.util.Set):191 -> a
+    154:183:java.lang.String extractConstantArgument(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):435:464 -> a
+    184:191:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState findDominantState(com.android.tools.r8.ir.code.DominatorTree,java.util.Map,com.android.tools.r8.ir.code.Instruction):522:529 -> a
+    192:211:void logHistogramOfChains(java.util.List,boolean):537:556 -> a
+    212:228:void logHistogramOfChains(java.util.List,boolean):551:567 -> a
+    229:229:void logHistogramOfChains(java.util.List,boolean):562:562 -> a
+    230:231:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):578:579 -> a
+    232:1204:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():0:972 -> a
+    232:1204:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):579 -> a
+    1205:1241:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):580:616 -> a
+    1242:1247:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):614:619 -> a
+    1248:1248:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    1248:1248:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):618 -> a
+    1249:1250:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):620:621 -> a
+    1251:1255:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):591:595 -> a
+    1256:1260:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):593:597 -> a
+    1261:1261:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    1261:1261:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):596 -> a
+    1262:1288:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):599:625 -> a
+    1289:1289:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    1289:1289:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):625 -> a
+    1290:1290:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):625:625 -> a
+    1291:1317:boolean isToStringOfInterest(java.util.Set,com.android.tools.r8.ir.code.Instruction):631:657 -> a
+    1291:1317:boolean lambda$applyConcatenationResults$1(java.util.Set,com.android.tools.r8.ir.code.Instruction):581 -> a
+    1318:1363:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):669:714 -> a
+    1364:1367:int estimateSizeReduction(java.util.List):721:724 -> a
+    1364:1367:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):715 -> a
+    1368:1368:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):716:716 -> a
+    1369:1375:void removeTrivialBuilders():731:737 -> a
+    1376:2348:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():0:972 -> a
+    1376:2348:void removeTrivialBuilders():737 -> a
+    2349:2361:void removeTrivialBuilders():738:750 -> a
+    2362:3334:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():0:972 -> a
+    2362:3334:void removeTrivialBuilders():750 -> a
+    3335:3364:void removeTrivialBuilders():751:780 -> a
+    3365:4337:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():0:972 -> a
+    3365:4337:void removeTrivialBuilders():780 -> a
+    4338:4347:void removeTrivialBuilders():781:790 -> a
+    1:1:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis access$200(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis,java.util.Set):191:191 -> b
+    2:40:java.lang.Number extractConstantNumber(com.android.tools.r8.ir.code.Value):472:510 -> b
+    1:1:java.util.Map getBuilderState(com.android.tools.r8.ir.code.Value):317:317 -> c
+    1:1:java.util.Map lambda$createBuilderState$0(com.android.tools.r8.ir.code.Value):312:312 -> d
+com.android.tools.r8.ir.optimize.string.StringOptimizer -> com.android.tools.r8.ir.optimize.string.d:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap numberOfComputedNames -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap numberOfDeferredComputationOfNames -> f
+    int numberOfSimplifiedConversions -> i
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfNames -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfDeferredNames -> h
+    int numberOfSimplifiedOperations -> d
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> c
+    1:1:void <clinit>():47:47 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):60:60 -> <init>
+    2:22:void <init>(com.android.tools.r8.graph.AppView):53:73 -> <init>
+    1:3:void logResult():78:80 -> a
+    4:7:void logResult():79:82 -> a
+    8:34:void logResult():81:107 -> a
+    35:37:void lambda$logResult$0(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):86:86 -> a
+    38:40:void lambda$logResult$2(java.lang.Integer,java.lang.Integer):100:100 -> a
+    41:44:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):133:136 -> a
+    45:45:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    45:45:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):137 -> a
+    46:95:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):138:187 -> a
+    96:101:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):185:190 -> a
+    102:102:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    102:102:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):189 -> a
+    103:117:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):191:205 -> a
+    118:122:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):203:207 -> a
+    123:123:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    123:123:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):207 -> a
+    124:183:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):208:267 -> a
+    184:184:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    184:184:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):268 -> a
+    185:192:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):270:277 -> a
+    193:193:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    193:193:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):278 -> a
+    194:202:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):280:288 -> a
+    203:203:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1066:1066 -> a
+    203:203:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):289 -> a
+    204:204:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):292:292 -> a
+    205:205:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    205:205:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):293 -> a
+    206:207:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):296:297 -> a
+    208:208:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    208:208:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):297 -> a
+    209:209:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):297:297 -> a
+    210:213:java.lang.Integer lambda$computeTrivialOperationsOnConstString$4(com.android.tools.r8.graph.DexString):218:221 -> a
+    214:214:java.lang.Integer lambda$computeTrivialOperationsOnConstString$10(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):235:235 -> a
+    215:215:java.lang.Integer lambda$computeTrivialOperationsOnConstString$13(com.android.tools.r8.graph.DexString,java.lang.Integer):241:241 -> a
+    216:219:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):304:307 -> a
+    220:220:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> a
+    220:220:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):308 -> a
+    221:262:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):309:350 -> a
+    263:263:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    263:263:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):353 -> a
+    264:321:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):358:415 -> a
+    322:323:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):396:397 -> a
+    324:324:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    324:324:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):398 -> a
+    325:354:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):418:447 -> a
+    355:358:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):445:448 -> a
+    359:359:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    359:359:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):449 -> a
+    360:366:void logHistogramOfNames(com.android.tools.r8.graph.DexString):475:481 -> a
+    360:366:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):450 -> a
+    367:367:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):452:452 -> a
+    368:368:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    368:368:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):453 -> a
+    369:377:void logHistogramOfNames(com.android.tools.r8.ir.code.DexItemBasedConstString):496:504 -> a
+    369:377:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):454 -> a
+    378:379:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):459:460 -> a
+    380:380:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> a
+    380:380:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):460 -> a
+    381:381:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):460:460 -> a
+    382:387:void logDeferredNameComputation(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):486:491 -> a
+    1:3:void lambda$logResult$1(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):93:93 -> b
+    4:6:void lambda$logResult$3(java.lang.Integer,java.lang.Integer):108:108 -> b
+    7:7:java.lang.Integer lambda$computeTrivialOperationsOnConstString$5(com.android.tools.r8.graph.DexString):225:225 -> b
+    8:8:java.lang.Integer lambda$computeTrivialOperationsOnConstString$11(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):237:237 -> b
+    9:9:java.lang.Integer lambda$computeTrivialOperationsOnConstString$15(com.android.tools.r8.graph.DexString,java.lang.Integer):245:245 -> b
+    10:15:void logNameComputation(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):465:470 -> b
+    16:16:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):512:512 -> b
+    17:17:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():972:972 -> b
+    17:17:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):513 -> b
+    18:38:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):514:534 -> b
+    39:43:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):532:536 -> b
+    44:44:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> b
+    44:44:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):537 -> b
+    45:82:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):538:575 -> b
+    83:83:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):42:42 -> b
+    83:83:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):575 -> b
+    84:84:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):575:575 -> b
+    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$6(com.android.tools.r8.graph.DexString):227:227 -> c
+    2:2:java.lang.Integer lambda$computeTrivialOperationsOnConstString$12(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):239:239 -> c
+    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$14(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):243:243 -> d
+    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$16(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):247:247 -> e
+    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$17(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):249:249 -> f
+    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$18(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):251:251 -> g
+    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$7(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):229:229 -> h
+    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$8(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):231:231 -> i
+    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$9(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):233:233 -> j
+com.android.tools.r8.ir.optimize.string.StringOptimizer$StringOptimizerEscapeAnalysisConfiguration -> com.android.tools.r8.ir.optimize.string.c:
+    com.android.tools.r8.ir.optimize.string.StringOptimizer$StringOptimizerEscapeAnalysisConfiguration INSTANCE -> a
+    1:1:void <clinit>():582:582 -> <clinit>
+    1:1:void <init>():585:585 -> <init>
+    1:1:com.android.tools.r8.ir.optimize.string.StringOptimizer$StringOptimizerEscapeAnalysisConfiguration getInstance():588:588 -> a
+    1:21:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):597:617 -> isLegitimateEscapeRoute
+com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator -> com.android.tools.r8.ir.regalloc.a:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.List moveExceptionIntervals -> o
+    int maxRegisterNumber -> i
+    com.android.tools.r8.ir.code.IRCode code -> b
+    java.util.PriorityQueue unhandled -> m
+    boolean $assertionsDisabled -> r
+    int numberOfArgumentRegisters -> c
+    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode mode -> g
+    java.util.Map liveAtEntrySets -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList expiredHere -> n
+    com.android.tools.r8.ir.code.Value lastArgumentValue -> f
+    java.util.TreeSet freeRegisters -> h
+    com.android.tools.r8.ir.code.Value firstArgumentValue -> e
+    java.util.List liveIntervals -> j
+    int[] unusedRegisters -> q
+    java.util.List inactive -> l
+    int firstParallelMoveTemporary -> p
+    java.util.List active -> k
+    1:1:void <clinit>():87:87 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):189:189 -> <init>
+    2:57:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):143:198 -> <init>
+    void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List) -> a
+    boolean longHalfOverlappingLong(int,int) -> a
+    1:19:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):249:267 -> a
+    20:91:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):265:336 -> a
+    92:92:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> a
+    92:92:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):336 -> a
+    93:95:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):337:339 -> a
+    96:104:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):461:469 -> a
+    96:104:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
+    105:105:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> a
+    105:105:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):469 -> a
+    105:105:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
+    106:126:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):471:491 -> a
+    106:126:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
+    127:127:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    127:127:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):494 -> a
+    127:127:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
+    128:130:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):494:496 -> a
+    128:130:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
+    131:133:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):462:464 -> a
+    131:133:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
+    134:134:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
+    134:134:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):464 -> a
+    134:134:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
+    135:135:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):464:464 -> a
+    135:135:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
+    136:207:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):347:418 -> a
+    208:208:int lambda$computeDebugInfo$0(com.android.tools.r8.ir.regalloc.LiveRange):261:261 -> a
+    209:210:boolean lambda$computeDebugInfo$2(java.util.Set,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):319:320 -> a
+    211:211:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):425:425 -> a
+    212:213:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,int,int,com.android.tools.r8.ir.code.Value):430:431 -> a
+    212:213:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):425 -> a
+    214:215:boolean usesValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):436:437 -> a
+    214:215:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,int,int,com.android.tools.r8.ir.code.Value):432 -> a
+    214:215:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):425 -> a
+    216:222:boolean valuesContain(com.android.tools.r8.ir.code.Value,java.util.Collection):441:447 -> a
+    223:246:com.android.tools.r8.ir.code.DebugLocalsChange createLocalsChange(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.code.Position):504:527 -> a
+    247:266:com.android.tools.r8.ir.code.DebugLocalsChange createLocalsChange(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.code.Position):510:529 -> a
+    267:271:void addRegisterIfUsed(java.util.Set,com.android.tools.r8.ir.regalloc.LiveIntervals):576:580 -> a
+    272:284:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):600:612 -> a
+    285:286:int getRegisterForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):797:798 -> a
+    285:286:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):614 -> a
+    287:289:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):605:607 -> a
+    290:290:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    290:290:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
+    290:290:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):607 -> a
+    291:291:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):607:607 -> a
+    292:292:com.android.tools.r8.utils.InternalOptions options():627:627 -> a
+    293:293:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):645:645 -> a
+    294:305:void clearRegisterAssignments(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):778:789 -> a
+    294:305:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):648 -> a
+    306:306:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):649:649 -> a
+    307:315:void pinArgumentRegisters():2945:2953 -> a
+    307:315:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):652 -> a
+    316:316:void pinArgumentRegisters():2950:2950 -> a
+    316:316:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):652 -> a
+    317:378:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):826:887 -> a
+    317:378:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    379:379:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    379:379:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):888 -> a
+    379:379:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    380:401:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):893:914 -> a
+    380:401:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    402:408:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1054:1060 -> a
+    402:408:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
+    402:408:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    409:409:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    409:409:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1060 -> a
+    409:409:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
+    409:409:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    410:411:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1061:1062 -> a
+    410:411:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
+    410:411:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    412:418:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1073:1079 -> a
+    412:418:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
+    412:418:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    419:419:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    419:419:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1079 -> a
+    419:419:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
+    419:419:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    420:425:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1080:1085 -> a
+    420:425:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
+    420:425:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    426:426:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    426:426:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1085 -> a
+    426:426:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
+    426:426:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    427:427:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1086:1086 -> a
+    427:427:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
+    427:427:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    428:493:void allocateArgumentIntervalsWithSrc(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1101:1166 -> a
+    428:493:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):922 -> a
+    428:493:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    494:543:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):923:972 -> a
+    494:543:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    544:556:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1608:1620 -> a
+    544:556:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    544:556:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    557:559:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
+    557:559:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1621 -> a
+    557:559:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    557:559:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    560:616:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1626:1682 -> a
+    560:616:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    560:616:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    617:617:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    617:617:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1683 -> a
+    617:617:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    617:617:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    618:622:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1684:1688 -> a
+    618:622:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    618:622:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    623:623:int toInstructionPosition(int):1390:1390 -> a
+    623:623:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1688 -> a
+    623:623:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    623:623:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    624:635:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1693:1704 -> a
+    624:635:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    624:635:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    636:644:boolean freePositionsAreConsistentWithFreeRegisters(com.android.tools.r8.ir.regalloc.RegisterPositions,int):1027:1035 -> a
+    636:644:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1704 -> a
+    636:644:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    636:644:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    645:673:boolean useRegisterHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean):1783:1811 -> a
+    645:673:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1707 -> a
+    645:673:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    645:673:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    674:702:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1713:1741 -> a
+    674:702:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    674:702:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    703:705:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
+    703:705:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1742 -> a
+    703:705:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    703:705:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    706:706:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1743:1743 -> a
+    706:706:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    706:706:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    707:725:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1981:1999 -> a
+    707:725:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    707:725:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    707:725:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    726:735:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1998:2007 -> a
+    726:735:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    726:735:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    726:735:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    736:736:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    736:736:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2008 -> a
+    736:736:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    736:736:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    736:736:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    737:809:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2009:2081 -> a
+    737:809:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    737:809:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    737:809:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    810:817:int getNewSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1255:1262 -> a
+    810:817:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2083 -> a
+    810:817:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    810:817:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    810:817:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    818:818:void increaseCapacity(int):2959:2959 -> a
+    818:818:int getNewSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1262 -> a
+    818:818:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2083 -> a
+    818:818:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    818:818:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    818:818:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    819:821:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
+    819:821:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2084 -> a
+    819:821:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    819:821:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    819:821:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    822:828:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2085:2091 -> a
+    822:828:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    822:828:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    822:828:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    829:829:void increaseCapacity(int):2959:2959 -> a
+    829:829:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2092 -> a
+    829:829:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    829:829:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    829:829:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    830:830:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2095:2095 -> a
+    830:830:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    830:830:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    830:830:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    831:838:void assignRegisterAndSpill(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2119:2126 -> a
+    831:838:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2097 -> a
+    831:838:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    831:838:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    831:838:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    839:840:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2100:2101 -> a
+    839:840:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    839:840:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    839:840:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    841:848:void assignRegisterAndSpill(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2119:2126 -> a
+    841:848:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2102 -> a
+    841:848:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
+    841:848:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    841:848:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    849:850:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1750:1751 -> a
+    849:850:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    849:850:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    851:851:void increaseCapacity(int):2959:2959 -> a
+    851:851:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1752 -> a
+    851:851:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    851:851:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    852:852:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1755:1755 -> a
+    852:852:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    852:852:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    853:855:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
+    853:855:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1757 -> a
+    853:855:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    853:855:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    856:864:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1759:1767 -> a
+    856:864:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    856:864:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    865:867:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
+    865:867:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1768 -> a
+    865:867:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    865:867:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    868:868:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1769:1769 -> a
+    868:868:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
+    868:868:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
+    869:914:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):656:701 -> a
+    915:929:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):674:688 -> a
+    930:937:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):662:669 -> a
+    938:978:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):666:706 -> a
+    979:982:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):705:708 -> a
+    983:983:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):707:707 -> a
+    984:991:boolean isSpillInstruction(com.android.tools.r8.ir.code.Instruction):764:771 -> a
+    992:996:int realRegisterNumberFromAllocated(int):816:820 -> a
+    997:1035:boolean invariantsHold(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):983:1021 -> a
+    1036:1037:void lambda$invariantsHold$3(java.util.TreeSet,int):991:992 -> a
+    1038:1044:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1175:1181 -> a
+    1045:1045:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    1045:1045:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1182 -> a
+    1046:1046:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1183:1183 -> a
+    1047:1057:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1180:1190 -> a
+    1058:1061:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1238:1241 -> a
+    1058:1061:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
+    1062:1062:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    1062:1062:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1245 -> a
+    1062:1062:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
+    1063:1063:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1244:1244 -> a
+    1063:1063:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
+    1064:1064:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1194:1194 -> a
+    1065:1078:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1192:1205 -> a
+    1079:1079:int getFreeConsecutiveRegisters(int):2972:2972 -> a
+    1079:1079:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1206 -> a
+    1080:1081:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1208:1209 -> a
+    1082:1087:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1043:1048 -> a
+    1082:1087:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
+    1088:1088:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1047:1047 -> a
+    1088:1088:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
+    1089:1089:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1046:1046 -> a
+    1089:1089:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
+    1090:1103:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1211:1224 -> a
+    1104:1128:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1207:1231 -> a
+    1129:1148:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1267:1286 -> a
+    1149:1156:boolean registersAreFreeAndConsecutive(int,boolean):3028:3035 -> a
+    1149:1156:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1286 -> a
+    1157:1182:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1287:1312 -> a
+    1183:1213:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1328:1358 -> a
+    1214:1214:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    1214:1214:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1359 -> a
+    1215:1231:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1366:1382 -> a
+    1232:1238:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1831:1837 -> a
+    1239:1251:boolean isLongResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1538:1550 -> a
+    1239:1251:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1838 -> a
+    1252:1252:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1842:1842 -> a
+    1253:1257:boolean isArrayGetArrayRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1432:1436 -> a
+    1253:1257:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1843 -> a
+    1258:1260:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
+    1258:1260:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1846 -> a
+    1261:1262:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1854:1855 -> a
+    1263:1293:void updateRegisterHints(com.android.tools.r8.ir.regalloc.LiveIntervals):1860:1890 -> a
+    1263:1293:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1856 -> a
+    1294:1306:int getLargestCandidate(int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1911:1923 -> a
+    1307:1312:int handleWorkaround(java.util.function.Predicate,java.util.function.BiPredicate,int,com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1941:1946 -> a
+    1313:1325:int getLargestValidCandidate(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1961:1973 -> a
+    1326:1328:int getLargestPosition(com.android.tools.r8.ir.regalloc.RegisterPositions,int,boolean):2109:2111 -> a
+    1329:1330:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2168:2169 -> a
+    1331:1331:boolean atLeastOneOfRegistersAreTaken(int,boolean):3125:3125 -> a
+    1331:1331:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2169 -> a
+    1332:1378:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2169:2215 -> a
+    1379:1401:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2283:2305 -> a
+    1379:1401:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2218 -> a
+    1402:1402:int toGapPosition(int):1394:1394 -> a
+    1402:1402:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2305 -> a
+    1402:1402:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2218 -> a
+    1403:1416:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2305:2318 -> a
+    1403:1416:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2218 -> a
+    1417:1417:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2219:2219 -> a
+    1418:1425:void splitRangesForSpilledArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):2232:2239 -> a
+    1418:1425:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2220 -> a
+    1426:1453:void splitRangesForSpilledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2246:2273 -> a
+    1426:1453:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2222 -> a
+    1454:1455:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2227:2228 -> a
+    1456:1458:void blockLinkedRegisters(java.util.List,com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions):2327:2329 -> a
+    1459:1459:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    1459:1459:void blockLinkedRegisters(java.util.List,com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions):2330 -> a
+    1460:1467:void blockLinkedRegisters(java.util.List,com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions):2331:2338 -> a
+    1468:1503:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2446:2481 -> a
+    1504:1504:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    1504:1504:boolean unconstrainedForCf(int,com.android.tools.r8.utils.InternalOptions):2653 -> a
+    1504:1504:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2481 -> a
+    1505:1511:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2481:2487 -> a
+    1512:1563:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2520:2571 -> a
+    1564:1570:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2568:2574 -> a
+    1571:1571:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    1571:1571:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2574 -> a
+    1572:1579:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2574:2581 -> a
+    1580:1580:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    1580:1580:boolean unconstrainedForCf(int,com.android.tools.r8.utils.InternalOptions):2653 -> a
+    1580:1580:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2581 -> a
+    1581:1618:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2581:2618 -> a
+    1619:1620:int getLiveRangeEndOnExceptionalFlow(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):2645:2646 -> a
+    1619:1620:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2622 -> a
+    1621:1638:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2619:2636 -> a
+    1639:1661:boolean implementationIsBridge(com.android.tools.r8.ir.code.IRCode):2722:2744 -> a
+    1662:1662:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2766:2766 -> a
+    1663:1667:boolean argumentsAreAlreadyLinked(com.android.tools.r8.ir.code.Invoke):2871:2875 -> a
+    1663:1667:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2766 -> a
+    1668:1701:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2767:2800 -> a
+    1702:1703:boolean com.android.tools.r8.ir.code.Value.hasRegisterConstraint():793:794 -> a
+    1702:1703:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2802 -> a
+    1704:1704:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2803:2803 -> a
+    1705:1706:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):2751:2752 -> a
+    1705:1706:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2803 -> a
+    1707:1708:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2804:2805 -> a
+    1709:1712:void replaceArgument(com.android.tools.r8.ir.code.Invoke,int,com.android.tools.r8.ir.code.Value):2757:2760 -> a
+    1709:1712:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2806 -> a
+    1713:1737:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2808:2832 -> a
+    1738:1764:void generateArgumentMovesAtDefinitions(com.android.tools.r8.ir.code.Invoke,java.util.PriorityQueue,com.android.tools.r8.ir.code.InstructionListIterator):2840:2866 -> a
+    1738:1764:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2833 -> a
+    1765:1765:int lambda$generateArgumentMoves$5(com.android.tools.r8.ir.code.Move,com.android.tools.r8.ir.code.Move):2774:2774 -> a
+    1766:1810:int getFreeConsecutiveRegisters(int,boolean):2976:3020 -> a
+    1811:1822:int lambda$getFreeConsecutiveRegisters$6(java.lang.Integer,java.lang.Integer):2982:2993 -> a
+    1823:1826:int getNextFreeRegister(java.util.Iterator):3044:3047 -> a
+    1827:1839:void excludeRegistersForInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet):3051:3063 -> a
+    1840:1851:void freeOccupiedRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3069:3080 -> a
+    1852:1852:boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):3175:3175 -> a
+    void mergeBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> b
+    1:1:void allocateRegisters():207:207 -> b
+    2:11:boolean noLinkedValues():3129:3138 -> b
+    2:11:void allocateRegisters():207 -> b
+    12:12:boolean noLinkedValues():3137:3137 -> b
+    12:12:void allocateRegisters():207 -> b
+    13:14:void allocateRegisters():208:209 -> b
+    15:63:void transformBridgeMethod():2666:2714 -> b
+    15:63:void allocateRegisters():210 -> b
+    64:67:void computeNeedsRegister():2934:2937 -> b
+    64:67:void allocateRegisters():212 -> b
+    68:68:void constrainArgumentIntervals():2911:2911 -> b
+    68:68:void allocateRegisters():213 -> b
+    69:75:void createArgumentLiveIntervals(java.util.List):2885:2891 -> b
+    69:75:void constrainArgumentIntervals():2912 -> b
+    69:75:void allocateRegisters():213 -> b
+    76:84:void linkArgumentValuesAndIntervals(java.util.List):2897:2905 -> b
+    76:84:void constrainArgumentIntervals():2913 -> b
+    76:84:void allocateRegisters():213 -> b
+    85:95:void insertRangeInvokeMoves():2917:2927 -> b
+    85:95:void allocateRegisters():214 -> b
+    96:97:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():631:632 -> b
+    96:97:void allocateRegisters():215 -> b
+    98:103:void computeLiveRanges():2492:2497 -> b
+    98:103:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
+    98:103:void allocateRegisters():215 -> b
+    104:104:boolean com.android.tools.r8.utils.InternalOptions.canHaveThisTypeVerifierBug():1249:1249 -> b
+    104:104:void computeLiveRanges():2497 -> b
+    104:104:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
+    104:104:void allocateRegisters():215 -> b
+    105:105:void computeLiveRanges():2497:2497 -> b
+    105:105:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
+    105:105:void allocateRegisters():215 -> b
+    106:106:boolean com.android.tools.r8.utils.InternalOptions.canHaveThisJitCodeDebuggingBug():1258:1258 -> b
+    106:106:void computeLiveRanges():2497 -> b
+    106:106:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
+    106:106:void allocateRegisters():215 -> b
+    107:116:void computeLiveRanges():2497:2506 -> b
+    107:116:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
+    107:116:void allocateRegisters():215 -> b
+    117:117:void performAllocation():640:640 -> b
+    117:117:void allocateRegisters():216 -> b
+    118:130:void allocateRegisters():217:229 -> b
+    131:1103:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():0:972 -> b
+    131:1103:void allocateRegisters():229 -> b
+    1104:1112:void allocateRegisters():230:238 -> b
+    1113:1118:void clearState():534:539 -> b
+    1113:1118:void allocateRegisters():239 -> b
+    1119:1119:boolean lambda$computeDebugInfo$1(com.android.tools.r8.ir.code.Instruction):309:309 -> b
+    1120:1121:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):619:620 -> b
+    1122:1123:int getRegisterForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):797:798 -> b
+    1122:1123:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):620 -> b
+    1124:1124:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):622:622 -> b
+    1125:1126:void lambda$invariantsHold$4(java.util.TreeSet,int):1008:1009 -> b
+    1127:1144:boolean needsArrayGetWideWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1409:1426 -> b
+    1145:1149:boolean isArrayGetArrayRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1432:1436 -> b
+    1150:1154:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2131:2135 -> b
+    1155:1155:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> b
+    1155:1155:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2136 -> b
+    1156:1182:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2137:2163 -> b
+    1183:1187:void increaseCapacity(int,boolean):2964:2968 -> b
+    1188:1189:boolean registerIsFree(int):3105:3106 -> b
+    1:3:int registersUsed():591:593 -> c
+    4:9:int unadjustedRealRegisterFromAllocated(int):802:807 -> c
+    10:10:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1502:1502 -> c
+    11:11:boolean com.android.tools.r8.utils.InternalOptions.canHaveOverlappingLongRegisterBug():1264:1264 -> c
+    11:11:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1502 -> c
+    12:32:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1505:1525 -> c
+    33:45:boolean isLongResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1538:1550 -> c
+    46:46:boolean registersAreFree(int,boolean):3112:3112 -> c
+    1:1:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
+    2:2:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1297:1297 -> d
+    2:2:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
+    3:3:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
+    4:4:boolean com.android.tools.r8.utils.InternalOptions.canHaveLongToIntBug():1471:1471 -> d
+    4:4:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
+    5:23:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1444:1462 -> d
+    24:24:boolean com.android.tools.r8.ir.code.NumberConversion.isLongToIntConversion():52:52 -> d
+    24:24:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1462 -> d
+    25:25:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472:1472 -> d
+    26:26:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
+    26:26:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
+    27:27:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1297:1297 -> d
+    27:27:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
+    27:27:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
+    28:28:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
+    28:28:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
+    29:29:boolean com.android.tools.r8.utils.InternalOptions.canHaveLongToIntBug():1471:1471 -> d
+    29:29:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
+    29:29:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
+    30:48:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1444:1462 -> d
+    30:48:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
+    49:49:boolean com.android.tools.r8.ir.code.NumberConversion.isLongToIntConversion():52:52 -> d
+    49:49:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1462 -> d
+    49:49:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
+    50:65:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472:1487 -> d
+    66:66:void clearUserInfo():2657:2657 -> d
+    1:26:boolean computeUnusedRegisters():546:571 -> e
+    27:37:boolean overlapsMoveExceptionInterval(com.android.tools.r8.ir.regalloc.LiveIntervals):1590:1600 -> e
+    1:2:int getMoveExceptionRegister():185:186 -> f
+    3:4:boolean registersForIntervalsAreTaken(com.android.tools.r8.ir.regalloc.LiveIntervals):3120:3121 -> f
+    5:5:boolean registersAreTaken(int,boolean):3116:3116 -> f
+    5:5:boolean registersForIntervalsAreTaken(com.android.tools.r8.ir.regalloc.LiveIntervals):3121 -> f
+    1:1:boolean hasDedicatedMoveExceptionRegister():177:177 -> g
+    2:2:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3094:3094 -> g
+    3:6:void takeFreeRegisters(int,boolean):3086:3089 -> g
+    3:6:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3094 -> g
+    7:10:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3096:3099 -> g
+    1:1:int highestUsedRegister():586:586 -> h
+    1:2:void computeRematerializableBits():2372:2373 -> i
+    1:2:void insertMoves():2348 -> i
+    3:12:void insertMoves():2350:2359 -> i
+    13:13:int toGapPosition(int):1394:1394 -> i
+    13:13:void insertMoves():2360 -> i
+    14:14:void insertMoves():2360:2360 -> i
+    15:15:void insertMoves():2358:2358 -> i
+    16:58:void resolveControlFlow(com.android.tools.r8.ir.regalloc.SpillMoveSet):2391:2433 -> i
+    16:58:void insertMoves():2366 -> i
+    59:60:void insertMoves():2367:2368 -> i
+    1:6:void removeSpillAndPhiMoves():752:757 -> j
+    1:28:boolean unsplitArguments():719:746 -> k
+    1:20:java.lang.String toString():3146:3165 -> toString
+com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode -> com.android.tools.r8.ir.regalloc.a$a:
+    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U8BIT -> b
+    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U16BIT -> c
+    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U4BIT -> a
+    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode[] $VALUES -> d
+    1:3:void <clinit>():94:96 -> <clinit>
+    4:4:void <clinit>():93:93 -> <clinit>
+    1:1:void <init>(java.lang.String,int):93:93 -> <init>
+com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange -> com.android.tools.r8.ir.regalloc.a$b:
+    com.android.tools.r8.graph.DebugLocalInfo local -> b
+    boolean $assertionsDisabled -> f
+    int start -> d
+    com.android.tools.r8.ir.code.Value value -> a
+    int end -> e
+    int register -> c
+    1:1:void <clinit>():99:99 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.ir.code.Value,int,int,int):106:112 -> <init>
+    1:3:int compareTo(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):117:119 -> a
+    1:1:int compareTo(java.lang.Object):99:99 -> compareTo
+    2:4:int compareTo(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):117:119 -> compareTo
+    2:4:int compareTo(java.lang.Object):99 -> compareTo
+    1:1:java.lang.String toString():124:124 -> toString
+com.android.tools.r8.ir.regalloc.LiveIntervals -> com.android.tools.r8.ir.regalloc.b:
+    boolean spilled -> m
+    boolean usedInMonitorOperations -> n
+    int registerLimit -> o
+    int numberOfConsecutiveRegisters -> j
+    int register -> k
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList sortedSplitChildrenEnds -> f
+    com.android.tools.r8.ir.regalloc.LiveIntervals nextConsecutive -> b
+    com.android.tools.r8.ir.regalloc.LiveIntervals previousConsecutive -> c
+    com.android.tools.r8.ir.regalloc.LiveIntervals splitParent -> d
+    boolean isRematerializable -> q
+    boolean $assertionsDisabled -> r
+    java.util.TreeSet uses -> i
+    java.util.List splitChildren -> e
+    java.lang.Integer hint -> l
+    boolean sortedChildren -> g
+    java.util.List ranges -> h
+    com.android.tools.r8.ir.code.Value value -> a
+    int maxNonSpilledRegister -> p
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.Value):53:53 -> <init>
+    2:26:void <init>(com.android.tools.r8.ir.code.Value):33:57 -> <init>
+    27:27:void <init>(com.android.tools.r8.ir.regalloc.LiveIntervals):60:60 -> <init>
+    28:58:void <init>(com.android.tools.r8.ir.regalloc.LiveIntervals):33:63 -> <init>
+    1:3:void recomputeLimit():479:481 -> A
+    4:4:void updateRegisterConstraint(int):254:254 -> A
+    4:4:void recomputeLimit():481 -> A
+    1:1:com.android.tools.r8.ir.code.ValueType getType():79:79 -> B
+    1:1:int requiredRegisters():83 -> B
+    2:2:int requiredRegisters():83:83 -> B
+    1:7:void sortSplitChildrenIfNeeded():188:194 -> C
+    8:10:boolean sortedChildrenConsistent():200:202 -> C
+    8:10:void sortSplitChildrenIfNeeded():194 -> C
+    11:11:void sortSplitChildrenIfNeeded():195:195 -> C
+    1:1:java.lang.String toAscciArtString():585:585 -> D
+    2:2:java.util.List getRanges():262:262 -> D
+    2:2:java.lang.String toAscciArtString():587 -> D
+    3:3:java.lang.String toAscciArtString():587:587 -> D
+    4:36:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():0:32 -> D
+    4:36:java.lang.String toAscciArtString():588 -> D
+    37:47:java.lang.String toAscciArtString():589:599 -> D
+    1:14:void undoSplits():462:475 -> E
+    1:1:boolean usedInMonitorOperation():528:528 -> F
+    1:1:void setSpilled(boolean):105:105 -> a
+    2:2:int getRegister():276:276 -> a
+    2:2:void setSpilled(boolean):105 -> a
+    3:4:void setSpilled(boolean):105:106 -> a
+    5:5:int getRegister():276:276 -> a
+    5:5:void setSpilled(boolean):106 -> a
+    6:6:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():212:212 -> a
+    6:6:void setSpilled(boolean):106 -> a
+    7:7:int getRegister():276:276 -> a
+    7:7:void setSpilled(boolean):106 -> a
+    8:9:void setSpilled(boolean):106:107 -> a
+    10:10:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():212:212 -> a
+    10:10:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):354 -> a
+    11:11:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    11:11:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):355 -> a
+    12:12:java.util.List getSplitChildren():208:208 -> a
+    12:12:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):358 -> a
+    13:13:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):358:358 -> a
+    14:14:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    14:14:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):359 -> a
+    15:16:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):226:227 -> a
+    15:16:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):221 -> a
+    17:49:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():0:32 -> a
+    17:49:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):228 -> a
+    17:49:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):221 -> a
+    50:60:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):231:241 -> a
+    50:60:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):221 -> a
+    61:61:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):222:222 -> a
+    62:63:void addUse(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):249:250 -> a
+    64:64:void updateRegisterConstraint(int):254:254 -> a
+    64:64:void addUse(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):250 -> a
+    65:65:boolean usesRegister(int,boolean):315:315 -> a
+    66:66:com.android.tools.r8.ir.code.ValueType getType():79:79 -> a
+    66:66:boolean usesRegister(int,boolean):318 -> a
+    67:70:boolean usesRegister(int,boolean):318:321 -> a
+    71:72:void clearRegisterAssignment():332:333 -> a
+    73:73:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
+    73:73:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.PriorityQueue):88 -> a
+    74:74:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.PriorityQueue):91:91 -> a
+    75:75:int getRegister():276:276 -> a
+    75:75:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.PriorityQueue):92 -> a
+    76:78:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.PriorityQueue):92:94 -> a
+    79:80:void forEachRegister(java.util.function.IntConsumer):406:407 -> a
+    81:81:com.android.tools.r8.ir.code.ValueType getType():79:79 -> a
+    81:81:void forEachRegister(java.util.function.IntConsumer):408 -> a
+    82:83:void forEachRegister(java.util.function.IntConsumer):408:409 -> a
+    84:103:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):622:641 -> a
+    104:104:int getRegister():276:276 -> a
+    104:104:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):641 -> a
+    105:111:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):641:647 -> a
+    112:112:boolean isSpilled():111:111 -> a
+    112:112:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):647 -> a
+    113:114:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):662:663 -> a
+    115:115:boolean isSpilled():111:111 -> a
+    115:115:boolean allSplitsAreSpilled():120 -> a
+    115:115:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):663 -> a
+    116:118:boolean allSplitsAreSpilled():120:122 -> a
+    116:118:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):663 -> a
+    119:119:boolean isSpilled():111:111 -> a
+    119:119:boolean allSplitsAreSpilled():122 -> a
+    119:119:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):663 -> a
+    120:120:boolean allSplitsAreSpilled():122:122 -> a
+    120:120:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):663 -> a
+    121:125:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):664:668 -> a
+    1:1:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):328:328 -> b
+    2:2:com.android.tools.r8.ir.code.ValueType getType():79:79 -> b
+    2:2:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):328 -> b
+    3:3:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):328:328 -> b
+    4:6:int firstUseAfter(int):384:386 -> b
+    7:8:com.android.tools.r8.ir.regalloc.LiveIntervalsUse firstUseWithConstraint():397:398 -> b
+    1:3:void link(com.android.tools.r8.ir.regalloc.LiveIntervals):132:134 -> c
+    4:5:int getEnd():271:272 -> c
+    1:1:int compareTo(java.lang.Object):24:24 -> compareTo
+    2:16:int compareTo(com.android.tools.r8.ir.regalloc.LiveIntervals):551:565 -> compareTo
+    2:16:int compareTo(java.lang.Object):24 -> compareTo
+    1:10:int nextOverlap(com.android.tools.r8.ir.regalloc.LiveIntervals):367:376 -> d
+    11:11:int getFirstUse():393:393 -> d
+    12:12:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):486:486 -> d
+    13:13:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():212:212 -> d
+    13:13:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):486 -> d
+    14:47:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):486:519 -> d
+    1:1:java.lang.Integer getHint():100:100 -> e
+    2:7:boolean overlapsPosition(int):337:342 -> e
+    1:1:int getMaxNonSpilledRegister():308:308 -> f
+    2:3:int computeMaxNonSpilledRegister():289:290 -> f
+    2:3:int getMaxNonSpilledRegister():311 -> f
+    4:4:boolean isSpilled():111:111 -> f
+    4:4:int computeMaxNonSpilledRegister():291 -> f
+    4:4:int getMaxNonSpilledRegister():311 -> f
+    5:5:int getRegister():276:276 -> f
+    5:5:int computeMaxNonSpilledRegister():292 -> f
+    5:5:int getMaxNonSpilledRegister():311 -> f
+    6:8:int computeMaxNonSpilledRegister():292:294 -> f
+    6:8:int getMaxNonSpilledRegister():311 -> f
+    9:9:boolean isSpilled():111:111 -> f
+    9:9:int computeMaxNonSpilledRegister():295 -> f
+    9:9:int getMaxNonSpilledRegister():311 -> f
+    10:10:int computeMaxNonSpilledRegister():296:296 -> f
+    10:10:int getMaxNonSpilledRegister():311 -> f
+    11:11:int getRegister():276:276 -> f
+    11:11:int computeMaxNonSpilledRegister():296 -> f
+    11:11:int getMaxNonSpilledRegister():311 -> f
+    12:15:int computeMaxNonSpilledRegister():296:299 -> f
+    12:15:int getMaxNonSpilledRegister():311 -> f
+    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getNextConsecutive():155:155 -> g
+    1:1:java.util.List getRanges():262:262 -> h
+    1:1:int getRegister():276:276 -> i
+    2:3:void setMaxNonSpilledRegister(int):303:304 -> i
+    1:1:int getRegisterLimit():280:280 -> j
+    2:3:void setRegister(int):284:285 -> j
+    1:1:java.util.List getSplitChildren():208:208 -> k
+    2:4:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):414:416 -> k
+    5:5:int toGapPosition(int):71:71 -> k
+    5:5:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):419 -> k
+    6:43:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):420:457 -> k
+    1:1:int toInstructionPosition(int):67:67 -> l
+    2:2:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():212:212 -> l
+    1:2:int getStart():266:267 -> m
+    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getStartOfConsecutive():148:148 -> n
+    1:1:com.android.tools.r8.ir.code.ValueType getType():79:79 -> o
+    1:1:java.util.TreeSet getUses():258:258 -> p
+    1:1:com.android.tools.r8.ir.code.Value getValue():75:75 -> q
+    1:1:boolean hasSplits():184:184 -> r
+    1:2:boolean isArgumentInterval():142:143 -> s
+    1:1:boolean isConstantNumberInterval():524:524 -> t
+    1:5:java.lang.String toString():571:575 -> toString
+    6:6:java.util.List getRanges():262:262 -> toString
+    6:6:java.lang.String toString():576 -> toString
+    7:12:java.lang.String toString():576:581 -> toString
+    1:1:boolean isLinked():138:138 -> u
+    1:3:boolean isNewStringInstanceDisallowingSpilling():533:535 -> v
+    1:1:boolean isSpilled():111:111 -> w
+    1:1:boolean isSpilled():111:111 -> x
+    1:1:boolean isSpilledAndRematerializable():128 -> x
+    2:2:boolean isSpilledAndRematerializable():128:128 -> x
+    3:4:boolean isRematerializable():115:116 -> x
+    3:4:boolean isSpilledAndRematerializable():128 -> x
+    1:3:int numberOfConsecutiveRegisters():163:165 -> y
+    4:9:int computeNumberOfConsecutiveRegisters():172:177 -> y
+    4:9:int numberOfConsecutiveRegisters():165 -> y
+    10:13:int computeNumberOfConsecutiveRegisters():176:179 -> y
+    10:13:int numberOfConsecutiveRegisters():165 -> y
+    14:15:int numberOfConsecutiveRegisters():165:166 -> y
+    16:21:int computeNumberOfConsecutiveRegisters():172:177 -> y
+    16:21:int numberOfConsecutiveRegisters():168 -> y
+    22:25:int computeNumberOfConsecutiveRegisters():176:179 -> y
+    22:25:int numberOfConsecutiveRegisters():168 -> y
+    1:1:java.util.TreeSet getUses():258:258 -> z
+    1:1:int numberOfUsesWithConstraint():540 -> z
+    2:3:int numberOfUsesWithConstraint():540:541 -> z
+com.android.tools.r8.ir.regalloc.LiveIntervalsUse -> com.android.tools.r8.ir.regalloc.c:
+    int limit -> b
+    int position -> a
+    1:3:void <init>(int,int):12:14 -> <init>
+    1:1:int getLimit():22:22 -> a
+    1:1:int getPosition():18:18 -> b
+    1:1:boolean hasConstraint():48:48 -> c
+    1:1:int compareTo(java.lang.Object):8:8 -> compareTo
+    2:5:int compareTo(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):41:44 -> compareTo
+    2:5:int compareTo(java.lang.Object):8 -> compareTo
+    1:5:boolean equals(java.lang.Object):32:36 -> equals
+    1:1:int hashCode():27:27 -> hashCode
+com.android.tools.r8.ir.regalloc.LiveRange -> com.android.tools.r8.ir.regalloc.d:
+    com.android.tools.r8.ir.regalloc.LiveRange INFINITE -> c
+    int end -> b
+    int start -> a
+    1:1:void <clinit>():8:8 -> <clinit>
+    1:3:void <init>(int,int):13:15 -> <init>
+    1:1:int compareTo(java.lang.Object):6:6 -> compareTo
+    2:5:int compareTo(com.android.tools.r8.ir.regalloc.LiveRange):20:23 -> compareTo
+    2:5:int compareTo(java.lang.Object):6 -> compareTo
+    1:1:java.lang.String toString():28:28 -> toString
+com.android.tools.r8.ir.regalloc.RegisterAllocator -> com.android.tools.r8.ir.regalloc.e:
+    void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List) -> a
+    int getRegisterForValue(com.android.tools.r8.ir.code.Value,int) -> a
+    boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> a
+    com.android.tools.r8.utils.InternalOptions options() -> a
+    void allocateRegisters() -> b
+    int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int) -> b
+    void mergeBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> b
+    int registersUsed() -> c
+com.android.tools.r8.ir.regalloc.RegisterMove -> com.android.tools.r8.ir.regalloc.f:
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement type -> a
+    com.android.tools.r8.ir.code.Instruction definition -> d
+    boolean $assertionsDisabled -> e
+    int dst -> b
+    int src -> c
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:5:void <init>(int,int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):20:24 -> <init>
+    6:11:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.Instruction):27:32 -> <init>
+    1:10:boolean isBlocked(java.util.Set,java.util.Map):43:52 -> a
+    1:4:boolean writes(int):36:39 -> b
+    1:1:int compareTo(java.lang.Object):13:13 -> compareTo
+    2:28:int compareTo(com.android.tools.r8.ir.regalloc.RegisterMove):77:103 -> compareTo
+    2:28:int compareTo(java.lang.Object):13 -> compareTo
+    1:5:boolean equals(java.lang.Object):68:72 -> equals
+    1:1:int hashCode():63:63 -> hashCode
+com.android.tools.r8.ir.regalloc.RegisterMoveScheduler -> com.android.tools.r8.ir.regalloc.g:
+    java.util.Map valueMap -> b
+    int tempRegister -> f
+    boolean $assertionsDisabled -> g
+    java.util.Set moveSet -> a
+    com.android.tools.r8.ir.code.InstructionListIterator insertAt -> d
+    int usedTempRegisters -> c
+    com.android.tools.r8.ir.code.Position position -> e
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int,com.android.tools.r8.ir.code.Position):45:45 -> <init>
+    2:19:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int,com.android.tools.r8.ir.code.Position):31:48 -> <init>
+    20:20:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int):52:52 -> <init>
+    1:5:void addMove(com.android.tools.r8.ir.regalloc.RegisterMove):56:60 -> a
+    6:6:int getUsedTempRegisters():114:114 -> a
+    1:1:void schedule():64:64 -> b
+    2:5:boolean everyDestinationOnlyWrittenOnce():206:209 -> b
+    2:5:void schedule():64 -> b
+    6:23:void schedule():67:84 -> b
+    24:51:java.lang.Integer createMove(com.android.tools.r8.ir.regalloc.RegisterMove):138:165 -> b
+    24:51:void schedule():86 -> b
+    52:66:void schedule():89:103 -> b
+    67:76:com.android.tools.r8.ir.regalloc.RegisterMove pickMoveToUnblock():192:201 -> b
+    67:76:void schedule():106 -> b
+    77:77:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):172:172 -> b
+    77:77:void schedule():107 -> b
+    78:90:java.util.List findMovesWithSrc(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):118:130 -> b
+    78:90:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):172 -> b
+    78:90:void schedule():107 -> b
+    91:105:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):173:187 -> b
+    91:105:void schedule():107 -> b
+    106:106:void schedule():108:108 -> b
+com.android.tools.r8.ir.regalloc.RegisterPositions -> com.android.tools.r8.ir.regalloc.h:
+    int[] backing -> b
+    boolean $assertionsDisabled -> f
+    java.util.BitSet registerHoldsConstant -> c
+    java.util.BitSet registerHoldsNewStringInstanceDisallowingSpilling -> e
+    int limit -> a
+    java.util.BitSet registerHoldsMonitor -> d
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:9:void <init>(int):28:36 -> <init>
+    1:13:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):40:52 -> a
+    14:14:boolean holdsMonitor(int):60:60 -> a
+    14:14:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):46 -> a
+    15:15:boolean holdsConstant(int):57:57 -> a
+    15:15:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):47 -> a
+    16:16:boolean holdsNewStringInstanceDisallowingSpilling(int):63:63 -> a
+    16:16:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):48 -> a
+    17:17:boolean holdsConstant(int):57:57 -> a
+    17:17:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):44 -> a
+    18:18:boolean holdsMonitor(int):60:60 -> a
+    18:18:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):42 -> a
+    19:19:void set(int,int):67:67 -> a
+    20:28:void grow(int):90:98 -> a
+    20:28:void set(int,int):68 -> a
+    29:29:void set(int,int):70:70 -> a
+    30:34:void set(int,int,com.android.tools.r8.ir.regalloc.LiveIntervals):74:78 -> a
+    35:35:void set(int,int,com.android.tools.r8.ir.regalloc.LiveIntervals):77:77 -> a
+    36:39:int get(int):82:85 -> a
+com.android.tools.r8.ir.regalloc.RegisterPositions$Type -> com.android.tools.r8.ir.regalloc.h$a:
+    com.android.tools.r8.ir.regalloc.RegisterPositions$Type[] $VALUES -> e
+    com.android.tools.r8.ir.regalloc.RegisterPositions$Type ANY -> d
+    com.android.tools.r8.ir.regalloc.RegisterPositions$Type OTHER -> c
+    com.android.tools.r8.ir.regalloc.RegisterPositions$Type CONST_NUMBER -> b
+    com.android.tools.r8.ir.regalloc.RegisterPositions$Type MONITOR -> a
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(java.lang.String,int):19:19 -> <init>
+com.android.tools.r8.ir.regalloc.SpillMove -> com.android.tools.r8.ir.regalloc.i:
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement type -> a
+    com.android.tools.r8.ir.regalloc.LiveIntervals from -> b
+    com.android.tools.r8.ir.regalloc.LiveIntervals to -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):19:24 -> <init>
+    1:9:boolean equals(java.lang.Object):47:55 -> equals
+    1:1:int hashCode():29:29 -> hashCode
+    1:1:java.lang.String toString():60:60 -> toString
+com.android.tools.r8.ir.regalloc.SpillMoveSet -> com.android.tools.r8.ir.regalloc.j:
+    java.util.Map instructionToInMoves -> a
+    com.android.tools.r8.ir.analysis.type.TypeLatticeElement objectType -> f
+    java.util.Map instructionToOutMoves -> b
+    java.util.Map instructionToPhiMoves -> c
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.ir.code.IRCode code -> d
+    int usedTempRegisters -> h
+    java.util.Map blockStartMap -> g
+    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator allocator -> e
+    1:1:void <clinit>():26:26 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):45:45 -> <init>
+    2:23:void <init>(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):29:50 -> <init>
+    1:3:void addInMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):146:148 -> a
+    4:4:void addInMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):147:147 -> a
+    5:5:java.util.Set lambda$addInMove$1(java.lang.Integer):147:147 -> a
+    6:13:com.android.tools.r8.ir.analysis.type.TypeLatticeElement moveTypeForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):201:208 -> a
+    14:16:com.android.tools.r8.ir.analysis.type.TypeLatticeElement moveTypeForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):204:206 -> a
+    17:19:boolean needsMovesBeforeInstruction(int):213:215 -> a
+    20:30:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):284:294 -> a
+    31:31:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1531:1531 -> a
+    31:31:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):294 -> a
+    32:43:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):299:310 -> a
+    44:47:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):269:272 -> a
+    44:47:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
+    48:49:com.android.tools.r8.ir.regalloc.SpillMove getMoveWithSource(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.Collection):219:220 -> a
+    48:49:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):272 -> a
+    48:49:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
+    50:54:com.android.tools.r8.ir.regalloc.SpillMove getMoveWritingSourceRegister(com.android.tools.r8.ir.regalloc.SpillMove,java.util.Collection):228:232 -> a
+    50:54:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):273 -> a
+    50:54:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
+    55:55:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):274:274 -> a
+    55:55:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
+    56:57:com.android.tools.r8.ir.regalloc.SpillMove getMoveWithSource(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.Collection):219:220 -> a
+    56:57:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):274 -> a
+    56:57:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
+    58:59:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):276:277 -> a
+    58:59:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
+    60:64:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):316:320 -> a
+    65:73:void removeArgumentRestores(java.util.Set):332:340 -> a
+    74:98:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):347:371 -> a
+    99:99:boolean com.android.tools.r8.utils.InternalOptions.canHaveBoundsCheckEliminationBug():1233:1233 -> a
+    99:99:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):371 -> a
+    100:105:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):371:376 -> a
+    106:110:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):375:379 -> a
+    111:117:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):378:384 -> a
+    1:2:void addInResolutionMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):122:123 -> b
+    3:3:java.util.Set lambda$addOutMove$2(java.lang.Integer):153:153 -> b
+    4:19:int scheduleAndInsertMoves(int):167:182 -> b
+    20:39:int scheduleAndInsertMoves(int):178:197 -> b
+    1:1:java.util.Set lambda$addPhiMove$0(java.lang.Integer):142:142 -> c
+    2:4:void addOutMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):152:154 -> c
+    5:5:void addOutMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):153:153 -> c
+    1:2:void addOutResolutionMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):127:128 -> d
+    3:3:java.util.Set lambda$scheduleMovesBeforeInstruction$3(java.lang.Integer):300:300 -> d
+    1:2:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):139:140 -> e
+    3:8:void com.android.tools.r8.ir.regalloc.SpillMove.updateMaxNonSpilled():33:38 -> e
+    3:8:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):141 -> e
+    9:9:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):142:142 -> e
+    10:10:java.util.Set lambda$scheduleMovesBeforeInstruction$4(java.lang.Integer):305:305 -> e
+    1:43:void addSpillOrRestoreMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):66:108 -> f
+    44:44:java.util.Set lambda$scheduleMovesBeforeInstruction$5(java.lang.Integer):310:310 -> f
+com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode -> com.android.tools.r8.t.d.a:
+    1:1:void <init>():21:21 -> <init>
+    1:8:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):38:45 -> buildIR
+    1:8:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):56:63 -> buildInliningIR
+    1:1:boolean computeEquals(java.lang.Object):83:83 -> computeEquals
+    1:1:int computeHashCode():78:78 -> computeHashCode
+    1:1:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):73:73 -> registerCodeReferences
+    1:1:java.lang.String toString():68:68 -> toString
+    2:2:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):88:88 -> toString
+com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider -> com.android.tools.r8.t.d.a$a:
+    com.android.tools.r8.ir.conversion.SourceCode get(com.android.tools.r8.ir.code.Position) -> a
+com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider -> com.android.tools.r8.t.d.g:
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):41:41 -> <init>
+    1:1:boolean shouldConvert(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,com.android.tools.r8.graph.DexString):46:46 -> a
+    2:2:boolean com.android.tools.r8.ir.desugar.PrefixRewritingMapper.hasRewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):33:33 -> a
+    2:2:boolean shouldConvert(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,com.android.tools.r8.graph.DexString):46 -> a
+    3:9:boolean shouldConvert(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,com.android.tools.r8.graph.DexString):49:55 -> a
+com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterConstructorCfCodeProvider -> com.android.tools.r8.t.d.b:
+    com.android.tools.r8.graph.DexField wrapperField -> c
+    1:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexField):293:294 -> <init>
+    1:9:com.android.tools.r8.graph.CfCode generateCfCode():299:307 -> a
+    10:10:com.android.tools.r8.graph.CfCode generateCfCode():305:305 -> a
+    11:23:com.android.tools.r8.graph.CfCode generateCfCode():302:314 -> a
+com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterThrowRuntimeExceptionCfCodeProvider -> com.android.tools.r8.t.d.c:
+    com.android.tools.r8.graph.DexString message -> c
+    1:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):324:325 -> <init>
+    1:11:com.android.tools.r8.graph.CfCode generateCfCode():330:340 -> a
+    12:12:com.android.tools.r8.graph.CfCode generateCfCode():338:338 -> a
+    13:22:com.android.tools.r8.graph.CfCode generateCfCode():335:344 -> a
+com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterVivifiedWrapperCfCodeProvider -> com.android.tools.r8.t.d.d:
+    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter converter -> e
+    boolean itfCall -> f
+    com.android.tools.r8.graph.DexField wrapperField -> c
+    com.android.tools.r8.graph.DexMethod forwardMethod -> d
+    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,boolean):83:87 -> <init>
+    1:14:com.android.tools.r8.graph.CfCode generateCfCode():92:105 -> a
+    15:15:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
+    15:15:com.android.tools.r8.graph.CfCode generateCfCode():108 -> a
+    16:16:com.android.tools.r8.graph.CfCode generateCfCode():108:108 -> a
+    17:17:com.android.tools.r8.graph.CfCode generateCfCode():105:105 -> a
+    18:18:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
+    18:18:com.android.tools.r8.graph.CfCode generateCfCode():110 -> a
+    19:30:com.android.tools.r8.graph.CfCode generateCfCode():110:121 -> a
+    31:31:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
+    31:31:com.android.tools.r8.graph.CfCode generateCfCode():122 -> a
+    32:43:com.android.tools.r8.graph.CfCode generateCfCode():125:136 -> a
+    44:44:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
+    44:44:com.android.tools.r8.graph.CfCode generateCfCode():140 -> a
+    45:45:com.android.tools.r8.graph.CfCode generateCfCode():139:139 -> a
+    46:58:com.android.tools.r8.graph.CfCode generateCfCode():136:148 -> a
+com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterWrapperCfCodeProvider -> com.android.tools.r8.t.d.e:
+    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter converter -> e
+    boolean itfCall -> f
+    com.android.tools.r8.graph.DexField wrapperField -> c
+    com.android.tools.r8.graph.DexMethod forwardMethod -> d
+    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,boolean):167:171 -> <init>
+    1:17:com.android.tools.r8.graph.CfCode generateCfCode():176:192 -> a
+    18:18:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
+    18:18:com.android.tools.r8.graph.CfCode generateCfCode():195 -> a
+    19:19:com.android.tools.r8.graph.CfCode generateCfCode():195:195 -> a
+    20:40:com.android.tools.r8.graph.CfCode generateCfCode():192:212 -> a
+    41:41:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
+    41:41:com.android.tools.r8.graph.CfCode generateCfCode():216 -> a
+    42:42:com.android.tools.r8.graph.CfCode generateCfCode():215:215 -> a
+    43:43:com.android.tools.r8.graph.CfCode generateCfCode():212:212 -> a
+    44:44:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
+    44:44:com.android.tools.r8.graph.CfCode generateCfCode():218 -> a
+    45:50:com.android.tools.r8.graph.CfCode generateCfCode():220:225 -> a
+com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterWrapperConversionCfCodeProvider -> com.android.tools.r8.t.d.f:
+    com.android.tools.r8.graph.DexField wrapperField -> e
+    com.android.tools.r8.graph.DexType argType -> c
+    com.android.tools.r8.graph.DexField reverseWrapperField -> d
+    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):237:240 -> <init>
+    1:36:com.android.tools.r8.graph.CfCode generateCfCode():245:280 -> a
+    37:37:com.android.tools.r8.graph.CfCode generateCfCode():278:278 -> a
+    38:47:com.android.tools.r8.graph.CfCode generateCfCode():275:284 -> a
+com.android.tools.r8.ir.synthetic.EmulateInterfaceSyntheticCfCodeProvider -> com.android.tools.r8.t.d.h:
+    java.util.List extraDispatchCases -> f
+    com.android.tools.r8.graph.DexType interfaceType -> c
+    com.android.tools.r8.graph.DexMethod libraryMethod -> e
+    com.android.tools.r8.graph.DexMethod companionMethod -> d
+    1:5:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.graph.AppView):40:44 -> <init>
+    1:41:com.android.tools.r8.graph.CfCode generateCfCode():49:89 -> a
+    1:4:void addReturn(java.util.List):100:103 -> b
+    1:2:void loadExtraParameters(java.util.List):94:95 -> c
+com.android.tools.r8.ir.synthetic.ExceptionThrowingSourceCode -> com.android.tools.r8.t.d.i:
+    com.android.tools.r8.graph.DexType exceptionType -> l
+    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType):24:25 -> <init>
+    1:11:void lambda$prepareInstructions$0(com.android.tools.r8.ir.conversion.IRBuilder):32:42 -> f
+    12:19:void lambda$prepareInstructions$0(com.android.tools.r8.ir.conversion.IRBuilder):37:44 -> f
+    1:1:void prepareInstructions():30:30 -> h
+com.android.tools.r8.ir.synthetic.FieldAccessorSourceCode -> com.android.tools.r8.t.d.j:
+    boolean $assertionsDisabled -> m
+    com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess fieldWithAccess -> l
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess):25:27 -> <init>
+    1:1:void lambda$prepareInstructions$0(int,int,com.android.tools.r8.ir.conversion.IRBuilder):36:36 -> b
+    2:2:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):37:37 -> b
+    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> c
+    2:2:void lambda$prepareInstructions$4(int,int,com.android.tools.r8.ir.conversion.IRBuilder):46:46 -> c
+    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> d
+    1:1:void lambda$prepareInstructions$5(int,com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> e
+    1:12:void prepareInstructions():32:43 -> h
+    13:13:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstance():481:481 -> h
+    13:13:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():497 -> h
+    13:13:void prepareInstructions():43 -> h
+    14:14:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():497:497 -> h
+    14:14:void prepareInstructions():43 -> h
+    15:20:void prepareInstructions():44:49 -> h
+    21:21:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isStaticPut():489:489 -> h
+    21:21:void prepareInstructions():49 -> h
+    22:25:void prepareInstructions():49:52 -> h
+com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode -> com.android.tools.r8.t.d.k:
+    com.android.tools.r8.graph.DexType targetReceiver -> l
+    com.android.tools.r8.graph.DexMethod target -> m
+    boolean castResult -> o
+    boolean isInterface -> p
+    com.android.tools.r8.ir.code.Invoke$Type invokeType -> n
+    boolean extraNullParameter -> q
+    boolean $assertionsDisabled -> r
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:20:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.ir.code.Position,boolean,boolean,boolean):122:141 -> <init>
+    1:1:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder builder(com.android.tools.r8.graph.DexMethod):24:24 -> a
+    2:2:void lambda$prepareInstructions$0(java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):196:196 -> a
+    1:1:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):210:210 -> b
+    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):212:212 -> c
+    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):214:214 -> d
+    1:36:void prepareInstructions():179:214 -> h
+    1:27:boolean checkSignatures():146:172 -> i
+com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder -> com.android.tools.r8.t.d.k$a:
+    com.android.tools.r8.ir.code.Invoke$Type invokeType -> f
+    boolean extraNullParameter -> i
+    com.android.tools.r8.graph.DexType targetReceiver -> d
+    com.android.tools.r8.graph.DexMethod target -> e
+    boolean castResult -> g
+    com.android.tools.r8.graph.DexType receiver -> a
+    boolean isInterface -> h
+    com.android.tools.r8.graph.DexMethod originalMethod -> c
+    com.android.tools.r8.graph.DexMethod method -> b
+    1:3:void <init>(com.android.tools.r8.graph.DexMethod):39:41 -> <init>
+    1:1:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setReceiver(com.android.tools.r8.graph.DexType):45:45 -> a
+    2:2:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setOriginalMethod(com.android.tools.r8.graph.DexMethod):55:55 -> a
+    3:3:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setInvokeType(com.android.tools.r8.ir.code.Invoke$Type):70:70 -> a
+    4:4:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setCastResult():75:75 -> a
+    5:5:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setIsInterface(boolean):80:80 -> a
+    6:6:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode build(com.android.tools.r8.ir.code.Position):90:90 -> a
+    1:1:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setTargetReceiver(com.android.tools.r8.graph.DexType):60:60 -> b
+    2:2:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setTarget(com.android.tools.r8.graph.DexMethod):65:65 -> b
+    3:3:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setExtraNullParameter():85:85 -> b
+com.android.tools.r8.ir.synthetic.SynthesizedCode -> com.android.tools.r8.t.d.l:
+    java.util.function.Consumer registryCallback -> b
+    com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider sourceCodeProvider -> a
+    1:1:void <init>(com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider):17:17 -> <init>
+    2:4:void <init>(com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider,java.util.function.Consumer):20:22 -> <init>
+    1:1:void registerReachableDefinitionsDefault(com.android.tools.r8.graph.UseRegistry):36:36 -> a
+    1:1:java.util.function.Consumer getRegistryCallback():32:32 -> getRegistryCallback
+    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():27:27 -> getSourceCodeProvider
+com.android.tools.r8.ir.synthetic.SyntheticCfCodeProvider -> com.android.tools.r8.t.d.m:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.graph.DexType holder -> b
+    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):20:22 -> <init>
+    1:1:com.android.tools.r8.graph.CfCode standardCfCodeFromInstructions(java.util.List):28:28 -> a
+    2:2:java.util.List defaultTryCatchs():46:46 -> a
+    2:2:com.android.tools.r8.graph.CfCode standardCfCodeFromInstructions(java.util.List):33 -> a
+    3:3:com.android.tools.r8.graph.CfCode standardCfCodeFromInstructions(java.util.List):34:34 -> a
+com.android.tools.r8.ir.synthetic.SyntheticSourceCode -> com.android.tools.r8.t.d.n:
+    java.util.function.Predicate endsBlock -> j
+    com.android.tools.r8.ir.code.Position position -> h
+    java.util.List constructors -> f
+    boolean $assertionsDisabled -> k
+    int[] paramRegisters -> e
+    int receiverRegister -> d
+    com.android.tools.r8.graph.DexType receiver -> a
+    com.android.tools.r8.graph.DexProto proto -> b
+    java.util.List traceEvents -> g
+    int nextRegister -> c
+    java.util.function.Predicate doesNotEndBlock -> i
+    1:3:void <clinit>():23:25 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):47:47 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexMethod):51:51 -> <init>
+    3:36:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexMethod):34:67 -> <init>
+    void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean) -> a
+    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
+    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
+    1:1:void add(java.util.function.Consumer):71:71 -> a
+    2:3:void add(java.util.function.Consumer,java.util.function.Predicate):75:76 -> a
+    2:3:void add(java.util.function.Consumer):71 -> a
+    4:5:void add(java.util.function.Consumer,java.util.function.Predicate):75:76 -> a
+    6:7:int nextRegister(com.android.tools.r8.ir.code.ValueType):80:81 -> a
+    8:8:int instructionCount():101:101 -> a
+    9:10:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):139:140 -> a
+    11:11:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):160:160 -> a
+    12:12:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):159:159 -> a
+    13:13:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):171:171 -> a
+    14:14:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):183:183 -> a
+    15:15:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):189:189 -> a
+    16:16:int getMoveExceptionRegister(int):199:199 -> a
+    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
+    int instructionOffset(int) -> b
+    1:3:void setUp():145:147 -> b
+    com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder) -> c
+    com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int) -> c
+    boolean verifyCurrentInstructionCanThrow() -> c
+    1:3:void clear():152:154 -> clear
+    boolean lambda$static$0(com.android.tools.r8.ir.conversion.IRBuilder) -> d
+    1:1:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):204:204 -> d
+    2:2:com.android.tools.r8.ir.code.Position getCurrentPosition():209:209 -> d
+    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
+    boolean lambda$static$1(com.android.tools.r8.ir.conversion.IRBuilder) -> e
+    1:3:int getReceiverRegister():86:88 -> e
+    boolean verifyRegister(int) -> f
+    1:1:int lastInstructionIndex():105:105 -> f
+    int instructionIndex(int) -> g
+    1:1:int nextInstructionIndex():109:109 -> g
+    void prepareInstructions() -> h
+    1:3:int getParamRegister(int):92:94 -> h
+com.android.tools.r8.it.unimi.dsi.fastutil.Function -> com.android.tools.r8.u.a.a.a.a:
+com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy -> com.android.tools.r8.u.a.a.a.b:
+    boolean equals(java.lang.Object,java.lang.Object) -> a
+    int hashCode(java.lang.Object) -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.HashCommon -> com.android.tools.r8.u.a.a.a.c:
+    int long2int(long) -> a
+    int mix(int) -> a
+    1:2:int arraySize(int,float):228:229 -> a
+    long mix(long) -> b
+    1:1:int maxFill(int,float):205:205 -> b
+    long nextPowerOfTwo(long) -> c
+com.android.tools.r8.it.unimi.dsi.fastutil.Stack -> com.android.tools.r8.u.a.a.a.d:
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection -> com.android.tools.r8.u.a.a.a.e.a:
+    1:1:void <init>():37:37 -> <init>
+    1:1:boolean add(boolean):68:68 -> a
+    1:1:boolean add(java.lang.Object):36:36 -> add
+    2:2:boolean add(java.lang.Boolean):114:114 -> add
+    2:2:boolean add(java.lang.Object):36 -> add
+    boolean contains(boolean) -> b
+    1:4:boolean rem(boolean):94:97 -> c
+    1:1:boolean contains(java.lang.Object):129:129 -> contains
+    1:1:boolean remove(java.lang.Object):143:143 -> remove
+    1:14:java.lang.String toString():206:219 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanIterator -> com.android.tools.r8.u.a.a.a.e.b:
+    1:1:void <init>():34:34 -> <init>
+    boolean nextBoolean() -> f
+    1:1:java.lang.Boolean next():57:57 -> next
+    1:1:java.lang.Object next():33 -> next
+    1:1:void remove():68:68 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanSet -> com.android.tools.r8.u.a.a.a.e.c:
+    1:1:void <init>():32:32 -> <init>
+    1:1:boolean rem(boolean):87:87 -> c
+    boolean remove(boolean) -> d
+    1:4:boolean equals(java.lang.Object):41:44 -> equals
+    1:2:int hashCode():57:58 -> hashCode
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet.iterator():119:119 -> hashCode
+    3:3:int hashCode():58 -> hashCode
+    4:4:int hashCode():61:61 -> hashCode
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet -> com.android.tools.r8.u.a.a.a.e.e:
+    int size -> b
+    1:4:void <init>(boolean[],int):104:107 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> a
+    2:10:boolean add(boolean):164:172 -> a
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> b
+    2:2:boolean contains(boolean):143:143 -> b
+    1:1:boolean[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> c
+    1:1:void clear():178:178 -> clear
+    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet clone():201:205 -> clone
+    1:5:java.lang.Object clone():29 -> clone
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet clone():203:203 -> clone
+    6:6:java.lang.Object clone():29 -> clone
+    1:6:boolean remove(boolean):153:158 -> d
+    1:2:int findKey(boolean):111:112 -> e
+    1:1:boolean isEmpty():183:183 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():119:119 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():119:119 -> iterator
+    2:2:java.util.Iterator iterator():29 -> iterator
+    1:1:int size():148:148 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet$1 -> com.android.tools.r8.u.a.a.a.e.d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet this$0 -> b
+    int next -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):119:120 -> <init>
+    1:3:boolean nextBoolean():129:129 -> f
+    1:1:boolean hasNext():124:124 -> hasNext
+    1:2:void remove():135:136 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArrays -> com.android.tools.r8.u.a.a.a.e.f:
+    boolean[] EMPTY_ARRAY -> a
+    1:1:void <clinit>():95:95 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection -> com.android.tools.r8.u.a.a.a.e.g:
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollections -> com.android.tools.r8.u.a.a.a.e.i:
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):536:536 -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollections$UnmodifiableCollection -> com.android.tools.r8.u.a.a.a.e.h:
+    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection collection -> a
+    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):369:371 -> <init>
+    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):370:370 -> <init>
+    1:1:boolean add(java.lang.Object):365:365 -> add
+    2:2:boolean add(java.lang.Boolean):453:453 -> add
+    2:2:boolean add(java.lang.Object):365 -> add
+    1:1:boolean addAll(java.util.Collection):437:437 -> addAll
+    1:1:void clear():417:417 -> clear
+    1:1:boolean contains(java.lang.Object):459:459 -> contains
+    1:1:boolean containsAll(java.util.Collection):432:432 -> containsAll
+    1:1:boolean equals(java.lang.Object):523:523 -> equals
+    1:1:int hashCode():517:517 -> hashCode
+    1:1:boolean isEmpty():391:391 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400:400 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator):747:747 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400:400 -> iterator
+    3:3:java.util.Iterator iterator():365 -> iterator
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator):747:747 -> iterator
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400 -> iterator
+    4:4:java.util.Iterator iterator():365 -> iterator
+    1:1:boolean remove(java.lang.Object):465:465 -> remove
+    1:1:boolean removeAll(java.util.Collection):442:442 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):447:447 -> retainAll
+    1:1:int size():386:386 -> size
+    1:1:java.lang.Object[] toArray(java.lang.Object[]):422:422 -> toArray
+    2:2:java.lang.Object[] toArray():427:427 -> toArray
+    1:1:java.lang.String toString():512:512 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator -> com.android.tools.r8.u.a.a.a.e.j:
+    boolean nextBoolean() -> f
+com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators$UnmodifiableIterator -> com.android.tools.r8.u.a.a.a.e.k:
+    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator i -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator):724:725 -> <init>
+    1:1:boolean nextBoolean():735:735 -> f
+    1:1:boolean hasNext():730:730 -> hasNext
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap -> com.android.tools.r8.u.a.a.a.f.b:
+    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.defRetValue -> a
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.<init>():44:44 -> <init>
+    1:1:void <init>():46 -> <init>
+    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(int,int) -> b
+    1:1:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.containsKey(java.lang.Object):105:105 -> containsKey
+    1:1:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.containsKey(java.lang.Object):0 -> containsKey
+    1:1:boolean containsValue(java.lang.Object):63:63 -> containsValue
+    boolean containsValue(int) -> d
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.defaultReturnValue(int):55:55 -> e
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.defaultReturnValue(int):0 -> e
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> entrySet
+    1:1:java.util.Set entrySet():43 -> entrySet
+    1:3:boolean equals(java.lang.Object):334:336 -> equals
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> equals
+    4:4:boolean equals(java.lang.Object):337 -> equals
+    5:5:boolean equals(java.lang.Object):337:337 -> equals
+    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(int) -> f
+    1:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.get(java.lang.Object):120:121 -> get
+    1:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.get(java.lang.Object):0 -> get
+    1:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.get(java.lang.Object):41 -> get
+    1:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.get(java.lang.Object):0 -> get
+    1:1:int hashCode():324:324 -> hashCode
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> hashCode
+    2:2:int hashCode():325 -> hashCode
+    3:5:int hashCode():325:327 -> hashCode
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    2:5:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Integer,java.lang.Integer):135:138 -> put
+    2:5:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Integer,java.lang.Integer):0 -> put
+    2:5:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Object,java.lang.Object):41 -> put
+    2:5:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    1:13:void putAll(java.util.Map):83:95 -> putAll
+    14:16:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Integer,java.lang.Integer):135:137 -> putAll
+    14:16:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Integer,java.lang.Integer):0 -> putAll
+    14:16:void putAll(java.util.Map):95 -> putAll
+    1:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(java.lang.Object):153:156 -> remove
+    1:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(java.lang.Object):0 -> remove
+    1:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(java.lang.Object):41 -> remove
+    1:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(java.lang.Object):0 -> remove
+    1:1:java.lang.String toString():342:342 -> toString
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> toString
+    2:2:java.lang.String toString():343 -> toString
+    3:17:java.lang.String toString():343:357 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap$BasicEntry -> com.android.tools.r8.u.a.a.a.f.a:
+    int value -> b
+    int key -> a
+    1:3:void <init>(int,int):122:124 -> <init>
+    1:1:int getIntValue():158:158 -> a
+    1:1:int getIntKey():141:141 -> b
+    1:5:boolean equals(java.lang.Object):180:184 -> equals
+    1:1:java.lang.Integer getKey():136:136 -> getKey
+    1:1:java.lang.Object getKey():113 -> getKey
+    1:1:java.lang.Integer getValue():153:153 -> getValue
+    1:1:java.lang.Object getValue():113 -> getValue
+    1:1:int hashCode():189:189 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):113:113 -> setValue
+    2:2:java.lang.Integer setValue(java.lang.Integer):175:175 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):113 -> setValue
+    3:3:int setValue(int):163:163 -> setValue
+    3:3:java.lang.Integer setValue(java.lang.Integer):175 -> setValue
+    3:3:java.lang.Object setValue(java.lang.Object):113 -> setValue
+    1:1:java.lang.String toString():194:194 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceFunction -> com.android.tools.r8.u.a.a.a.f.c:
+    java.lang.Object defRetValue -> a
+    1:1:void <init>():44:44 -> <init>
+    1:1:java.lang.Object put(int,java.lang.Object):71:71 -> a
+    1:1:boolean containsKey(java.lang.Object):105:105 -> containsKey
+    1:2:java.lang.Object get(java.lang.Object):120:121 -> get
+    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
+    2:4:java.lang.Object put(java.lang.Integer,java.lang.Object):135:137 -> put
+    2:4:java.lang.Object put(java.lang.Object,java.lang.Object):41 -> put
+    1:1:java.lang.Object remove(int):82:82 -> remove
+    2:4:java.lang.Object remove(java.lang.Object):153:155 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceMap -> com.android.tools.r8.u.a.a.a.f.e:
+    1:1:void <init>():45:45 -> <init>
+    boolean containsKey(int) -> a
+    1:1:java.util.Set entrySet():42:42 -> entrySet
+    1:4:boolean equals(java.lang.Object):296:299 -> equals
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> h
+    1:4:int hashCode():286:289 -> hashCode
+    1:13:void putAll(java.util.Map):70:82 -> putAll
+    14:16:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceFunction.put(java.lang.Integer,java.lang.Object):135:137 -> putAll
+    14:16:void putAll(java.util.Map):82 -> putAll
+    1:17:java.lang.String toString():304:320 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceMap$BasicEntry -> com.android.tools.r8.u.a.a.a.f.d:
+    java.lang.Object value -> b
+    int key -> a
+    1:3:void <init>(int,java.lang.Object):109:111 -> <init>
+    1:1:int getIntKey():128:128 -> b
+    1:4:boolean equals(java.lang.Object):143:146 -> equals
+    1:1:java.lang.Integer getKey():123:123 -> getKey
+    1:1:java.lang.Object getKey():100 -> getKey
+    1:1:java.lang.Object getValue():133:133 -> getValue
+    1:1:int hashCode():151:151 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):138:138 -> setValue
+    1:1:java.lang.String toString():156:156 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap -> com.android.tools.r8.u.a.a.a.f.f:
+    1:1:void <init>():33:33 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> entrySet
+    1:1:java.util.Set entrySet():30 -> entrySet
+    1:1:java.lang.Integer firstKey():85:85 -> firstKey
+    1:1:java.lang.Object firstKey():30 -> firstKey
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> h
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():30 -> h
+    1:1:java.util.SortedMap headMap(java.lang.Object):30:30 -> headMap
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(java.lang.Integer):46:46 -> headMap
+    2:2:java.util.SortedMap headMap(java.lang.Object):30 -> headMap
+    1:1:java.lang.Integer lastKey():98:98 -> lastKey
+    1:1:java.lang.Object lastKey():30 -> lastKey
+    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):30:30 -> subMap
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(java.lang.Integer,java.lang.Integer):72:72 -> subMap
+    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):30 -> subMap
+    1:1:java.util.SortedMap tailMap(java.lang.Object):30:30 -> tailMap
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(java.lang.Integer):59:59 -> tailMap
+    2:2:java.util.SortedMap tailMap(java.lang.Object):30 -> tailMap
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap$KeySet -> com.android.tools.r8.u.a.a.a.f.f$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap):122:122 -> <init>
+    1:1:boolean contains(int):125:125 -> b
+    2:2:int lastInt():150:150 -> b
+    1:1:void clear():135:135 -> clear
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():140:140 -> comparator
+    1:1:java.util.Comparator comparator():122 -> comparator
+    1:1:int firstInt():145:145 -> d
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int):160:160 -> d
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int):165:165 -> d
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int):155:155 -> e
+    1:1:int size():130:130 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection -> com.android.tools.r8.u.a.a.a.f.g:
+    1:1:void <init>():37:37 -> <init>
+    1:1:boolean add(int):68:68 -> a
+    2:2:boolean add(java.lang.Integer):114:114 -> a
+    3:4:int[] toArray(int[]):148:149 -> a
+    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312:312 -> a
+    5:5:int[] toArray(int[]):149 -> a
+    6:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[],int,int):289:289 -> a
+    6:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312 -> a
+    6:10:int[] toArray(int[]):149 -> a
+    11:11:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[],int,int):288:288 -> a
+    11:11:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312 -> a
+    11:11:int[] toArray(int[]):149 -> a
+    12:12:int[] toIntArray(int[]):167:167 -> a
+    12:12:int[] toIntArray():155 -> a
+    13:14:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):173:174 -> a
+    1:1:boolean add(java.lang.Object):36:36 -> add
+    boolean contains(int) -> b
+    1:1:boolean contains(java.lang.Object):129:129 -> contains
+    1:4:boolean rem(int):94:97 -> i
+    1:1:boolean remove(java.lang.Object):143:143 -> remove
+    1:14:java.lang.String toString():206:219 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntIterator -> com.android.tools.r8.u.a.a.a.f.h:
+    1:1:void <init>():34:34 -> <init>
+    int nextInt() -> i
+    1:1:java.lang.Integer next():57:57 -> next
+    1:1:java.lang.Object next():33 -> next
+    1:1:void remove():68:68 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList -> com.android.tools.r8.u.a.a.a.f.k:
+    1:1:void <init>():33:33 -> <init>
+    boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList) -> a
+    1:1:boolean add(int):86:86 -> a
+    2:8:void removeElements(int,int):341:347 -> a
+    9:9:void removeElements(int,int):344:344 -> a
+    10:15:void getElements(int,int[],int,int):388:393 -> a
+    16:16:void getElements(int,int[],int,int):391:391 -> a
+    17:17:void getElements(int,int[],int,int):390:390 -> a
+    18:18:void getElements(int,int[],int,int):389:389 -> a
+    19:23:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):525:529 -> a
+    24:24:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):553:553 -> a
+    25:25:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):564:564 -> a
+    1:1:void add(int,java.lang.Object):32:32 -> add
+    2:2:void add(int,java.lang.Integer):578:578 -> add
+    2:2:void add(int,java.lang.Object):32 -> add
+    1:5:boolean addAll(int,java.util.Collection):120:124 -> addAll
+    6:6:void add(int,java.lang.Integer):578:578 -> addAll
+    6:6:boolean addAll(int,java.util.Collection):124 -> addAll
+    7:7:boolean addAll(java.util.Collection):137:137 -> addAll
+    1:1:void add(int,int):74:74 -> b
+    2:2:boolean contains(int):274:274 -> b
+    3:21:int compareTo(java.util.List):464:482 -> b
+    1:1:int set(int,int):111:111 -> c
+    1:1:void clear():403:403 -> clear
+    1:1:int compareTo(java.lang.Object):32:32 -> compareTo
+    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):310:313 -> e
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):312:312 -> e
+    1:14:boolean equals(java.lang.Object):430:443 -> equals
+    15:15:boolean valEquals(java.lang.Object,java.lang.Object):407:407 -> equals
+    15:15:boolean equals(java.lang.Object):443 -> equals
+    int removeInt(int) -> f
+    1:1:java.lang.Integer get(int):606:606 -> get
+    1:1:java.lang.Object get(int):32 -> get
+    1:4:int hashCode():418:421 -> hashCode
+    1:1:int indexOf(java.lang.Object):620:620 -> indexOf
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():32:32 -> iterator
+    2:2:java.util.Iterator iterator():32:32 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():180:180 -> iterator
+    1:1:void ensureIndex(int):47:47 -> j
+    2:2:void ensureIndex(int):46:46 -> j
+    1:1:void ensureRestrictedIndex(int):62:62 -> k
+    2:2:void ensureRestrictedIndex(int):61:61 -> k
+    1:5:int indexOf(int):279:283 -> l
+    1:1:int lastIndexOf(java.lang.Object):634:634 -> lastIndexOf
+    1:1:java.util.ListIterator listIterator():32:32 -> listIterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():192:192 -> listIterator
+    1:5:int lastIndexOf(int):290:294 -> m
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int) -> n
+    1:1:java.lang.Integer remove(int):648:648 -> remove
+    1:1:java.lang.Object remove(int):32 -> remove
+    1:1:java.lang.Object set(int,java.lang.Object):32:32 -> set
+    2:2:java.lang.Integer set(int,java.lang.Integer):592:592 -> set
+    2:2:java.lang.Object set(int,java.lang.Object):32 -> set
+    1:1:java.util.List subList(int,int):32:32 -> subList
+    1:14:java.lang.String toString():709:722 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList -> com.android.tools.r8.u.a.a.a.f.j:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList l -> a
+    int from -> b
+    int to -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():726:726 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList,int,int):735:738 -> <init>
+    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList):726:726 -> a
+    2:4:boolean add(int):750:752 -> a
+    5:7:void getElements(int,int[],int,int):797:799 -> a
+    8:8:void getElements(int,int[],int,int):798:798 -> a
+    9:13:void removeElements(int,int):804:808 -> a
+    14:15:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):898:899 -> a
+    16:16:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):904:904 -> a
+    17:17:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):542:542 -> a
+    17:17:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):905 -> a
+    1:1:void add(int,java.lang.Object):726:726 -> add
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.add(int,java.lang.Integer):578:578 -> add
+    2:2:void add(int,java.lang.Object):726 -> add
+    1:3:boolean addAll(int,java.util.Collection):766:768 -> addAll
+    1:4:void add(int,int):758:761 -> b
+    1:2:int set(int,int):786:787 -> c
+    1:1:int compareTo(java.lang.Object):726:726 -> compareTo
+    1:3:boolean assertRange():742:744 -> e
+    4:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):880:883 -> e
+    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):882:882 -> e
+    1:3:int removeInt(int):779:781 -> f
+    1:2:int getInt(int):773:774 -> g
+    1:2:int getInt(int):773:774 -> get
+    1:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.get(int):606 -> get
+    1:2:java.lang.Object get(int):726 -> get
+    3:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.get(int):606:606 -> get
+    3:3:java.lang.Object get(int):726 -> get
+    1:5:boolean rem(int):888:892 -> i
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():726 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> iterator
+    2:2:java.util.Iterator iterator():726 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.listIterator():192:192 -> listIterator
+    1:1:java.util.ListIterator listIterator():726 -> listIterator
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):821:822 -> listIterator
+    2:3:java.util.ListIterator listIterator(int):726 -> listIterator
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):821:822 -> n
+    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.remove(int):648:648 -> remove
+    1:1:java.lang.Object remove(int):726 -> remove
+    1:1:java.lang.Object set(int,java.lang.Object):726:726 -> set
+    2:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.set(int,java.lang.Integer):592:592 -> set
+    2:2:java.lang.Object set(int,java.lang.Object):726 -> set
+    3:4:int set(int,int):786:787 -> set
+    3:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.set(int,java.lang.Integer):592 -> set
+    3:4:java.lang.Object set(int,java.lang.Object):726 -> set
+    5:5:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.set(int,java.lang.Integer):592:592 -> set
+    5:5:java.lang.Object set(int,java.lang.Object):726 -> set
+    1:1:int size():792:792 -> size
+    1:1:java.util.List subList(int,int):726:726 -> subList
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList$1 -> com.android.tools.r8.u.a.a.a.f.i:
+    boolean $assertionsDisabled -> e
+    int last -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList this$0 -> d
+    int val$index -> c
+    int pos -> a
+    1:1:void <clinit>():822:822 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList,int):822:823 -> <init>
+    1:5:void add(int):852:852 -> a
+    1:3:void set(int):859:859 -> b
+    1:3:int previousInt():839:839 -> e
+    1:1:boolean hasNext():826:826 -> hasNext
+    1:1:boolean hasPrevious():830:830 -> hasPrevious
+    1:3:int nextInt():834:834 -> i
+    1:1:int nextIndex():844:844 -> nextIndex
+    1:1:int previousIndex():848:848 -> previousIndex
+    1:11:void remove():864:864 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntListIterator -> com.android.tools.r8.u.a.a.a.f.l:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.<init>():34:34 -> <init>
+    1:1:void <init>():35 -> <init>
+    1:1:void add(int):57:57 -> a
+    1:1:void add(java.lang.Object):34:34 -> add
+    2:2:void add(java.lang.Integer):83:83 -> add
+    2:2:void add(java.lang.Object):34 -> add
+    1:1:void set(int):46:46 -> b
+    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previousInt() -> e
+    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previous():56:56 -> previous
+    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previous():0 -> previous
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previous():33 -> previous
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previous():0 -> previous
+    1:1:void set(java.lang.Object):34:34 -> set
+    2:2:void set(java.lang.Integer):70:70 -> set
+    2:2:void set(java.lang.Object):34 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntSet -> com.android.tools.r8.u.a.a.a.f.m:
+    1:1:void <init>():32:32 -> <init>
+    1:4:boolean equals(java.lang.Object):41:44 -> equals
+    1:5:int hashCode():57:61 -> hashCode
+    1:1:boolean rem(int):87:87 -> i
+    1:1:boolean remove(int):75:75 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntSortedSet -> com.android.tools.r8.u.a.a.a.f.n:
+    1:1:void <init>():23:23 -> <init>
+    1:1:java.lang.Integer first():94:94 -> first
+    1:1:java.lang.Object first():22 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):22:22 -> headSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(java.lang.Integer):55:55 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):22 -> headSet
+    1:1:java.lang.Integer last():107:107 -> last
+    1:1:java.lang.Object last():22 -> last
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):22:22 -> subSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(java.lang.Integer,java.lang.Integer):81:81 -> subSet
+    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):22 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):22:22 -> tailSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(java.lang.Integer):68:68 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):22 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap -> com.android.tools.r8.u.a.a.a.f.r:
+    int[] key -> b
+    int[] value -> c
+    int size -> d
+    1:3:void <init>():70:72 -> <init>
+    4:6:void <init>(int):81:83 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> a
+    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap,int):37:37 -> a
+    3:3:boolean containsKey(int):261:261 -> a
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> b
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet int2IntEntrySet():230:230 -> b
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet():37 -> b
+    3:22:int put(int,int):279:298 -> b
+    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> c
+    1:1:void clear():256:256 -> clear
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap clone():339:344 -> clone
+    1:6:java.lang.Object clone():37 -> clone
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap clone():341:341 -> clone
+    7:7:java.lang.Object clone():37 -> clone
+    1:1:int[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> d
+    2:3:boolean containsValue(int):266:267 -> d
+    1:7:int remove(int):304:310 -> f
+    1:3:int findKey(int):234:236 -> g
+    1:4:int get(int):243:246 -> get
+    1:1:boolean isEmpty():273:273 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():316:316 -> keySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():316:316 -> keySet
+    2:2:java.util.Set keySet():37 -> keySet
+    1:1:int size():251:251 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():321:321 -> values
+    1:1:java.util.Collection values():37 -> values
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):536:536 -> values
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():321 -> values
+    2:2:java.util.Collection values():37 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$1 -> com.android.tools.r8.u.a.a.a.f.o:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.f.q:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):133:133 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$1):133:133 -> <init>
+    1:6:boolean contains(java.lang.Object):201:206 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:java.util.Iterator iterator():133 -> iterator
+    1:12:boolean remove(java.lang.Object):212:223 -> remove
+    1:1:int size():195:195 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.f.p:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet this$1 -> c
+    int next -> b
+    int curr -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet):136:137 -> <init>
+    1:1:boolean hasNext():141:141 -> hasNext
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry next():147:147 -> next
+    1:3:java.lang.Object next():136 -> next
+    1:6:void remove():153:153 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntFunction -> com.android.tools.r8.u.a.a.a.f.s:
+    boolean containsKey(int) -> a
+    int put(int,int) -> b
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap -> com.android.tools.r8.u.a.a.a.f.v:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet() -> b
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry -> com.android.tools.r8.u.a.a.a.f.t:
+    int getIntValue() -> a
+    int getIntKey() -> b
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.f.u:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap -> com.android.tools.r8.u.a.a.a.f.E:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> l
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet entries -> j
+    float f -> i
+    int[] key -> b
+    int[] value -> c
+    int size -> h
+    boolean containsNullKey -> e
+    int n -> f
+    int maxFill -> g
+    int mask -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keys -> k
+    1:9:void <init>(int,float):92:100 -> <init>
+    10:10:void <init>(int,float):94:94 -> <init>
+    11:11:void <init>(int,float):93:93 -> <init>
+    12:12:void <init>():120:120 -> <init>
+    13:14:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):156:157 -> <init>
+    1:1:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):50:50 -> a
+    2:2:int access$400(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,int):50:50 -> a
+    3:12:boolean containsKey(int):387:396 -> a
+    1:16:int insert(int,int):248:263 -> b
+    1:16:int put(int,int):270 -> b
+    17:19:int put(int,int):271:273 -> b
+    20:21:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet int2IntEntrySet():773:774 -> b
+    20:21:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet():50 -> b
+    1:4:void clear():420:423 -> clear
+    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap clone():1017:1026 -> clone
+    1:10:java.lang.Object clone():50 -> clone
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap clone():1019:1019 -> clone
+    11:11:java.lang.Object clone():50 -> clone
+    1:5:boolean containsValue(int):403:407 -> d
+    1:12:int remove(int):352:363 -> f
+    1:7:void rehash(int):979:985 -> g
+    8:8:int realSize():206:206 -> g
+    8:8:void rehash(int):986 -> g
+    9:21:void rehash(int):987:999 -> g
+    1:11:int get(int):370:380 -> get
+    1:2:int removeEntry(int):220:221 -> h
+    3:8:void shiftKeys(int):333:338 -> h
+    3:8:int removeEntry(int):222 -> h
+    9:9:int removeEntry(int):223:223 -> h
+    10:15:void shiftKeys(int):341:346 -> h
+    10:15:int removeEntry(int):222 -> h
+    16:16:void shiftKeys(int):343:343 -> h
+    16:16:int removeEntry(int):222 -> h
+    17:20:int removeNullEntry():228:231 -> h
+    1:1:int realSize():206:206 -> hashCode
+    1:1:int hashCode():1043 -> hashCode
+    2:10:int hashCode():1044:1052 -> hashCode
+    1:1:boolean isEmpty():433:433 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():834:835 -> keySet
+    1:2:java.util.Set keySet():50 -> keySet
+    1:1:void putAll(java.util.Map):237:237 -> putAll
+    2:3:void ensureCapacity(int):210:211 -> putAll
+    2:3:void putAll(java.util.Map):237 -> putAll
+    4:4:int size():428:428 -> putAll
+    4:4:void putAll(java.util.Map):239 -> putAll
+    5:5:void putAll(java.util.Map):239:239 -> putAll
+    6:7:void tryCapacity(long):215:216 -> putAll
+    6:7:void putAll(java.util.Map):239 -> putAll
+    8:8:void putAll(java.util.Map):242:242 -> putAll
+    1:1:int size():428:428 -> size
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():866:887 -> values
+    1:22:java.util.Collection values():50 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.f.w:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):866:866 -> <init>
+    1:1:boolean contains(int):879:879 -> b
+    1:1:void clear():884:884 -> clear
+    1:1:java.util.Iterator iterator():866:866 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():869:869 -> iterator
+    1:1:int size():874:874 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.f.x:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry entry -> g
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):664:664 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):664:664 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry next():669:669 -> next
+    1:1:java.lang.Object next():664 -> next
+    1:2:void remove():674:675 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.f.y:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):787:788 -> <init>
+    1:1:int nextInt():793:793 -> i
+    1:1:java.lang.Integer next():799:799 -> next
+    1:1:java.lang.Object next():786 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.f.z:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):803:803 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):803:803 -> <init>
+    1:1:boolean contains(int):816:816 -> b
+    1:1:void clear():828:828 -> clear
+    1:1:java.util.Iterator iterator():803:803 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():806:806 -> iterator
+    1:3:boolean remove(int):821:823 -> remove
+    1:1:int size():811:811 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.f.A:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,int):472:473 -> <init>
+    1:1:int getIntValue():486:486 -> a
+    1:1:int getIntKey():481:481 -> b
+    1:3:boolean equals(java.lang.Object):535:537 -> equals
+    1:1:java.lang.Integer getKey():505:505 -> getKey
+    1:1:java.lang.Object getKey():467 -> getKey
+    1:1:java.lang.Integer getValue():517:517 -> getValue
+    1:1:java.lang.Object getValue():467 -> getValue
+    1:1:int hashCode():542:542 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):467:467 -> setValue
+    2:2:java.lang.Integer setValue(java.lang.Integer):529:529 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):467 -> setValue
+    3:4:int setValue(int):491:492 -> setValue
+    3:4:java.lang.Integer setValue(java.lang.Integer):529 -> setValue
+    3:4:java.lang.Object setValue(java.lang.Object):467 -> setValue
+    5:5:java.lang.Integer setValue(java.lang.Integer):529:529 -> setValue
+    5:5:java.lang.Object setValue(java.lang.Object):467 -> setValue
+    1:1:java.lang.String toString():547:547 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.f.B:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):689:689 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):689:689 -> <init>
+    1:1:void clear():767:767 -> clear
+    1:17:boolean contains(java.lang.Object):701:717 -> contains
+    1:1:java.util.Iterator iterator():689:689 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():691:691 -> iterator
+    1:30:boolean remove(java.lang.Object):724:753 -> remove
+    1:1:int size():762:762 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.f.C:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> f
+    int last -> b
+    int pos -> a
+    boolean mustReturnNullKey -> d
+    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):552:575 -> <init>
+    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):552:552 -> <init>
+    1:1:boolean hasNext():583:583 -> hasNext
+    1:19:int nextEntry():587:587 -> k
+    1:4:void remove():641:644 -> remove
+    5:10:void shiftKeys(int):619:624 -> remove
+    5:10:void remove():644 -> remove
+    11:12:void remove():651:652 -> remove
+    13:22:void shiftKeys(int):627:636 -> remove
+    13:22:void remove():644 -> remove
+    23:23:void shiftKeys(int):629:629 -> remove
+    23:23:void remove():644 -> remove
+    24:25:void remove():647:648 -> remove
+    26:26:void remove():641:641 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.f.D:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):848:849 -> <init>
+    1:1:int nextInt():854:854 -> i
+    1:1:java.lang.Integer next():860:860 -> next
+    1:1:java.lang.Object next():847 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap -> com.android.tools.r8.u.a.a.a.f.K:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry -> e
+    boolean modified -> i
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator actualComparator -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry tree -> b
+    int count -> c
+    boolean[] dirPath -> k
+    1:1:void <init>():79:79 -> <init>
+    2:10:void <init>():73:81 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():41:41 -> a
+    2:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):305:315 -> a
+    2:12:java.lang.Object put(int,java.lang.Object):283 -> a
+    13:13:int compare(int,int):232:232 -> a
+    13:13:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):315 -> a
+    13:13:java.lang.Object put(int,java.lang.Object):283 -> a
+    14:14:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
+    14:14:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):318 -> a
+    14:14:java.lang.Object put(int,java.lang.Object):283 -> a
+    15:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):323:330 -> a
+    15:22:java.lang.Object put(int,java.lang.Object):283 -> a
+    23:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.right(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):862:863 -> a
+    23:24:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):331 -> a
+    23:24:java.lang.Object put(int,java.lang.Object):283 -> a
+    25:33:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):335:343 -> a
+    25:33:java.lang.Object put(int,java.lang.Object):283 -> a
+    34:35:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):851:852 -> a
+    34:35:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):344 -> a
+    34:35:java.lang.Object put(int,java.lang.Object):283 -> a
+    36:38:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):354:356 -> a
+    36:38:java.lang.Object put(int,java.lang.Object):283 -> a
+    39:39:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
+    39:39:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):358 -> a
+    39:39:java.lang.Object put(int,java.lang.Object):283 -> a
+    40:40:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):359:359 -> a
+    40:40:java.lang.Object put(int,java.lang.Object):283 -> a
+    41:41:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
+    41:41:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):360 -> a
+    41:41:java.lang.Object put(int,java.lang.Object):283 -> a
+    42:43:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):362:363 -> a
+    42:43:java.lang.Object put(int,java.lang.Object):283 -> a
+    44:45:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> a
+    44:45:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):364 -> a
+    44:45:java.lang.Object put(int,java.lang.Object):283 -> a
+    46:56:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):365:375 -> a
+    46:56:java.lang.Object put(int,java.lang.Object):283 -> a
+    57:57:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
+    57:57:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):376 -> a
+    57:57:java.lang.Object put(int,java.lang.Object):283 -> a
+    58:68:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):377:387 -> a
+    58:68:java.lang.Object put(int,java.lang.Object):283 -> a
+    69:70:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> a
+    69:70:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):388 -> a
+    69:70:java.lang.Object put(int,java.lang.Object):283 -> a
+    71:73:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):389:391 -> a
+    71:73:java.lang.Object put(int,java.lang.Object):283 -> a
+    74:75:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> a
+    74:75:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):392 -> a
+    74:75:java.lang.Object put(int,java.lang.Object):283 -> a
+    76:80:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):393:397 -> a
+    76:80:java.lang.Object put(int,java.lang.Object):283 -> a
+    81:81:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
+    81:81:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):398 -> a
+    81:81:java.lang.Object put(int,java.lang.Object):283 -> a
+    82:83:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):400:401 -> a
+    82:83:java.lang.Object put(int,java.lang.Object):283 -> a
+    84:85:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> a
+    84:85:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):402 -> a
+    84:85:java.lang.Object put(int,java.lang.Object):283 -> a
+    86:96:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):403:413 -> a
+    86:96:java.lang.Object put(int,java.lang.Object):283 -> a
+    97:97:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
+    97:97:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):414 -> a
+    97:97:java.lang.Object put(int,java.lang.Object):283 -> a
+    98:108:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):415:425 -> a
+    98:108:java.lang.Object put(int,java.lang.Object):283 -> a
+    109:110:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> a
+    109:110:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):426 -> a
+    109:110:java.lang.Object put(int,java.lang.Object):283 -> a
+    111:113:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):427:429 -> a
+    111:113:java.lang.Object put(int,java.lang.Object):283 -> a
+    114:115:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> a
+    114:115:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):430 -> a
+    114:115:java.lang.Object put(int,java.lang.Object):283 -> a
+    116:123:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):431:438 -> a
+    116:123:java.lang.Object put(int,java.lang.Object):283 -> a
+    124:125:java.lang.Object put(int,java.lang.Object):284:285 -> a
+    126:126:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):348:348 -> a
+    126:126:java.lang.Object put(int,java.lang.Object):283 -> a
+    127:127:boolean containsKey(int):980:980 -> a
+    128:206:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1161:1239 -> a
+    207:207:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1421:1421 -> a
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1416:1416 -> b
+    1:1:int compare(int,int):232:232 -> c
+    2:4:int firstIntKey():1001:1001 -> c
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1411:1411 -> c
+    1:6:void clear():701:706 -> clear
+    1:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1948:1954 -> clone
+    1:7:java.lang.Object clone():41 -> clone
+    8:8:void allocatePaths():278:278 -> clone
+    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1955 -> clone
+    8:8:java.lang.Object clone():41 -> clone
+    9:20:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1956:1967 -> clone
+    9:20:java.lang.Object clone():41 -> clone
+    21:22:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> clone
+    21:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1968 -> clone
+    21:22:java.lang.Object clone():41 -> clone
+    23:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):851:852 -> clone
+    23:24:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1969 -> clone
+    23:24:java.lang.Object clone():41 -> clone
+    25:48:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1970:1993 -> clone
+    25:48:java.lang.Object clone():41 -> clone
+    49:50:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> clone
+    49:50:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1994 -> clone
+    49:50:java.lang.Object clone():41 -> clone
+    51:52:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.right(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):862:863 -> clone
+    51:52:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1995 -> clone
+    51:52:java.lang.Object clone():41 -> clone
+    53:53:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1950:1950 -> clone
+    53:53:java.lang.Object clone():41 -> clone
+    1:3:boolean containsValue(java.lang.Object):689:691 -> containsValue
+    4:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$ValueIterator.next():1351:1351 -> containsValue
+    4:4:boolean containsValue(java.lang.Object):693 -> containsValue
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):245:247 -> d
+    4:4:int compare(int,int):232:232 -> d
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):247 -> d
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):248:248 -> d
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):262:264 -> e
+    4:4:int compare(int,int):232:232 -> e
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):264 -> e
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):266:266 -> e
+    1:3:int lastIntKey():1007:1007 -> g
+    1:2:java.lang.Object get(int):995:996 -> get
+    1:1:void allocatePaths():278:278 -> i
+    1:1:boolean isEmpty():990:990 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():41:41 -> keySet
+    2:2:java.util.Set keySet():41:41 -> keySet
+    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1334:1335 -> keySet
+    1:8:java.lang.Object remove(int):484:491 -> remove
+    9:9:int compare(int,int):232:232 -> remove
+    9:9:java.lang.Object remove(int):491 -> remove
+    10:34:java.lang.Object remove(int):500:524 -> remove
+    35:35:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    35:35:java.lang.Object remove(int):525 -> remove
+    36:46:java.lang.Object remove(int):525:535 -> remove
+    47:48:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> remove
+    47:48:java.lang.Object remove(int):535 -> remove
+    49:60:java.lang.Object remove(int):536:547 -> remove
+    61:61:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    61:61:java.lang.Object remove(int):548 -> remove
+    62:62:java.lang.Object remove(int):548:548 -> remove
+    63:80:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):453:470 -> remove
+    63:80:java.lang.Object remove(int):556 -> remove
+    81:82:java.lang.Object remove(int):558:559 -> remove
+    83:83:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    83:83:java.lang.Object remove(int):560 -> remove
+    84:84:java.lang.Object remove(int):562:562 -> remove
+    85:85:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    85:85:java.lang.Object remove(int):564 -> remove
+    86:90:java.lang.Object remove(int):567:571 -> remove
+    91:91:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    91:91:java.lang.Object remove(int):572 -> remove
+    92:103:java.lang.Object remove(int):573:584 -> remove
+    104:105:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> remove
+    104:105:java.lang.Object remove(int):585 -> remove
+    106:108:java.lang.Object remove(int):586:588 -> remove
+    109:110:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> remove
+    109:110:java.lang.Object remove(int):589 -> remove
+    111:121:java.lang.Object remove(int):590:600 -> remove
+    122:122:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    122:122:java.lang.Object remove(int):601 -> remove
+    123:141:java.lang.Object remove(int):602:620 -> remove
+    142:142:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    142:142:java.lang.Object remove(int):621 -> remove
+    143:143:java.lang.Object remove(int):623:623 -> remove
+    144:144:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    144:144:java.lang.Object remove(int):625 -> remove
+    145:149:java.lang.Object remove(int):628:632 -> remove
+    150:150:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    150:150:java.lang.Object remove(int):633 -> remove
+    151:162:java.lang.Object remove(int):634:645 -> remove
+    163:164:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> remove
+    163:164:java.lang.Object remove(int):646 -> remove
+    165:167:java.lang.Object remove(int):647:649 -> remove
+    168:169:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> remove
+    168:169:java.lang.Object remove(int):650 -> remove
+    170:180:java.lang.Object remove(int):651:661 -> remove
+    181:181:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
+    181:181:java.lang.Object remove(int):662 -> remove
+    182:195:java.lang.Object remove(int):663:676 -> remove
+    196:197:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):474:475 -> remove
+    196:197:java.lang.Object remove(int):556 -> remove
+    198:201:java.lang.Object remove(int):681:684 -> remove
+    202:205:java.lang.Object remove(int):494:497 -> remove
+    1:1:int size():985:985 -> size
+    1:1:java.util.Collection values():41:41 -> values
+    2:19:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1384:1401 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1 -> com.android.tools.r8.u.a.a.a.f.F:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2 -> com.android.tools.r8.u.a.a.a.f.H:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> b
+    java.util.Comparator comparator -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1161:1162 -> <init>
+    1:1:void clear():1211:1211 -> clear
+    1:1:java.util.Comparator comparator():1170:1170 -> comparator
+    1:5:boolean contains(java.lang.Object):1186:1190 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry first():1216:1216 -> first
+    1:1:java.lang.Object first():1161 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):1161:1161 -> headSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1231:1231 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):1161 -> headSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1161:1161 -> iterator
+    2:2:java.util.Iterator iterator():1161:1161 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1175:1175 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry last():1221:1221 -> last
+    1:1:java.lang.Object last():1161 -> last
+    1:5:boolean remove(java.lang.Object):1196:1200 -> remove
+    1:1:int size():1206:1206 -> size
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1161:1161 -> subSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1226:1226 -> subSet
+    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1161 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1161:1161 -> tailSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1236:1236 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):1161 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2$1 -> com.android.tools.r8.u.a.a.a.f.G:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2 this$1 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2):1162:1162 -> <init>
+    1:1:int compare(java.lang.Object,java.lang.Object):1162:1162 -> compare
+    2:2:int compare(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1164:1164 -> compare
+    2:2:int compare(java.lang.Object,java.lang.Object):1162 -> compare
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$3 -> com.android.tools.r8.u.a.a.a.f.I:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1384:1384 -> <init>
+    1:1:void clear():1398:1398 -> clear
+    1:1:boolean contains(java.lang.Object):1390:1390 -> contains
+    1:1:java.util.Iterator iterator():1384:1384 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1386:1386 -> iterator
+    1:1:int size():1394:1394 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry -> com.android.tools.r8.u.a.a.a.f.J:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry right -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry left -> c
+    int info -> e
+    1:1:void <init>():745:745 -> <init>
+    2:3:void <init>(int,java.lang.Object):757:758 -> <init>
+    1:2:void pred(boolean):806:807 -> a
+    3:4:void left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):851:852 -> a
+    5:6:void balance(int):882:883 -> a
+    1:2:void succ(boolean):818:819 -> b
+    3:4:void pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> b
+    1:2:void succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> c
+    1:1:java.lang.Object clone():720:720 -> clone
+    1:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry clone():933:939 -> d
+    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry clone():935:935 -> d
+    1:1:void decBalance():893:893 -> e
+    1:3:boolean equals(java.lang.Object):946:948 -> equals
+    1:1:void incBalance():888:888 -> f
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry left():767:767 -> g
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry next():902:904 -> h
+    1:1:int hashCode():953:953 -> hashCode
+    1:1:boolean pred():786:786 -> i
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry prev():915:917 -> j
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry right():777:777 -> k
+    1:1:boolean succ():795:795 -> l
+    1:2:java.lang.Object setValue(java.lang.Object):923:924 -> setValue
+    1:1:java.lang.String toString():958:958 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$EntryIterator -> com.android.tools.r8.u.a.a.a.f.K$a:
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1131:1131 -> <init>
+    1:1:void add(java.lang.Object):1130:1130 -> add
+    2:2:void add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1155:1155 -> add
+    2:2:void add(java.lang.Object):1130 -> add
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():1140:1140 -> next
+    1:1:java.lang.Object next():1130 -> next
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry previous():1145:1145 -> previous
+    1:1:java.lang.Object previous():1130 -> previous
+    1:1:void set(java.lang.Object):1130:1130 -> set
+    2:2:void set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1150:1150 -> set
+    2:2:void set(java.lang.Object):1130 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$KeyIterator -> com.android.tools.r8.u.a.a.a.f.K$b:
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1253:1253 -> <init>
+    1:1:void add(java.lang.Object):1252:1252 -> add
+    2:2:void add(java.lang.Integer):1301:1301 -> add
+    2:2:void add(java.lang.Object):1252 -> add
+    1:1:int previousInt():1267:1267 -> e
+    1:1:int nextInt():1262:1262 -> i
+    1:1:java.lang.Integer next():1283:1283 -> next
+    1:1:java.lang.Object next():1252 -> next
+    1:1:java.lang.Integer previous():1289:1289 -> previous
+    1:1:java.lang.Object previous():1252 -> previous
+    1:1:void set(java.lang.Object):1252:1252 -> set
+    2:2:void set(java.lang.Integer):1295:1295 -> set
+    2:2:void set(java.lang.Object):1252 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$KeySet -> com.android.tools.r8.u.a.a.a.f.K$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> b
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1308:1308 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1308:1308 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1308:1308 -> iterator
+    2:2:java.util.Iterator iterator():1308:1308 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1311:1311 -> iterator
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap -> com.android.tools.r8.u.a.a.a.f.K$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> i
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
+    boolean top -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
+    int from -> b
+    int to -> c
+    boolean bottom -> d
+    1:7:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,int,boolean,int,boolean):1466:1472 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():1435:1435 -> a
+    2:82:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1497:1577 -> a
+    83:83:boolean containsKey(int):1624:1624 -> a
+    84:84:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.containsKey(int):980:980 -> a
+    84:84:boolean containsKey(int):1624 -> a
+    85:88:java.lang.Object put(int,java.lang.Object):1648:1651 -> a
+    89:90:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1698:1699 -> a
+    91:323:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> a
+    91:323:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1699 -> a
+    324:325:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1699:1700 -> a
+    326:558:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> a
+    326:558:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700 -> a
+    559:561:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700:1702 -> a
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1692:1693 -> b
+    3:235:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> b
+    3:235:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1693 -> b
+    236:236:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1693:1693 -> b
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1686:1687 -> c
+    3:235:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> c
+    3:235:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1687 -> c
+    236:236:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1687:1687 -> c
+    237:239:int firstIntKey():1753:1755 -> c
+    240:240:int firstIntKey():1754:1754 -> c
+    1:4:void clear():1477:1480 -> clear
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():1681:1681 -> comparator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():1681:1681 -> comparator
+    2:2:java.util.Comparator comparator():1435 -> comparator
+    1:4:boolean containsValue(java.lang.Object):1629:1632 -> containsValue
+    1:1:boolean in(int):1492:1492 -> d
+    2:234:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> d
+    2:234:boolean in(int):1492 -> d
+    235:235:boolean in(int):1492:1492 -> d
+    236:468:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> d
+    236:468:boolean in(int):1492 -> d
+    1:3:int lastIntKey():1760:1762 -> g
+    4:4:int lastIntKey():1761:1761 -> g
+    1:1:java.lang.Object get(int):1643:1643 -> get
+    1:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1712:1720 -> i
+    10:242:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> i
+    10:242:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1720 -> i
+    243:247:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1720:1724 -> i
+    248:480:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> i
+    248:480:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1724 -> i
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777:1777 -> isEmpty
+    1:1:boolean isEmpty():1676 -> isEmpty
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1043:1043 -> isEmpty
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777 -> isEmpty
+    2:2:boolean isEmpty():1676 -> isEmpty
+    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1778:1778 -> isEmpty
+    3:3:boolean isEmpty():1676 -> isEmpty
+    1:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1735:1743 -> j
+    10:242:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> j
+    10:242:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1743 -> j
+    243:247:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1743:1747 -> j
+    248:480:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> j
+    248:480:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1747 -> j
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():1435:1435 -> keySet
+    2:2:java.util.Set keySet():1435:1435 -> keySet
+    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1592:1593 -> keySet
+    1:4:java.lang.Object remove(int):1657:1660 -> remove
+    1:5:int size():1665:1669 -> size
+    1:1:java.util.Collection values():1435:1435 -> values
+    2:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1598:1618 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$1 -> com.android.tools.r8.u.a.a.a.f.L:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1497:1497 -> <init>
+    1:1:void clear():1549:1549 -> clear
+    1:1:java.util.Comparator comparator():1510:1510 -> comparator
+    1:5:boolean contains(java.lang.Object):1516:1520 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry first():1554:1554 -> first
+    1:1:java.lang.Object first():1497 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):1497:1497 -> headSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1569:1569 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
+    1:1:boolean isEmpty():1544:1544 -> isEmpty
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777:1777 -> isEmpty
+    2:2:boolean isEmpty():1544 -> isEmpty
+    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1043:1043 -> isEmpty
+    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777 -> isEmpty
+    3:3:boolean isEmpty():1544 -> isEmpty
+    4:4:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1778:1778 -> isEmpty
+    4:4:boolean isEmpty():1544 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1497:1497 -> iterator
+    2:2:java.util.Iterator iterator():1497:1497 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1500:1500 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry last():1559:1559 -> last
+    1:1:java.lang.Object last():1497 -> last
+    1:5:boolean remove(java.lang.Object):1526:1530 -> remove
+    1:1:int size():1537:1537 -> size
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497:1497 -> subSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1564:1564 -> subSet
+    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1497:1497 -> tailSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1574:1574 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$2 -> com.android.tools.r8.u.a.a.a.f.M:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1598:1598 -> <init>
+    1:1:void clear():1615:1615 -> clear
+    1:1:boolean contains(java.lang.Object):1605:1605 -> contains
+    1:1:java.util.Iterator iterator():1598:1598 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1600:1600 -> iterator
+    1:1:int size():1610:1610 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$KeySet -> com.android.tools.r8.u.a.a.a.f.K$d$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> b
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1580:1580 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1580:1580 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1580:1580 -> iterator
+    2:2:java.util.Iterator iterator():1580:1580 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1582:1582 -> iterator
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapEntryIterator -> com.android.tools.r8.u.a.a.a.f.K$d$b:
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1808:1808 -> <init>
+    1:1:void add(java.lang.Object):1807:1807 -> add
+    2:2:void add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1832:1832 -> add
+    2:2:void add(java.lang.Object):1807 -> add
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():1817:1817 -> next
+    1:1:java.lang.Object next():1807 -> next
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry previous():1822:1822 -> previous
+    1:1:java.lang.Object previous():1807 -> previous
+    1:1:void set(java.lang.Object):1807:1807 -> set
+    2:2:void set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1827:1827 -> set
+    2:2:void set(java.lang.Object):1807 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator -> com.android.tools.r8.u.a.a.a.f.K$d$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777:1778 -> <init>
+    1:2:void updateNext():1802:1803 -> m
+    3:235:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> m
+    3:235:void updateNext():1803 -> m
+    236:236:void updateNext():1803:1803 -> m
+    1:2:void updatePrevious():1797:1798 -> n
+    3:235:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):0:232 -> n
+    3:235:void updatePrevious():1798 -> n
+    236:236:void updatePrevious():1798:1798 -> n
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapKeyIterator -> com.android.tools.r8.u.a.a.a.f.K$d$d:
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1848:1848 -> <init>
+    1:1:void add(java.lang.Object):1846:1846 -> add
+    2:2:void add(java.lang.Integer):1896:1896 -> add
+    2:2:void add(java.lang.Object):1846 -> add
+    1:1:int previousInt():1862:1862 -> e
+    1:1:int nextInt():1857:1857 -> i
+    1:1:java.lang.Integer next():1878:1878 -> next
+    1:1:java.lang.Object next():1846 -> next
+    1:1:java.lang.Integer previous():1884:1884 -> previous
+    1:1:java.lang.Object previous():1846 -> previous
+    1:1:void set(java.lang.Object):1846:1846 -> set
+    2:2:void set(java.lang.Integer):1890:1890 -> set
+    2:2:void set(java.lang.Object):1846 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapValueIterator -> com.android.tools.r8.u.a.a.a.f.K$d$e:
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1910:1910 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1910:1910 -> <init>
+    1:1:void add(java.lang.Object):1928:1928 -> add
+    1:1:java.lang.Object next():1913:1913 -> next
+    1:1:java.lang.Object previous():1918:1918 -> previous
+    1:1:void set(java.lang.Object):1923:1923 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator -> com.android.tools.r8.u.a.a.a.f.K$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry prev -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry curr -> c
+    int index -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry next -> b
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1042:1042 -> <init>
+    2:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1040:1043 -> <init>
+    1:1:boolean hasNext():1056:1056 -> hasNext
+    1:1:boolean hasPrevious():1060:1060 -> hasPrevious
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry nextEntry():1068:1068 -> k
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry previousEntry():1080:1080 -> l
+    1:1:void updateNext():1064:1064 -> m
+    1:1:void updatePrevious():1076:1076 -> n
+    1:1:int nextIndex():1088:1088 -> nextIndex
+    1:1:int previousIndex():1092:1092 -> previousIndex
+    1:12:void remove():1096:1096 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$ValueIterator -> com.android.tools.r8.u.a.a.a.f.K$f:
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1348:1348 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1348:1348 -> <init>
+    1:1:void add(java.lang.Object):1366:1366 -> add
+    1:1:java.lang.Object next():1351:1351 -> next
+    1:1:java.lang.Object previous():1356:1356 -> previous
+    1:1:void set(java.lang.Object):1361:1361 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap -> com.android.tools.r8.u.a.a.a.f.P:
+    java.lang.Object[] value -> c
+    int[] key -> b
+    int size -> d
+    1:3:void <init>():70:72 -> <init>
+    4:6:void <init>(int):81:83 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> a
+    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap,int):37:37 -> a
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet int2ReferenceEntrySet():231:231 -> a
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():37 -> a
+    4:4:boolean containsKey(int):265:265 -> a
+    5:24:java.lang.Object put(int,java.lang.Object):283:302 -> a
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> b
+    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> c
+    1:4:void clear():257:260 -> clear
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap clone():344:349 -> clone
+    1:6:java.lang.Object clone():37 -> clone
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap clone():346:346 -> clone
+    7:7:java.lang.Object clone():37 -> clone
+    1:2:boolean containsValue(java.lang.Object):270:271 -> containsValue
+    1:1:java.lang.Object[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> d
+    2:4:int findKey(int):235:237 -> d
+    1:4:java.lang.Object get(int):244:247 -> get
+    1:1:boolean isEmpty():277:277 -> isEmpty
+    1:1:java.util.Set keySet():37:37 -> keySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():321:321 -> keySet
+    1:8:java.lang.Object remove(int):308:315 -> remove
+    1:1:int size():252:252 -> size
+    1:1:java.util.Collection values():37:37 -> values
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():326:326 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$1 -> com.android.tools.r8.u.a.a.a.f.N:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.f.P$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):133:133 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$1):133:133 -> <init>
+    1:5:boolean contains(java.lang.Object):203:207 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:java.util.Iterator iterator():133 -> iterator
+    1:12:boolean remove(java.lang.Object):213:224 -> remove
+    1:1:int size():197:197 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.f.O:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet this$1 -> c
+    int next -> b
+    int curr -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet):136:137 -> <init>
+    1:1:boolean hasNext():141:141 -> hasNext
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():147:147 -> next
+    1:3:java.lang.Object next():136 -> next
+    1:7:void remove():153:153 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunction -> com.android.tools.r8.u.a.a.a.f.Q:
+    boolean containsKey(int) -> a
+    java.lang.Object put(int,java.lang.Object) -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap -> com.android.tools.r8.u.a.a.a.f.T:
+    float f -> l
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> n
+    java.lang.Object[] value -> c
+    int maxFill -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap$FastSortedEntrySet entries -> m
+    int size -> k
+    int n -> i
+    int first -> f
+    int last -> g
+    int mask -> d
+    long[] link -> h
+    int[] key -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> o
+    boolean containsNullKey -> e
+    1:1:void <init>(int,float):146:146 -> <init>
+    2:56:void <init>(int,float):101:155 -> <init>
+    57:57:void <init>(int,float):148:148 -> <init>
+    58:58:void <init>(int,float):147:147 -> <init>
+    59:59:void <init>():175:175 -> <init>
+    1:1:java.lang.Object access$200(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):86:86 -> a
+    2:2:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap,int):86:86 -> a
+    3:27:int insert(int,java.lang.Object):307:331 -> a
+    3:27:java.lang.Object put(int,java.lang.Object):338 -> a
+    28:30:java.lang.Object put(int,java.lang.Object):339:341 -> a
+    31:40:boolean containsKey(int):684:693 -> a
+    41:41:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):947:947 -> a
+    42:43:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap$FastSortedEntrySet int2ReferenceEntrySet():1358:1359 -> a
+    42:43:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():86 -> a
+    44:45:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap$FastSortedEntrySet int2ReferenceEntrySet():1358:1359 -> a
+    44:45:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():86 -> a
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):927:927 -> b
+    1:24:void fixPointers(int,int):872:895 -> c
+    25:27:int firstIntKey():905:905 -> c
+    28:28:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):937:937 -> c
+    1:6:void clear():717:722 -> clear
+    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap clone():1704:1714 -> clone
+    1:11:java.lang.Object clone():86 -> clone
+    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap clone():1706:1706 -> clone
+    12:12:java.lang.Object clone():86 -> clone
+    1:5:boolean containsValue(java.lang.Object):700:704 -> containsValue
+    1:25:void fixPointers(int):834:858 -> d
+    1:42:void rehash(int):1645:1686 -> e
+    1:4:java.lang.Object removeEntry(int):275:278 -> f
+    5:11:void shiftKeys(int):356:362 -> f
+    5:11:java.lang.Object removeEntry(int):279 -> f
+    12:12:java.lang.Object removeEntry(int):280:280 -> f
+    13:19:void shiftKeys(int):365:371 -> f
+    13:19:java.lang.Object removeEntry(int):279 -> f
+    20:20:void shiftKeys(int):367:367 -> f
+    20:20:java.lang.Object removeEntry(int):279 -> f
+    1:3:int lastIntKey():916:916 -> g
+    1:11:java.lang.Object get(int):667:677 -> get
+    1:1:int realSize():261:261 -> hashCode
+    1:1:int hashCode():1731 -> hashCode
+    2:10:int hashCode():1732:1740 -> hashCode
+    1:6:java.lang.Object removeNullEntry():285:290 -> i
+    1:1:boolean isEmpty():732:732 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():86:86 -> keySet
+    2:2:java.util.Set keySet():86:86 -> keySet
+    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1491:1492 -> keySet
+    1:1:void putAll(java.util.Map):296:296 -> putAll
+    2:3:void ensureCapacity(int):265:266 -> putAll
+    2:3:void putAll(java.util.Map):296 -> putAll
+    4:4:int size():727:727 -> putAll
+    4:4:void putAll(java.util.Map):298 -> putAll
+    5:5:void putAll(java.util.Map):298:298 -> putAll
+    6:7:void tryCapacity(long):270:271 -> putAll
+    6:7:void putAll(java.util.Map):298 -> putAll
+    8:8:void putAll(java.util.Map):301:301 -> putAll
+    1:12:java.lang.Object remove(int):377:388 -> remove
+    1:1:int size():727:727 -> size
+    1:1:java.util.Collection values():86:86 -> values
+    2:23:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1532:1553 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.f.S:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):1532:1532 -> <init>
+    1:1:void clear():1550:1550 -> clear
+    1:1:boolean contains(java.lang.Object):1545:1545 -> contains
+    1:1:java.util.Iterator iterator():1532:1532 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1535:1535 -> iterator
+    1:1:int size():1540:1540 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.f.T$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap this$0 -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$MapEntry entry -> f
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):1158:1158 -> <init>
+    1:1:void add(java.lang.Object):1155:1155 -> add
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1151:1151 -> add
+    2:2:void add(java.lang.Object):1155 -> add
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$MapEntry next():1167:1167 -> next
+    1:1:java.lang.Object next():1155 -> next
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$MapEntry previous():1172:1172 -> previous
+    1:1:java.lang.Object previous():1155 -> previous
+    1:2:void remove():1177:1178 -> remove
+    1:1:void set(java.lang.Object):1155:1155 -> set
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1147:1147 -> set
+    2:2:void set(java.lang.Object):1155 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.f.T$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):1409:1410 -> <init>
+    1:1:void add(java.lang.Object):1371:1371 -> add
+    2:2:void add(java.lang.Integer):1406:1406 -> add
+    2:2:void add(java.lang.Object):1371 -> add
+    1:1:int previousInt():1378:1378 -> e
+    1:1:int nextInt():1415:1415 -> i
+    1:1:java.lang.Integer next():1421:1421 -> next
+    1:1:java.lang.Object next():1371 -> next
+    1:1:java.lang.Integer previous():1394:1394 -> previous
+    1:1:java.lang.Object previous():1371 -> previous
+    1:1:void set(java.lang.Object):1371:1371 -> set
+    2:2:void set(java.lang.Integer):1400:1400 -> set
+    2:2:void set(java.lang.Object):1371 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.f.T$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):1425:1425 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$1):1425:1425 -> <init>
+    1:1:boolean contains(int):1441:1441 -> b
+    2:4:int lastInt():1464:1464 -> b
+    1:1:void clear():1453:1453 -> clear
+    1:3:int firstInt():1458:1458 -> d
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int):1475:1475 -> d
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int):1485:1485 -> d
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int):1480:1480 -> e
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1425:1425 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1425:1425 -> iterator
+    3:3:java.util.Iterator iterator():1425:1425 -> iterator
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():1431:1431 -> iterator
+    1:3:boolean remove(int):1446:1448 -> remove
+    1:1:int size():1436:1436 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.f.T$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap,int):771:772 -> <init>
+    1:1:int getIntKey():780:780 -> b
+    1:3:boolean equals(java.lang.Object):810:812 -> equals
+    1:1:java.lang.Integer getKey():804:804 -> getKey
+    1:1:java.lang.Object getKey():766 -> getKey
+    1:1:java.lang.Object getValue():785:785 -> getValue
+    1:1:int hashCode():817:817 -> hashCode
+    1:2:java.lang.Object setValue(java.lang.Object):790:791 -> setValue
+    1:1:java.lang.String toString():822:822 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.f.T$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):1205:1205 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$1):1205:1205 -> <init>
+    1:1:void clear():1309:1309 -> clear
+    1:16:boolean contains(java.lang.Object):1245:1260 -> contains
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry first():1232:1232 -> first
+    1:3:java.lang.Object first():1205 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):1205:1205 -> headSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1222:1222 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):1205 -> headSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1205:1205 -> iterator
+    2:2:java.util.Iterator iterator():1205:1205 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1207:1207 -> iterator
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry last():1238:1238 -> last
+    1:3:java.lang.Object last():1205 -> last
+    1:29:boolean remove(java.lang.Object):1267:1295 -> remove
+    1:1:int size():1304:1304 -> size
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1205:1205 -> subSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1217:1217 -> subSet
+    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1205 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1205:1205 -> tailSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1227:1227 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):1205 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.f.T$f:
+    int index -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap this$0 -> e
+    int next -> b
+    int curr -> c
+    int prev -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$1):967:967 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):992:992 -> <init>
+    3:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):973:994 -> <init>
+    1:1:boolean hasNext():1026:1026 -> hasNext
+    1:1:boolean hasPrevious():1030:1030 -> hasPrevious
+    1:14:void ensureIndexKnown():1034:1047 -> k
+    1:7:int nextEntry():1062:1062 -> l
+    1:7:int previousEntry():1071:1071 -> m
+    1:2:int nextIndex():1052:1053 -> nextIndex
+    1:2:int previousIndex():1057:1058 -> previousIndex
+    1:48:void remove():1080:1127 -> remove
+    49:49:void remove():1121:1121 -> remove
+    50:50:void remove():1081:1081 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.f.T$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceLinkedOpenHashMap):1520:1521 -> <init>
+    1:1:void add(java.lang.Object):1517:1517 -> add
+    1:1:java.lang.Object next():1526:1526 -> next
+    1:1:java.lang.Object previous():1507:1507 -> previous
+    1:1:void set(java.lang.Object):1512:1512 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap -> com.android.tools.r8.u.a.a.a.f.U:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet() -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry -> com.android.tools.r8.u.a.a.a.f.U$a:
+    int getIntKey() -> b
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.f.V:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps -> com.android.tools.r8.u.a.a.a.f.X:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps$EmptyMap EMPTY_MAP -> a
+    1:1:void <clinit>():124:124 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps$EmptyMap -> com.android.tools.r8.u.a.a.a.f.W:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.<init>():41:41 -> <init>
+    1:1:void <init>():46 -> <init>
+    boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.containsKey(int) -> a
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():62:62 -> a
+    void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.clear() -> clear
+    1:1:java.lang.Object clone():95:95 -> clone
+    1:1:java.util.Set entrySet():43:43 -> entrySet
+    1:2:boolean equals(java.lang.Object):110:111 -> equals
+    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.get(int) -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():75:75 -> h
+    1:1:java.util.Set keySet():43:43 -> keySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():80:80 -> keySet
+    1:1:void putAll(java.util.Map):56:56 -> putAll
+    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.size() -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():86:86 -> values
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():86:86 -> values
+    2:2:java.util.Collection values():43 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap -> com.android.tools.r8.u.a.a.a.f.Z:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet entries -> j
+    java.lang.Object[] value -> c
+    float f -> i
+    int[] key -> b
+    int size -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> l
+    boolean containsNullKey -> e
+    int n -> f
+    int maxFill -> g
+    int mask -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keys -> k
+    1:9:void <init>(int,float):91:99 -> <init>
+    10:10:void <init>(int,float):93:93 -> <init>
+    11:11:void <init>(int,float):92:92 -> <init>
+    12:12:void <init>():119:119 -> <init>
+    13:14:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):155:156 -> <init>
+    1:1:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):49:49 -> a
+    2:2:java.lang.Object access$400(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,int):49:49 -> a
+    3:18:int insert(int,java.lang.Object):249:264 -> a
+    3:18:java.lang.Object put(int,java.lang.Object):271 -> a
+    19:21:java.lang.Object put(int,java.lang.Object):272:274 -> a
+    22:31:boolean containsKey(int):344:353 -> a
+    32:33:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet int2ReferenceEntrySet():707:708 -> a
+    32:33:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():49 -> a
+    1:5:void clear():377:381 -> clear
+    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap clone():945:954 -> clone
+    1:10:java.lang.Object clone():49 -> clone
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap clone():947:947 -> clone
+    11:11:java.lang.Object clone():49 -> clone
+    1:5:boolean containsValue(java.lang.Object):360:364 -> containsValue
+    1:7:void rehash(int):907:913 -> d
+    8:8:int realSize():205:205 -> d
+    8:8:void rehash(int):914 -> d
+    9:21:void rehash(int):915:927 -> d
+    1:3:java.lang.Object removeEntry(int):219:221 -> e
+    4:10:void shiftKeys(int):289:295 -> e
+    4:10:java.lang.Object removeEntry(int):222 -> e
+    11:11:java.lang.Object removeEntry(int):223:223 -> e
+    12:17:void shiftKeys(int):298:303 -> e
+    12:17:java.lang.Object removeEntry(int):222 -> e
+    18:18:void shiftKeys(int):300:300 -> e
+    18:18:java.lang.Object removeEntry(int):222 -> e
+    1:11:java.lang.Object get(int):327:337 -> get
+    1:1:int realSize():205:205 -> hashCode
+    1:1:int hashCode():971 -> hashCode
+    2:10:int hashCode():972:980 -> hashCode
+    1:5:java.lang.Object removeNullEntry():228:232 -> i
+    1:1:boolean isEmpty():391:391 -> isEmpty
+    1:1:java.util.Set keySet():49:49 -> keySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():768:769 -> keySet
+    1:1:void putAll(java.util.Map):238:238 -> putAll
+    2:3:void ensureCapacity(int):209:210 -> putAll
+    2:3:void putAll(java.util.Map):238 -> putAll
+    4:4:int size():386:386 -> putAll
+    4:4:void putAll(java.util.Map):240 -> putAll
+    5:5:void putAll(java.util.Map):240:240 -> putAll
+    6:7:void tryCapacity(long):214:215 -> putAll
+    6:7:void putAll(java.util.Map):240 -> putAll
+    8:8:void putAll(java.util.Map):243:243 -> putAll
+    1:12:java.lang.Object remove(int):309:320 -> remove
+    1:1:int size():386:386 -> size
+    1:1:java.util.Collection values():49:49 -> values
+    2:23:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():794:815 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.f.Y:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):794:794 -> <init>
+    1:1:void clear():812:812 -> clear
+    1:1:boolean contains(java.lang.Object):807:807 -> contains
+    1:1:java.util.Iterator iterator():794:794 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():797:797 -> iterator
+    1:1:int size():802:802 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.f.Z$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry entry -> g
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):600:600 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):600:600 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry next():605:605 -> next
+    1:1:java.lang.Object next():600 -> next
+    1:2:void remove():610:611 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.f.Z$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):721:722 -> <init>
+    1:1:int nextInt():727:727 -> i
+    1:1:java.lang.Integer next():733:733 -> next
+    1:1:java.lang.Object next():720 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.f.Z$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):737:737 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):737:737 -> <init>
+    1:1:boolean contains(int):750:750 -> b
+    1:1:void clear():762:762 -> clear
+    1:1:java.util.Iterator iterator():737:737 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():740:740 -> iterator
+    1:3:boolean remove(int):755:757 -> remove
+    1:1:int size():745:745 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.f.Z$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,int):430:431 -> <init>
+    1:1:int getIntKey():439:439 -> b
+    1:3:boolean equals(java.lang.Object):469:471 -> equals
+    1:1:java.lang.Integer getKey():463:463 -> getKey
+    1:1:java.lang.Object getKey():425 -> getKey
+    1:1:java.lang.Object getValue():444:444 -> getValue
+    1:1:int hashCode():476:476 -> hashCode
+    1:2:java.lang.Object setValue(java.lang.Object):449:450 -> setValue
+    1:1:java.lang.String toString():481:481 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.f.Z$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):625:625 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):625:625 -> <init>
+    1:1:void clear():701:701 -> clear
+    1:16:boolean contains(java.lang.Object):637:652 -> contains
+    1:1:java.util.Iterator iterator():625:625 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():627:627 -> iterator
+    1:29:boolean remove(java.lang.Object):659:687 -> remove
+    1:1:int size():696:696 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.f.Z$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
+    int last -> b
+    int pos -> a
+    boolean mustReturnNullKey -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> f
+    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):486:509 -> <init>
+    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):486:486 -> <init>
+    1:1:boolean hasNext():517:517 -> hasNext
+    1:19:int nextEntry():521:521 -> k
+    1:5:void remove():576:580 -> remove
+    6:12:void shiftKeys(int):553:559 -> remove
+    6:12:void remove():580 -> remove
+    13:14:void remove():587:588 -> remove
+    15:24:void shiftKeys(int):562:571 -> remove
+    15:24:void remove():580 -> remove
+    25:25:void shiftKeys(int):564:564 -> remove
+    25:25:void remove():580 -> remove
+    26:27:void remove():583:584 -> remove
+    28:28:void remove():576:576 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.f.Z$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):782:783 -> <init>
+    1:1:java.lang.Object next():788:788 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap -> com.android.tools.r8.u.a.a.a.f.b0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet() -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int) -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int) -> b
+    int firstIntKey() -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int) -> c
+    int lastIntKey() -> g
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap$FastSortedEntrySet -> com.android.tools.r8.u.a.a.a.f.a0:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps -> com.android.tools.r8.u.a.a.a.f.d0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps$EmptySortedMap EMPTY_MAP -> a
+    1:1:void <clinit>():185:185 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps$EmptySortedMap -> com.android.tools.r8.u.a.a.a.f.c0:
+    1:1:void <init>():60:60 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():71:71 -> a
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():57 -> a
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():71:71 -> a
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):95:95 -> a
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):107:107 -> b
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):101:101 -> c
+    2:2:int firstIntKey():112:112 -> c
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():84:84 -> entrySet
+    1:1:java.util.Set entrySet():57 -> entrySet
+    1:1:int firstIntKey():112:112 -> firstKey
+    1:1:java.lang.Integer firstKey():165 -> firstKey
+    1:1:java.lang.Object firstKey():57 -> firstKey
+    1:1:int lastIntKey():117:117 -> g
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():84:84 -> h
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():57 -> h
+    1:1:java.util.SortedMap headMap(java.lang.Object):57:57 -> headMap
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(java.lang.Integer):129:129 -> headMap
+    2:2:java.util.SortedMap headMap(java.lang.Object):57 -> headMap
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):101:101 -> headMap
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(java.lang.Integer):129 -> headMap
+    3:3:java.util.SortedMap headMap(java.lang.Object):57 -> headMap
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():57 -> keySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
+    3:3:java.util.Set keySet():57 -> keySet
+    1:1:int lastIntKey():117:117 -> lastKey
+    1:1:java.lang.Integer lastKey():177 -> lastKey
+    1:1:java.lang.Object lastKey():57 -> lastKey
+    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57:57 -> subMap
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(java.lang.Integer,java.lang.Integer):153:153 -> subMap
+    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57 -> subMap
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):95:95 -> subMap
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(java.lang.Integer,java.lang.Integer):153 -> subMap
+    3:3:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57 -> subMap
+    1:1:java.util.SortedMap tailMap(java.lang.Object):57:57 -> tailMap
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(java.lang.Integer):141:141 -> tailMap
+    2:2:java.util.SortedMap tailMap(java.lang.Object):57 -> tailMap
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):107:107 -> tailMap
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(java.lang.Integer):141 -> tailMap
+    3:3:java.util.SortedMap tailMap(java.lang.Object):57 -> tailMap
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList -> com.android.tools.r8.u.a.a.a.f.f0:
+    int size -> b
+    1:3:void <init>(int):81:83 -> <init>
+    4:4:void <init>(int):82:82 -> <init>
+    5:5:void <init>():90:90 -> <init>
+    6:8:void <init>(int[],int,int):149:151 -> <init>
+    1:2:boolean add(int):266:267 -> a
+    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.ensureOffsetLength(int[],int,int):389:389 -> a
+    3:3:void getElements(int,int[],int,int):393 -> a
+    4:4:void getElements(int,int[],int,int):394:394 -> a
+    5:5:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):73:73 -> a
+    5:5:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.ensureOffsetLength(int[],int,int):389 -> a
+    5:5:void getElements(int,int[],int,int):393 -> a
+    6:6:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):72:72 -> a
+    6:6:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.ensureOffsetLength(int[],int,int):389 -> a
+    6:6:void getElements(int,int[],int,int):393 -> a
+    7:7:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):71:71 -> a
+    7:7:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.ensureOffsetLength(int[],int,int):389 -> a
+    7:7:void getElements(int,int[],int,int):393 -> a
+    8:10:void removeElements(int,int):407:409 -> a
+    11:12:int[] toArray(int[]):436:437 -> a
+    13:21:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):443:451 -> a
+    22:28:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):458:464 -> a
+    1:5:void add(int,int):256:260 -> b
+    1:4:int set(int,int):313:313 -> c
+    1:1:void clear():321:321 -> clear
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList clone():549:551 -> clone
+    1:3:java.lang.Object clone():48 -> clone
+    1:5:int removeInt(int):294:294 -> f
+    1:3:int getInt(int):274:274 -> g
+    1:3:boolean rem(int):304:306 -> i
+    1:1:boolean isEmpty():339:339 -> isEmpty
+    1:2:int indexOf(int):280:281 -> l
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):493:494 -> listIterator
+    1:2:java.util.ListIterator listIterator(int):48 -> listIterator
+    1:2:int lastIndexOf(int):287:288 -> m
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):493:494 -> n
+    1:1:void grow(int):250:250 -> o
+    2:5:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.grow(int[],int,int):204:207 -> o
+    2:5:void grow(int):250 -> o
+    6:6:void grow(int):250:250 -> o
+    1:6:boolean removeAll(java.util.Collection):482:487 -> removeAll
+    1:1:int size():327:327 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList$1 -> com.android.tools.r8.u.a.a.a.f.e0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList this$0 -> d
+    int last -> b
+    int val$index -> c
+    int pos -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList,int):494:495 -> <init>
+    1:2:void add(int):524:525 -> a
+    1:3:void set(int):529:529 -> b
+    1:3:int previousInt():511:511 -> e
+    1:1:boolean hasNext():498:498 -> hasNext
+    1:1:boolean hasPrevious():502:502 -> hasPrevious
+    1:3:int nextInt():506:506 -> i
+    1:1:int nextIndex():516:516 -> nextIndex
+    1:1:int previousIndex():520:520 -> previousIndex
+    1:10:void remove():534:534 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet -> com.android.tools.r8.u.a.a.a.f.h0:
+    int size -> b
+    1:2:void <init>():55:56 -> <init>
+    3:4:void <init>(int):65:66 -> <init>
+    5:8:void <init>(int[],int):104:107 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> a
+    2:10:boolean add(int):164:172 -> a
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> b
+    2:2:boolean contains(int):143:143 -> b
+    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> c
+    1:1:void clear():178:178 -> clear
+    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet clone():201:205 -> clone
+    1:5:java.lang.Object clone():29 -> clone
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet clone():203:203 -> clone
+    6:6:java.lang.Object clone():29 -> clone
+    1:1:boolean isEmpty():183:183 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():119:119 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():119:119 -> iterator
+    2:2:java.util.Iterator iterator():29 -> iterator
+    1:2:int findKey(int):111:112 -> j
+    1:6:boolean remove(int):153:158 -> remove
+    1:1:int size():148:148 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet$1 -> com.android.tools.r8.u.a.a.a.f.g0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet this$0 -> b
+    int next -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):119:120 -> <init>
+    1:1:boolean hasNext():124:124 -> hasNext
+    1:3:int nextInt():129:129 -> i
+    1:2:void remove():135:136 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays -> com.android.tools.r8.u.a.a.a.f.i0:
+    int[] EMPTY_ARRAY -> a
+    1:1:void <clinit>():100:100 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator -> com.android.tools.r8.u.a.a.a.f.j0:
+    int previousInt() -> e
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection -> com.android.tools.r8.u.a.a.a.f.k0:
+    boolean add(int) -> a
+    int[] toIntArray() -> a
+    boolean contains(int) -> b
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections -> com.android.tools.r8.u.a.a.a.f.n0:
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):536:536 -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections$EmptyCollection -> com.android.tools.r8.u.a.a.a.f.l0:
+    1:1:void <init>():39:39 -> <init>
+    1:1:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):96:96 -> a
+    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
+    boolean contains(int) -> b
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():38:38 -> iterator
+    2:2:java.util.Iterator iterator():38:38 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():55:55 -> iterator
+    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
+    1:1:java.lang.Object[] toArray():49:49 -> toArray
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections$UnmodifiableCollection -> com.android.tools.r8.u.a.a.a.f.m0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection collection -> a
+    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):369:371 -> <init>
+    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):370:370 -> <init>
+    1:1:boolean add(int):376:376 -> a
+    2:2:int[] toIntArray():470:470 -> a
+    1:1:boolean add(java.lang.Object):365:365 -> add
+    2:2:boolean add(java.lang.Integer):453:453 -> add
+    2:2:boolean add(java.lang.Object):365 -> add
+    1:1:boolean addAll(java.util.Collection):437:437 -> addAll
+    1:1:boolean contains(int):396:396 -> b
+    1:1:void clear():417:417 -> clear
+    1:1:boolean contains(java.lang.Object):459:459 -> contains
+    1:1:boolean containsAll(java.util.Collection):432:432 -> containsAll
+    1:1:boolean equals(java.lang.Object):523:523 -> equals
+    1:1:int hashCode():517:517 -> hashCode
+    1:1:boolean isEmpty():391:391 -> isEmpty
+    1:1:java.util.Iterator iterator():365:365 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():400:400 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator):830:830 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():400 -> iterator
+    1:1:boolean remove(java.lang.Object):465:465 -> remove
+    1:1:boolean removeAll(java.util.Collection):442:442 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):447:447 -> retainAll
+    1:1:int size():386:386 -> size
+    1:1:java.lang.Object[] toArray(java.lang.Object[]):422:422 -> toArray
+    2:2:java.lang.Object[] toArray():427:427 -> toArray
+    1:1:java.lang.String toString():512:512 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator -> com.android.tools.r8.u.a.a.a.f.o0:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator -> com.android.tools.r8.u.a.a.a.f.p0:
+    int nextInt() -> i
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators -> com.android.tools.r8.u.a.a.a.f.t0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$EmptyIterator EMPTY_ITERATOR -> a
+    1:1:void <clinit>():103:103 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$EmptyIterator -> com.android.tools.r8.u.a.a.a.f.q0:
+    1:1:void <init>():42:42 -> <init>
+    1:1:java.lang.Object clone():87:87 -> clone
+    1:1:int previousInt():62:62 -> e
+    1:1:int nextInt():57:57 -> i
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$SingletonIterator -> com.android.tools.r8.u.a.a.a.f.r0:
+    int curr -> b
+    int element -> a
+    1:2:void <init>(int):110:111 -> <init>
+    1:4:int previousInt():133:133 -> e
+    1:1:boolean hasNext():116:116 -> hasNext
+    1:1:boolean hasPrevious():121:121 -> hasPrevious
+    1:4:int nextInt():126:126 -> i
+    1:1:int nextIndex():140:140 -> nextIndex
+    1:1:int previousIndex():145:145 -> previousIndex
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$UnmodifiableIterator -> com.android.tools.r8.u.a.a.a.f.s0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator i -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator):807:808 -> <init>
+    1:1:boolean hasNext():813:813 -> hasNext
+    1:1:int nextInt():818:818 -> i
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList -> com.android.tools.r8.u.a.a.a.f.u0:
+    boolean add(int) -> a
+    boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList) -> a
+    void getElements(int,int[],int,int) -> a
+    void removeElements(int,int) -> a
+    void add(int,int) -> b
+    int set(int,int) -> c
+    int removeInt(int) -> f
+    int getInt(int) -> g
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator -> com.android.tools.r8.u.a.a.a.f.v0:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists -> com.android.tools.r8.u.a.a.a.f.x0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$EmptyList EMPTY_LIST -> a
+    1:1:void <clinit>():323:323 -> <clinit>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList singleton(int):478:478 -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$1 -> com.android.tools.r8.u.a.a.a.f.w0:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$EmptyList -> com.android.tools.r8.u.a.a.a.f.x0$a:
+    1:1:void <init>():65:65 -> <init>
+    1:1:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):110:110 -> a
+    2:2:boolean add(java.lang.Integer):156:156 -> a
+    3:4:void getElements(int,int[],int,int):263:264 -> a
+    5:5:void removeElements(int,int):269:269 -> a
+    1:1:void add(int,java.lang.Object):62:62 -> add
+    2:2:void add(int,java.lang.Integer):132:132 -> add
+    2:2:void add(int,java.lang.Object):62 -> add
+    3:3:boolean add(java.lang.Object):62:62 -> add
+    4:4:boolean add(java.lang.Integer):156:156 -> add
+    4:4:boolean add(java.lang.Object):62 -> add
+    1:1:boolean addAll(int,java.util.Collection):105:105 -> addAll
+    1:1:void add(int,int):85:85 -> b
+    1:1:int set(int,int):90:90 -> c
+    1:1:java.lang.Object clone():295:295 -> clone
+    1:1:int compareTo(java.lang.Object):62:62 -> compareTo
+    2:2:int compareTo(java.util.List):290:290 -> compareTo
+    2:2:int compareTo(java.lang.Object):62 -> compareTo
+    1:1:boolean equals(java.lang.Object):306:306 -> equals
+    1:1:int removeInt(int):80:80 -> f
+    1:1:int getInt(int):70:70 -> g
+    1:1:java.lang.Integer get(int):144:144 -> get
+    1:1:java.lang.Object get(int):62 -> get
+    1:1:boolean rem(int):75:75 -> i
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():62 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():62 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
+    4:4:java.util.Iterator iterator():62 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():208:208 -> listIterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():208:208 -> listIterator
+    2:2:java.util.ListIterator listIterator():62 -> listIterator
+    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):216:217 -> listIterator
+    3:4:java.util.ListIterator listIterator(int):62 -> listIterator
+    1:1:java.lang.Integer remove(int):180:180 -> remove
+    1:1:java.lang.Object remove(int):62 -> remove
+    1:1:java.lang.Object set(int,java.lang.Object):62:62 -> set
+    2:2:java.lang.Integer set(int,java.lang.Integer):168:168 -> set
+    2:2:java.lang.Object set(int,java.lang.Object):62 -> set
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):246:246 -> subList
+    1:1:java.util.List subList(int,int):62 -> subList
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$Singleton -> com.android.tools.r8.u.a.a.a.f.y0:
+    int element -> a
+    1:1:void <init>(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$1):332:332 -> <init>
+    2:3:void <init>(int):336:337 -> <init>
+    1:2:int[] toIntArray():364:365 -> a
+    3:3:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):419:419 -> a
+    4:4:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):424:424 -> a
+    5:5:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):429:429 -> a
+    6:6:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):434:434 -> a
+    1:1:boolean addAll(int,java.util.Collection):399:399 -> addAll
+    2:2:boolean addAll(java.util.Collection):404:404 -> addAll
+    1:1:boolean contains(int):358:358 -> b
+    1:1:void clear():459:459 -> clear
+    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):390:393 -> e
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):392:392 -> e
+    1:1:int removeInt(int):353:353 -> f
+    1:2:int getInt(int):342:343 -> g
+    1:1:boolean rem(int):348:348 -> i
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():332 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
+    3:3:java.util.Iterator iterator():332 -> iterator
+    1:1:java.util.ListIterator listIterator():332:332 -> listIterator
+    2:2:java.util.ListIterator listIterator(int):332:332 -> listIterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():371:371 -> listIterator
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.singleton(int):159:159 -> listIterator
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():371 -> listIterator
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):382:383 -> n
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):381:381 -> n
+    1:1:boolean removeAll(java.util.Collection):409:409 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):414:414 -> retainAll
+    1:1:java.util.List subList(int,int):332:332 -> subList
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet -> com.android.tools.r8.u.a.a.a.f.B0:
+    float f -> g
+    int size -> f
+    int n -> d
+    int[] key -> a
+    int maxFill -> e
+    int mask -> b
+    boolean containsNull -> c
+    1:8:void <init>(int,float):77:84 -> <init>
+    9:9:void <init>(int,float):79:79 -> <init>
+    10:10:void <init>(int,float):78:78 -> <init>
+    11:11:void <init>():104:104 -> <init>
+    1:2:void tryCapacity(long):271:272 -> a
+    3:3:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):277:277 -> a
+    4:5:void ensureCapacity(int):266:267 -> a
+    4:5:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):277 -> a
+    6:6:int size():412:412 -> a
+    6:6:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):280 -> a
+    7:10:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):280:283 -> a
+    11:24:boolean add(int):302:315 -> a
+    1:1:boolean addAll(java.util.Collection):289:289 -> addAll
+    2:3:void ensureCapacity(int):266:267 -> addAll
+    2:3:boolean addAll(java.util.Collection):289 -> addAll
+    4:4:int size():412:412 -> addAll
+    4:4:boolean addAll(java.util.Collection):292 -> addAll
+    5:8:boolean addAll(java.util.Collection):292:295 -> addAll
+    1:9:boolean contains(int):382:390 -> b
+    1:4:void clear():404:407 -> clear
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet clone():672:677 -> clone
+    1:6:java.lang.Object clone():40 -> clone
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet clone():674:674 -> clone
+    7:7:java.lang.Object clone():40 -> clone
+    1:1:int realSize():262:262 -> hashCode
+    1:1:int hashCode():694 -> hashCode
+    2:4:int hashCode():695:697 -> hashCode
+    1:1:boolean isEmpty():417:417 -> isEmpty
+    1:1:java.util.Iterator iterator():40:40 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():547:547 -> iterator
+    1:5:void rehash(int):639:643 -> j
+    6:6:int realSize():262:262 -> j
+    6:6:void rehash(int):644 -> j
+    7:16:void rehash(int):645:654 -> j
+    1:1:boolean removeEntry(int):348:348 -> k
+    2:7:void shiftKeys(int):331:336 -> k
+    2:7:boolean removeEntry(int):349 -> k
+    8:8:boolean removeEntry(int):350:350 -> k
+    9:13:void shiftKeys(int):339:343 -> k
+    9:13:boolean removeEntry(int):349 -> k
+    14:14:void shiftKeys(int):341:341 -> k
+    14:14:boolean removeEntry(int):349 -> k
+    1:1:boolean remove(int):365:365 -> remove
+    2:5:boolean removeNullEntry():355:358 -> remove
+    2:5:boolean remove(int):365 -> remove
+    6:13:boolean remove(int):369:376 -> remove
+    1:1:int size():412:412 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$1 -> com.android.tools.r8.u.a.a.a.f.z0:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$SetIterator -> com.android.tools.r8.u.a.a.a.f.A0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet this$0 -> f
+    int last -> b
+    int pos -> a
+    boolean mustReturnNull -> d
+    1:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet):446:466 -> <init>
+    22:22:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$1):446:446 -> <init>
+    1:1:boolean hasNext():474:474 -> hasNext
+    1:16:int nextInt():478:478 -> i
+    1:5:void remove():528:532 -> remove
+    6:11:void shiftKeys(int):507:512 -> remove
+    6:11:void remove():532 -> remove
+    12:13:void remove():539:540 -> remove
+    14:22:void shiftKeys(int):515:523 -> remove
+    14:22:void remove():532 -> remove
+    23:23:void shiftKeys(int):517:517 -> remove
+    23:23:void remove():532 -> remove
+    24:25:void remove():535:536 -> remove
+    26:26:void remove():528:528 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet -> com.android.tools.r8.u.a.a.a.f.C0:
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets -> com.android.tools.r8.u.a.a.a.f.E0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets$EmptySet EMPTY_SET -> a
+    1:1:void <clinit>():76:76 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets$EmptySet -> com.android.tools.r8.u.a.a.a.f.D0:
+    1:1:void <init>():42:42 -> <init>
+    1:1:java.lang.Object clone():52:52 -> clone
+    1:1:boolean equals(java.lang.Object):58:58 -> equals
+    1:1:boolean rem(int):64:64 -> i
+    1:1:boolean remove(int):47:47 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet -> com.android.tools.r8.u.a.a.a.f.F0:
+    int lastInt() -> b
+    int firstInt() -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int) -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int) -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int) -> e
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets -> com.android.tools.r8.u.a.a.a.f.H0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets$EmptySet EMPTY_SET -> a
+    1:1:void <clinit>():168:168 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets$EmptySet -> com.android.tools.r8.u.a.a.a.f.G0:
+    1:1:void <init>():42:42 -> <init>
+    1:1:int lastInt():90:90 -> b
+    1:1:java.lang.Object clone():155:155 -> clone
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int):68:68 -> d
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int):80:80 -> d
+    3:3:int firstInt():85:85 -> d
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int):74:74 -> e
+    1:1:java.lang.Integer first():139:139 -> first
+    1:1:java.lang.Object first():39 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):39:39 -> headSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(java.lang.Integer):117:117 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):39 -> headSet
+    1:1:java.lang.Integer last():150:150 -> last
+    1:1:java.lang.Object last():39 -> last
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):39:39 -> subSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(java.lang.Integer,java.lang.Integer):106:106 -> subSet
+    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):39 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):39:39 -> tailSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(java.lang.Integer):128:128 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):39 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntStack -> com.android.tools.r8.u.a.a.a.f.I0:
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceMap -> com.android.tools.r8.u.a.a.a.g.a:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.<init>():44:44 -> <init>
+    1:1:void <init>():45 -> <init>
+    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(long,java.lang.Object) -> a
+    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.remove(long) -> a
+    1:1:boolean com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.containsKey(java.lang.Object):105:105 -> containsKey
+    1:1:boolean com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.containsKey(java.lang.Object):0 -> containsKey
+    1:1:java.util.Set entrySet():42:42 -> entrySet
+    1:3:boolean equals(java.lang.Object):296:298 -> equals
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.size():386:386 -> equals
+    4:4:boolean equals(java.lang.Object):298 -> equals
+    5:5:boolean equals(java.lang.Object):299:299 -> equals
+    1:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.get(java.lang.Object):120:121 -> get
+    1:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.get(java.lang.Object):0 -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.long2ReferenceEntrySet():707:708 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.long2ReferenceEntrySet():49 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273 -> h
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):135:137 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):0 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Object,java.lang.Object):41 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    1:7:void putAll(java.util.Map):70:76 -> putAll
+    8:8:long com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry.getLongKey():439:439 -> putAll
+    8:8:void putAll(java.util.Map):76 -> putAll
+    9:15:void putAll(java.util.Map):76:82 -> putAll
+    16:18:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):135:137 -> putAll
+    16:18:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):0 -> putAll
+    16:18:void putAll(java.util.Map):82 -> putAll
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.remove(java.lang.Object):153:155 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.String toString():304:306 -> toString
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.size():386:386 -> toString
+    4:4:java.lang.String toString():306 -> toString
+    5:10:java.lang.String toString():309:314 -> toString
+    11:11:long com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry.getLongKey():439:439 -> toString
+    11:11:java.lang.String toString():314 -> toString
+    12:18:java.lang.String toString():314:320 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongBidirectionalIterator -> com.android.tools.r8.u.a.a.a.g.b:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.<init>():34:34 -> <init>
+    1:1:void <init>():34 -> <init>
+    long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.nextLong() -> a
+    long previousLong() -> b
+    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.next():57:57 -> next
+    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.next():0 -> next
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.next():33 -> next
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.next():0 -> next
+    1:1:java.lang.Long previous():56:56 -> previous
+    1:1:java.lang.Object previous():33 -> previous
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongCollection -> com.android.tools.r8.u.a.a.a.g.c:
+    1:1:void <init>():37:37 -> <init>
+    1:1:boolean add(long):68:68 -> a
+    1:1:boolean add(java.lang.Object):36:36 -> add
+    2:2:boolean add(java.lang.Long):114:114 -> add
+    2:2:boolean add(java.lang.Object):36 -> add
+    boolean contains(long) -> b
+    1:4:boolean rem(long):94:97 -> c
+    1:1:boolean contains(java.lang.Object):129:129 -> contains
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator() -> e
+    1:1:boolean remove(java.lang.Object):143:143 -> remove
+    1:14:java.lang.String toString():206:219 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList -> com.android.tools.r8.u.a.a.a.g.f:
+    1:1:void <init>():33:33 -> <init>
+    void add(int,long) -> a
+    void removeElements(int,int) -> a
+    1:1:void add(int,java.lang.Object):32:32 -> add
+    2:2:void add(int,java.lang.Long):577:577 -> add
+    2:2:void add(int,java.lang.Object):32 -> add
+    1:5:boolean addAll(int,java.util.Collection):120:124 -> addAll
+    6:6:void add(int,java.lang.Long):577:577 -> addAll
+    6:6:boolean addAll(int,java.util.Collection):124 -> addAll
+    7:7:boolean addAll(java.util.Collection):137:137 -> addAll
+    long set(int,long) -> b
+    1:1:boolean contains(long):274:274 -> b
+    2:2:int compareTo(java.util.List):464:464 -> b
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
+    3:3:int compareTo(java.util.List):465 -> b
+    4:4:int compareTo(java.util.List):466:466 -> b
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
+    5:5:int compareTo(java.util.List):466 -> b
+    6:11:int compareTo(java.util.List):469:474 -> b
+    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
+    12:12:int compareTo(java.util.List):476 -> b
+    13:18:int compareTo(java.util.List):476:481 -> b
+    1:1:void clear():403:403 -> clear
+    1:1:int compareTo(java.lang.Object):32:32 -> compareTo
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> d
+    1:1:int indexOf(long):279 -> d
+    2:4:int indexOf(long):281:283 -> d
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> e
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> e
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():32 -> e
+    2:6:int lastIndexOf(long):290:294 -> e
+    7:10:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):310:313 -> e
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):312:312 -> e
+    1:5:boolean equals(java.lang.Object):430:434 -> equals
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> equals
+    6:6:boolean equals(java.lang.Object):435 -> equals
+    7:7:boolean equals(java.lang.Object):436:436 -> equals
+    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> equals
+    8:8:boolean equals(java.lang.Object):436 -> equals
+    9:9:boolean equals(java.lang.Object):438:438 -> equals
+    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> equals
+    10:10:boolean equals(java.lang.Object):441 -> equals
+    11:13:boolean equals(java.lang.Object):441:443 -> equals
+    14:14:boolean valEquals(java.lang.Object,java.lang.Object):407:407 -> equals
+    14:14:boolean equals(java.lang.Object):443 -> equals
+    1:1:java.lang.Long get(int):605:605 -> get
+    1:1:java.lang.Object get(int):32 -> get
+    long removeLong(int) -> h
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> hashCode
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> hashCode
+    1:1:int hashCode():418 -> hashCode
+    2:5:int hashCode():419:422 -> hashCode
+    1:1:void ensureIndex(int):47:47 -> i
+    2:2:void ensureIndex(int):46:46 -> i
+    1:1:int indexOf(java.lang.Object):619:619 -> indexOf
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> iterator
+    1:1:java.util.Iterator iterator():32 -> iterator
+    1:1:void ensureRestrictedIndex(int):62:62 -> j
+    2:2:void ensureRestrictedIndex(int):61:61 -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int) -> k
+    1:1:int lastIndexOf(java.lang.Object):633:633 -> lastIndexOf
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> listIterator
+    1:1:java.util.ListIterator listIterator():32 -> listIterator
+    1:1:java.lang.Long remove(int):647:647 -> remove
+    1:1:java.lang.Object remove(int):32 -> remove
+    1:1:java.lang.Object set(int,java.lang.Object):32:32 -> set
+    2:2:java.lang.Long set(int,java.lang.Long):591:591 -> set
+    2:2:java.lang.Object set(int,java.lang.Object):32 -> set
+    1:1:java.util.List subList(int,int):32:32 -> subList
+    1:1:java.lang.String toString():708:708 -> toString
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> toString
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> toString
+    2:2:java.lang.String toString():709 -> toString
+    3:14:java.lang.String toString():710:721 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList -> com.android.tools.r8.u.a.a.a.g.e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList l -> a
+    int from -> b
+    int to -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():725:725 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList,int,int):734:737 -> <init>
+    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList):725:725 -> a
+    2:4:boolean add(long):749:751 -> a
+    5:8:void add(int,long):757:760 -> a
+    9:13:void removeElements(int,int):803:807 -> a
+    1:1:void add(int,java.lang.Object):725:725 -> add
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.add(int,java.lang.Long):577:577 -> add
+    2:2:void add(int,java.lang.Object):725 -> add
+    1:3:boolean addAll(int,java.util.Collection):765:767 -> addAll
+    1:2:long set(int,long):785:786 -> b
+    1:2:long getLong(int):772:773 -> c
+    3:7:boolean rem(long):887:891 -> c
+    1:1:int compareTo(java.lang.Object):725:725 -> compareTo
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.listIterator():192:192 -> e
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.iterator():180 -> e
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():725 -> e
+    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):879:882 -> e
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):881:881 -> e
+    1:3:boolean assertRange():741:743 -> f
+    1:2:long getLong(int):772:773 -> get
+    1:2:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.get(int):605 -> get
+    1:2:java.lang.Object get(int):725 -> get
+    3:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.get(int):605:605 -> get
+    3:3:java.lang.Object get(int):725 -> get
+    1:3:long removeLong(int):778:780 -> h
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.listIterator():192:192 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.iterator():180 -> iterator
+    1:1:java.util.Iterator iterator():725 -> iterator
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):820:821 -> k
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.listIterator():192:192 -> listIterator
+    1:1:java.util.ListIterator listIterator():725 -> listIterator
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):820:821 -> listIterator
+    2:3:java.util.ListIterator listIterator(int):725 -> listIterator
+    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.remove(int):647:647 -> remove
+    1:1:java.lang.Object remove(int):725 -> remove
+    1:1:java.lang.Object set(int,java.lang.Object):725:725 -> set
+    2:2:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.set(int,java.lang.Long):591:591 -> set
+    2:2:java.lang.Object set(int,java.lang.Object):725 -> set
+    3:4:long set(int,long):785:786 -> set
+    3:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.set(int,java.lang.Long):591 -> set
+    3:4:java.lang.Object set(int,java.lang.Object):725 -> set
+    5:5:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.set(int,java.lang.Long):591:591 -> set
+    5:5:java.lang.Object set(int,java.lang.Object):725 -> set
+    1:1:int size():791:791 -> size
+    1:1:java.util.List subList(int,int):725:725 -> subList
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList$1 -> com.android.tools.r8.u.a.a.a.g.d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList this$0 -> d
+    boolean $assertionsDisabled -> e
+    int last -> b
+    int val$index -> c
+    int pos -> a
+    1:1:void <clinit>():821:821 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList,int):821:822 -> <init>
+    1:3:long nextLong():833:833 -> a
+    4:8:void add(long):851:851 -> a
+    1:3:long previousLong():838:838 -> b
+    4:6:void set(long):858:858 -> b
+    1:1:boolean hasNext():825:825 -> hasNext
+    1:1:boolean hasPrevious():829:829 -> hasPrevious
+    1:1:int nextIndex():843:843 -> nextIndex
+    1:1:int previousIndex():847:847 -> previousIndex
+    1:11:void remove():863:863 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongListIterator -> com.android.tools.r8.u.a.a.a.g.g:
+    1:1:void <init>():35:35 -> <init>
+    void add(long) -> a
+    1:1:void add(java.lang.Object):34:34 -> add
+    2:2:void add(java.lang.Long):83:83 -> add
+    2:2:void add(java.lang.Object):34 -> add
+    void set(long) -> b
+    1:1:void set(java.lang.Object):34:34 -> set
+    2:2:void set(java.lang.Long):70:70 -> set
+    2:2:void set(java.lang.Object):34 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongSet -> com.android.tools.r8.u.a.a.a.g.h:
+    1:1:void <init>():32:32 -> <init>
+    1:1:boolean rem(long):87:87 -> c
+    2:4:boolean com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$KeySet.remove(long):755:757 -> c
+    2:4:boolean rem(long):87 -> c
+    1:4:boolean equals(java.lang.Object):41:44 -> equals
+    1:7:int hashCode():57:63 -> hashCode
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap -> com.android.tools.r8.u.a.a.a.g.k:
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$Entry -> com.android.tools.r8.u.a.a.a.g.i:
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.g.j:
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap -> com.android.tools.r8.u.a.a.a.g.m:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> k
+    java.lang.Object[] value -> b
+    float f -> h
+    long[] key -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$FastEntrySet entries -> i
+    int maxFill -> f
+    int size -> g
+    int n -> e
+    int mask -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongSet keys -> j
+    boolean containsNullKey -> d
+    1:9:void <init>(int,float):91:99 -> <init>
+    10:10:void <init>(int,float):93:93 -> <init>
+    11:11:void <init>(int,float):92:92 -> <init>
+    1:1:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):49:49 -> a
+    2:2:java.lang.Object access$400(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,int):49:49 -> a
+    3:18:int insert(long,java.lang.Object):249:264 -> a
+    3:18:java.lang.Object put(long,java.lang.Object):271 -> a
+    19:20:java.lang.Object put(long,java.lang.Object):273:274 -> a
+    21:32:java.lang.Object remove(long):309:320 -> a
+    1:10:boolean containsKey(long):344:353 -> b
+    1:11:java.lang.Object get(long):327:337 -> c
+    1:5:void clear():377:381 -> clear
+    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap clone():945:954 -> clone
+    1:10:java.lang.Object clone():49 -> clone
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap clone():947:947 -> clone
+    11:11:java.lang.Object clone():49 -> clone
+    1:5:boolean containsValue(java.lang.Object):360:364 -> containsValue
+    1:7:void rehash(int):907:913 -> d
+    8:8:int realSize():205:205 -> d
+    8:8:void rehash(int):914 -> d
+    9:21:void rehash(int):915:927 -> d
+    1:3:java.lang.Object removeEntry(int):219:221 -> e
+    4:10:void shiftKeys(int):289:295 -> e
+    4:10:java.lang.Object removeEntry(int):222 -> e
+    11:11:java.lang.Object removeEntry(int):223:223 -> e
+    12:17:void shiftKeys(int):298:303 -> e
+    12:17:java.lang.Object removeEntry(int):222 -> e
+    18:18:void shiftKeys(int):300:300 -> e
+    18:18:java.lang.Object removeEntry(int):222 -> e
+    1:1:int realSize():205:205 -> hashCode
+    1:1:int hashCode():971 -> hashCode
+    2:10:int hashCode():972:980 -> hashCode
+    1:5:java.lang.Object removeNullEntry():228:232 -> i
+    1:1:boolean isEmpty():391:391 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongSet keySet():768:769 -> keySet
+    1:2:java.util.Set keySet():49 -> keySet
+    1:1:void putAll(java.util.Map):238:238 -> putAll
+    2:3:void ensureCapacity(int):209:210 -> putAll
+    2:3:void putAll(java.util.Map):238 -> putAll
+    4:4:int size():386:386 -> putAll
+    4:4:void putAll(java.util.Map):240 -> putAll
+    5:5:void putAll(java.util.Map):240:240 -> putAll
+    6:7:void tryCapacity(long):214:215 -> putAll
+    6:7:void putAll(java.util.Map):240 -> putAll
+    8:8:void putAll(java.util.Map):243:243 -> putAll
+    1:1:int size():386:386 -> size
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():794:815 -> values
+    1:22:java.util.Collection values():49 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.g.l:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):794:794 -> <init>
+    1:1:void clear():812:812 -> clear
+    1:1:boolean contains(java.lang.Object):807:807 -> contains
+    1:1:java.util.Iterator iterator():794:794 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():797:797 -> iterator
+    1:1:int size():802:802 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.g.m$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry entry -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> h
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):600:600 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1):600:600 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry next():605:605 -> next
+    1:1:java.lang.Object next():600 -> next
+    1:2:void remove():610:611 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.g.m$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):721:722 -> <init>
+    1:1:long nextLong():727:727 -> a
+    1:1:java.lang.Long next():733:733 -> next
+    1:1:java.lang.Object next():720 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.g.m$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):737:737 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1):737:737 -> <init>
+    1:1:boolean contains(long):750:750 -> b
+    1:1:void clear():762:762 -> clear
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():740:740 -> e
+    1:1:java.util.Iterator iterator():737:737 -> iterator
+    1:1:int size():745:745 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.g.m$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,int):430:431 -> <init>
+    1:3:boolean equals(java.lang.Object):469:471 -> equals
+    1:1:java.lang.Long getKey():463:463 -> getKey
+    1:1:java.lang.Object getKey():425 -> getKey
+    1:1:java.lang.Object getValue():444:444 -> getValue
+    1:1:int hashCode():476:476 -> hashCode
+    1:2:java.lang.Object setValue(java.lang.Object):449:450 -> setValue
+    1:1:java.lang.String toString():481:481 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.g.m$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):625:625 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1):625:625 -> <init>
+    1:1:void clear():701:701 -> clear
+    1:16:boolean contains(java.lang.Object):637:652 -> contains
+    1:1:java.util.Iterator iterator():625:625 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():627:627 -> iterator
+    1:29:boolean remove(java.lang.Object):659:687 -> remove
+    1:1:int size():696:696 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.g.m$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList wrapped -> e
+    int last -> b
+    int pos -> a
+    boolean mustReturnNullKey -> d
+    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):486:509 -> <init>
+    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1):486:486 -> <init>
+    1:1:boolean hasNext():517:517 -> hasNext
+    1:19:int nextEntry():521:521 -> k
+    1:5:void remove():576:580 -> remove
+    6:12:void shiftKeys(int):553:559 -> remove
+    6:12:void remove():580 -> remove
+    13:14:void remove():587:588 -> remove
+    15:24:void shiftKeys(int):562:571 -> remove
+    15:24:void remove():580 -> remove
+    25:25:void shiftKeys(int):564:564 -> remove
+    25:25:void remove():580 -> remove
+    26:27:void remove():583:584 -> remove
+    28:28:void remove():576:576 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.g.m$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):782:783 -> <init>
+    1:1:java.lang.Object next():788:788 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList -> com.android.tools.r8.u.a.a.a.g.o:
+    int size -> b
+    1:3:void <init>(int):81:83 -> <init>
+    4:4:void <init>(int):82:82 -> <init>
+    1:5:void add(int,long):256:260 -> a
+    6:7:boolean add(long):266:267 -> a
+    8:10:void removeElements(int,int):407:409 -> a
+    1:4:long set(int,long):313:313 -> b
+    1:3:long getLong(int):274:274 -> c
+    4:6:boolean rem(long):304:306 -> c
+    1:1:void clear():321:321 -> clear
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList clone():549:551 -> clone
+    1:3:java.lang.Object clone():48 -> clone
+    1:2:int indexOf(long):280:281 -> d
+    1:2:int lastIndexOf(long):287:288 -> e
+    1:5:long removeLong(int):294:294 -> h
+    1:1:boolean isEmpty():339:339 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):493:494 -> k
+    1:1:void grow(int):250:250 -> l
+    2:5:long[] com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrays.grow(long[],int,int):205:208 -> l
+    2:5:void grow(int):250 -> l
+    6:6:void grow(int):250:250 -> l
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):493:494 -> listIterator
+    1:2:java.util.ListIterator listIterator(int):48 -> listIterator
+    1:6:boolean removeAll(java.util.Collection):482:487 -> removeAll
+    1:1:int size():327:327 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList$1 -> com.android.tools.r8.u.a.a.a.g.n:
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList this$0 -> d
+    int last -> b
+    int val$index -> c
+    int pos -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList,int):494:495 -> <init>
+    1:3:long nextLong():506:506 -> a
+    4:5:void add(long):524:525 -> a
+    1:3:long previousLong():511:511 -> b
+    4:6:void set(long):529:529 -> b
+    1:1:boolean hasNext():498:498 -> hasNext
+    1:1:boolean hasPrevious():502:502 -> hasPrevious
+    1:1:int nextIndex():516:516 -> nextIndex
+    1:1:int previousIndex():520:520 -> previousIndex
+    1:10:void remove():534:534 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongBidirectionalIterator -> com.android.tools.r8.u.a.a.a.g.p:
+    long previousLong() -> b
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection -> com.android.tools.r8.u.a.a.a.g.q:
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator -> com.android.tools.r8.u.a.a.a.g.r:
+    long nextLong() -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList -> com.android.tools.r8.u.a.a.a.g.s:
+    void add(int,long) -> a
+    void removeElements(int,int) -> a
+    long set(int,long) -> b
+    long getLong(int) -> c
+    long removeLong(int) -> h
+com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongSet -> com.android.tools.r8.u.a.a.a.g.t:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap -> com.android.tools.r8.u.a.a.a.h.b:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.<init>():44:44 -> <init>
+    1:1:void <init>():45 -> <init>
+    boolean containsValue(boolean) -> a
+    boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,boolean) -> a
+    boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.removeBoolean(java.lang.Object) -> c
+    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> entrySet
+    1:1:java.util.Set entrySet():42 -> entrySet
+    1:3:boolean equals(java.lang.Object):320:322 -> equals
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> equals
+    4:4:boolean equals(java.lang.Object):323 -> equals
+    5:5:boolean equals(java.lang.Object):323:323 -> equals
+    1:1:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.get(java.lang.Object):108:108 -> get
+    1:1:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.get(java.lang.Object):0 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.get(java.lang.Object):41 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.get(java.lang.Object):0 -> get
+    1:1:int hashCode():310:310 -> hashCode
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> hashCode
+    2:2:int hashCode():311 -> hashCode
+    3:3:int hashCode():311:311 -> hashCode
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet.iterator():136:136 -> hashCode
+    4:4:int hashCode():311 -> hashCode
+    5:5:int hashCode():313:313 -> hashCode
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    2:4:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:125 -> put
+    2:4:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Object):41 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    1:7:void putAll(java.util.Map):82:88 -> putAll
+    8:8:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry.getBooleanValue():145:145 -> putAll
+    8:8:void putAll(java.util.Map):88 -> putAll
+    9:15:void putAll(java.util.Map):88:94 -> putAll
+    16:17:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:124 -> putAll
+    16:17:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> putAll
+    16:17:void putAll(java.util.Map):94 -> putAll
+    1:3:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.remove(java.lang.Object):140:142 -> remove
+    1:3:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.remove(java.lang.Object):41 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.remove(java.lang.Object):0 -> remove
+    1:1:java.lang.String toString():328:328 -> toString
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> toString
+    2:2:java.lang.String toString():329 -> toString
+    3:3:java.lang.String toString():329:329 -> toString
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet.iterator():136:136 -> toString
+    4:4:java.lang.String toString():329 -> toString
+    5:16:java.lang.String toString():330:341 -> toString
+    17:17:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry.getBooleanValue():145:145 -> toString
+    17:17:java.lang.String toString():341 -> toString
+    18:21:java.lang.String toString():341:344 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry -> com.android.tools.r8.u.a.a.a.h.a:
+    java.lang.Object key -> a
+    boolean value -> b
+    1:3:void <init>(java.lang.Object,boolean):121:123 -> <init>
+    1:1:boolean getBooleanValue():145:145 -> d
+    1:4:boolean equals(java.lang.Object):167:170 -> equals
+    1:1:java.lang.Object getKey():128:128 -> getKey
+    1:1:java.lang.Boolean getValue():140:140 -> getValue
+    1:1:java.lang.Object getValue():112 -> getValue
+    1:1:int hashCode():175:175 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):112:112 -> setValue
+    2:2:java.lang.Boolean setValue(java.lang.Boolean):162:162 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):112 -> setValue
+    3:3:boolean setValue(boolean):150:150 -> setValue
+    3:3:java.lang.Boolean setValue(java.lang.Boolean):162 -> setValue
+    3:3:java.lang.Object setValue(java.lang.Object):112 -> setValue
+    1:1:java.lang.String toString():180:180 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntMap -> com.android.tools.r8.u.a.a.a.h.d:
+    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.defRetValue -> a
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.<init>():44:44 -> <init>
+    1:1:void <init>():45 -> <init>
+    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,int) -> a
+    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.removeInt(java.lang.Object) -> b
+    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
+    boolean containsValue(int) -> d
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.defaultReturnValue(int):55:55 -> e
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.defaultReturnValue(int):0 -> e
+    1:1:java.util.Set entrySet():42:42 -> entrySet
+    1:4:boolean equals(java.lang.Object):320:323 -> equals
+    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.get(java.lang.Object):108:108 -> get
+    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.get(java.lang.Object):0 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.get(java.lang.Object):41 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.get(java.lang.Object):0 -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> h
+    1:4:int hashCode():310:313 -> hashCode
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    2:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Integer):123:125 -> put
+    2:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Integer):0 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Object):41 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    1:13:void putAll(java.util.Map):82:94 -> putAll
+    14:15:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Integer):123:124 -> putAll
+    14:15:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Integer):0 -> putAll
+    14:15:void putAll(java.util.Map):94 -> putAll
+    1:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.remove(java.lang.Object):140:142 -> remove
+    1:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.remove(java.lang.Object):41 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.remove(java.lang.Object):0 -> remove
+    1:17:java.lang.String toString():328:344 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntMap$BasicEntry -> com.android.tools.r8.u.a.a.a.h.c:
+    java.lang.Object key -> a
+    int value -> b
+    1:3:void <init>(java.lang.Object,int):121:123 -> <init>
+    1:1:int getIntValue():145:145 -> a
+    1:4:boolean equals(java.lang.Object):167:170 -> equals
+    1:1:java.lang.Object getKey():128:128 -> getKey
+    1:1:java.lang.Integer getValue():140:140 -> getValue
+    1:1:java.lang.Object getValue():112 -> getValue
+    1:1:int hashCode():175:175 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):112:112 -> setValue
+    2:2:java.lang.Integer setValue(java.lang.Integer):162:162 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):112 -> setValue
+    3:3:int setValue(int):150:150 -> setValue
+    3:3:java.lang.Integer setValue(java.lang.Integer):162 -> setValue
+    3:3:java.lang.Object setValue(java.lang.Object):112 -> setValue
+    1:1:java.lang.String toString():180:180 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntSortedMap -> com.android.tools.r8.u.a.a.a.h.e:
+    1:1:void <init>():34:34 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
+    1:1:java.util.Set entrySet():31 -> entrySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():1422:1423 -> entrySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():87 -> entrySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
+    2:3:java.util.Set entrySet():31 -> entrySet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> h
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():1422:1423 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():87 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> h
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongMap -> com.android.tools.r8.u.a.a.a.h.f:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.<init>():44:44 -> <init>
+    1:1:void <init>():45 -> <init>
+    boolean containsValue(long) -> a
+    long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,long) -> a
+    long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.removeLong(java.lang.Object) -> c
+    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
+    1:1:java.util.Set entrySet():42:42 -> entrySet
+    1:3:boolean equals(java.lang.Object):320:322 -> equals
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.size():429:429 -> equals
+    4:4:boolean equals(java.lang.Object):322 -> equals
+    5:5:boolean equals(java.lang.Object):323:323 -> equals
+    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):108:108 -> get
+    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):41 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
+    2:12:long com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.getLong(java.lang.Object):371:381 -> get
+    2:12:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):108 -> get
+    2:12:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
+    2:12:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):41 -> get
+    2:12:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
+    13:13:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):108:108 -> get
+    13:13:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
+    13:13:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):41 -> get
+    13:13:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.object2LongEntrySet():761:762 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.object2LongEntrySet():49 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297 -> h
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    2:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Long):123:125 -> put
+    2:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Long):0 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Object):41 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    1:13:void putAll(java.util.Map):82:94 -> putAll
+    14:15:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Long):123:124 -> putAll
+    14:15:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Long):0 -> putAll
+    14:15:void putAll(java.util.Map):94 -> putAll
+    1:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.remove(java.lang.Object):140:142 -> remove
+    1:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.remove(java.lang.Object):41 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.String toString():328:330 -> toString
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.size():429:429 -> toString
+    4:4:java.lang.String toString():330 -> toString
+    5:16:java.lang.String toString():333:344 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectMap -> com.android.tools.r8.u.a.a.a.h.g:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectFunction.<init>():44:44 -> <init>
+    1:1:void <init>():45 -> <init>
+    1:3:boolean equals(java.lang.Object):272:274 -> equals
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.size():761:761 -> equals
+    4:4:boolean equals(java.lang.Object):274 -> equals
+    5:5:boolean equals(java.lang.Object):275:275 -> equals
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():226:226 -> equals
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():31 -> equals
+    6:6:boolean equals(java.lang.Object):275 -> equals
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.object2ObjectEntrySet():85:85 -> equals
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():226 -> equals
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():31 -> equals
+    7:7:boolean equals(java.lang.Object):275 -> equals
+    8:8:boolean equals(java.lang.Object):275:275 -> equals
+    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectFunction.put(java.lang.Object,java.lang.Object) -> put
+    1:13:void putAll(java.util.Map):69:81 -> putAll
+    1:2:java.lang.String toString():280:281 -> toString
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():226:226 -> toString
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():31 -> toString
+    3:3:java.lang.String toString():281 -> toString
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.object2ObjectEntrySet():85:85 -> toString
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():226 -> toString
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():31 -> toString
+    4:4:java.lang.String toString():281 -> toString
+    5:5:java.lang.String toString():281:281 -> toString
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntrySet.iterator():1228:1228 -> toString
+    6:6:java.lang.String toString():281 -> toString
+    7:7:java.lang.String toString():282:282 -> toString
+    8:8:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.size():761:761 -> toString
+    8:8:java.lang.String toString():282 -> toString
+    9:21:java.lang.String toString():285:297 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap -> com.android.tools.r8.u.a.a.a.h.h:
+    1:1:void <init>():34:34 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():226:226 -> entrySet
+    1:1:java.util.Set entrySet():31 -> entrySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.object2ObjectEntrySet():85:85 -> entrySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():226 -> entrySet
+    2:2:java.util.Set entrySet():31 -> entrySet
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectCollection -> com.android.tools.r8.u.a.a.a.h.i:
+    1:1:void <init>():37:37 -> <init>
+    1:15:java.lang.String toString():61:75 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectIterator -> com.android.tools.r8.u.a.a.a.h.j:
+    1:1:void <init>():34:34 -> <init>
+    1:1:void remove():45:45 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList -> com.android.tools.r8.u.a.a.a.h.m:
+    1:1:void <init>():34:34 -> <init>
+    void removeElements(int,int) -> a
+    1:5:boolean addAll(int,java.util.Collection):121:125 -> addAll
+    6:6:boolean addAll(java.util.Collection):138:138 -> addAll
+    1:1:int compareTo(java.util.List):458:458 -> b
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> b
+    2:2:int compareTo(java.util.List):459 -> b
+    3:3:int compareTo(java.util.List):460:460 -> b
+    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> b
+    4:4:int compareTo(java.util.List):460 -> b
+    5:10:int compareTo(java.util.List):463:468 -> b
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> b
+    11:11:int compareTo(java.util.List):470 -> b
+    12:17:int compareTo(java.util.List):470:475 -> b
+    1:1:void clear():404:404 -> clear
+    1:1:int compareTo(java.lang.Object):33:33 -> compareTo
+    1:1:boolean contains(java.lang.Object):275:275 -> contains
+    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList subList(int,int):311:314 -> e
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList subList(int,int):313:313 -> e
+    1:4:boolean equals(java.lang.Object):431:434 -> equals
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> equals
+    5:5:boolean equals(java.lang.Object):435 -> equals
+    6:8:boolean equals(java.lang.Object):435:437 -> equals
+    9:9:boolean valEquals(java.lang.Object,java.lang.Object):408:408 -> equals
+    9:9:boolean equals(java.lang.Object):437 -> equals
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> hashCode
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> hashCode
+    1:1:int hashCode():419 -> hashCode
+    2:5:int hashCode():420:423 -> hashCode
+    1:1:void ensureIndex(int):48:48 -> i
+    2:2:void ensureIndex(int):47:47 -> i
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> indexOf
+    1:1:int indexOf(java.lang.Object):280 -> indexOf
+    2:4:int indexOf(java.lang.Object):282:284 -> indexOf
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():33 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> iterator
+    2:2:java.util.Iterator iterator():33 -> iterator
+    1:1:void ensureRestrictedIndex(int):63:63 -> j
+    2:2:void ensureRestrictedIndex(int):62:62 -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int) -> k
+    1:5:int lastIndexOf(java.lang.Object):291:295 -> lastIndexOf
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> listIterator
+    1:1:java.util.ListIterator listIterator():33 -> listIterator
+    1:1:java.util.List subList(int,int):33:33 -> subList
+    1:1:java.lang.String toString():502:502 -> toString
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> toString
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> toString
+    2:2:java.lang.String toString():503 -> toString
+    3:15:java.lang.String toString():504:516 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList -> com.android.tools.r8.u.a.a.a.h.l:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList l -> a
+    int from -> b
+    int to -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():520:520 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList,int,int):529:532 -> <init>
+    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList):520:520 -> a
+    2:6:void removeElements(int,int):598:602 -> a
+    1:3:boolean add(java.lang.Object):544:546 -> add
+    4:7:void add(int,java.lang.Object):552:555 -> add
+    1:3:boolean addAll(int,java.util.Collection):560:562 -> addAll
+    1:1:int compareTo(java.lang.Object):520:520 -> compareTo
+    1:3:boolean assertRange():536:538 -> e
+    4:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList subList(int,int):674:677 -> e
+    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList subList(int,int):676:676 -> e
+    1:2:java.lang.Object get(int):567:568 -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.listIterator():193:193 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.iterator():181 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():520 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.listIterator():193:193 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.iterator():181 -> iterator
+    2:2:java.util.Iterator iterator():520 -> iterator
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):615:616 -> k
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.listIterator():193:193 -> listIterator
+    1:1:java.util.ListIterator listIterator():520 -> listIterator
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):615:616 -> listIterator
+    2:3:java.util.ListIterator listIterator(int):520 -> listIterator
+    1:3:java.lang.Object remove(int):573:575 -> remove
+    1:2:java.lang.Object set(int,java.lang.Object):580:581 -> set
+    1:1:int size():586:586 -> size
+    1:1:java.util.List subList(int,int):520:520 -> subList
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList$1 -> com.android.tools.r8.u.a.a.a.h.k:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList this$0 -> d
+    boolean $assertionsDisabled -> e
+    int last -> b
+    int val$index -> c
+    int pos -> a
+    1:1:void <clinit>():616:616 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList,int):616:617 -> <init>
+    1:5:void add(java.lang.Object):646:646 -> add
+    1:1:boolean hasNext():620:620 -> hasNext
+    1:1:boolean hasPrevious():624:624 -> hasPrevious
+    1:3:java.lang.Object next():628:628 -> next
+    1:1:int nextIndex():638:638 -> nextIndex
+    1:3:java.lang.Object previous():633:633 -> previous
+    1:1:int previousIndex():642:642 -> previousIndex
+    1:11:void remove():658:658 -> remove
+    1:3:void set(java.lang.Object):653:653 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectListIterator -> com.android.tools.r8.u.a.a.a.h.n:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectBidirectionalIterator.<init>():34:34 -> <init>
+    1:1:void <init>():35 -> <init>
+    1:1:void add(java.lang.Object):57:57 -> add
+    1:1:void set(java.lang.Object):46:46 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectSet -> com.android.tools.r8.u.a.a.a.h.o:
+    1:1:void <init>():32:32 -> <init>
+    1:4:boolean equals(java.lang.Object):41:44 -> equals
+    1:7:int hashCode():57:63 -> hashCode
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectSortedSet -> com.android.tools.r8.u.a.a.a.h.p:
+    1:1:void <init>():23:23 -> <init>
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap -> com.android.tools.r8.u.a.a.a.h.q:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.<init>():44:44 -> <init>
+    1:1:void <init>():45 -> <init>
+    boolean containsValue(boolean) -> a
+    boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,boolean) -> a
+    boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.removeBoolean(java.lang.Object) -> c
+    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
+    1:1:java.util.Set entrySet():42:42 -> entrySet
+    1:3:boolean equals(java.lang.Object):320:322 -> equals
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.size():384:384 -> equals
+    4:4:boolean equals(java.lang.Object):322 -> equals
+    5:5:boolean equals(java.lang.Object):323:323 -> equals
+    1:1:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.get(java.lang.Object):108:108 -> get
+    1:1:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.get(java.lang.Object):0 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.get(java.lang.Object):41 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.get(java.lang.Object):0 -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.reference2BooleanEntrySet():716:717 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.reference2BooleanEntrySet():49 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297 -> h
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    2:4:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:125 -> put
+    2:4:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Object):41 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    1:7:void putAll(java.util.Map):82:88 -> putAll
+    8:8:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry.getBooleanValue():442:442 -> putAll
+    8:8:void putAll(java.util.Map):88 -> putAll
+    9:15:void putAll(java.util.Map):88:94 -> putAll
+    16:17:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:124 -> putAll
+    16:17:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> putAll
+    16:17:void putAll(java.util.Map):94 -> putAll
+    1:3:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.remove(java.lang.Object):140:142 -> remove
+    1:3:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.remove(java.lang.Object):41 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.String toString():328:330 -> toString
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.size():384:384 -> toString
+    4:4:java.lang.String toString():330 -> toString
+    5:13:java.lang.String toString():333:341 -> toString
+    14:14:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry.getBooleanValue():442:442 -> toString
+    14:14:java.lang.String toString():341 -> toString
+    15:18:java.lang.String toString():341:344 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntMap -> com.android.tools.r8.u.a.a.a.h.s:
+    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.defRetValue -> a
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.<init>():44:44 -> <init>
+    1:1:void <init>():45 -> <init>
+    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,int) -> a
+    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.removeInt(java.lang.Object) -> b
+    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
+    boolean containsValue(int) -> d
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.defaultReturnValue(int):55:55 -> e
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.defaultReturnValue(int):0 -> e
+    1:1:java.util.Set entrySet():42:42 -> entrySet
+    1:4:boolean equals(java.lang.Object):320:323 -> equals
+    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.get(java.lang.Object):108:108 -> get
+    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.get(java.lang.Object):0 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.get(java.lang.Object):41 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.get(java.lang.Object):0 -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> h
+    1:4:int hashCode():310:313 -> hashCode
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    2:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Integer):123:125 -> put
+    2:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Integer):0 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Object):41 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    1:13:void putAll(java.util.Map):82:94 -> putAll
+    14:15:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Integer):123:124 -> putAll
+    14:15:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Integer):0 -> putAll
+    14:15:void putAll(java.util.Map):94 -> putAll
+    1:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.remove(java.lang.Object):140:142 -> remove
+    1:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.remove(java.lang.Object):41 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.remove(java.lang.Object):0 -> remove
+    1:17:java.lang.String toString():328:344 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntMap$BasicEntry -> com.android.tools.r8.u.a.a.a.h.r:
+    java.lang.Object key -> a
+    int value -> b
+    1:3:void <init>(java.lang.Object,int):121:123 -> <init>
+    1:1:int getIntValue():145:145 -> a
+    1:4:boolean equals(java.lang.Object):167:170 -> equals
+    1:1:java.lang.Object getKey():128:128 -> getKey
+    1:1:java.lang.Integer getValue():140:140 -> getValue
+    1:1:java.lang.Object getValue():112 -> getValue
+    1:1:int hashCode():175:175 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):112:112 -> setValue
+    2:2:java.lang.Integer setValue(java.lang.Integer):162:162 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):112 -> setValue
+    3:3:int setValue(int):150:150 -> setValue
+    3:3:java.lang.Integer setValue(java.lang.Integer):162 -> setValue
+    3:3:java.lang.Object setValue(java.lang.Object):112 -> setValue
+    1:1:java.lang.String toString():180:180 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntSortedMap -> com.android.tools.r8.u.a.a.a.h.t:
+    1:1:void <init>():34:34 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
+    1:1:java.util.Set entrySet():31 -> entrySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():1422:1423 -> entrySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():87 -> entrySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
+    2:3:java.util.Set entrySet():31 -> entrySet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> h
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():1422:1423 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():87 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> h
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongMap -> com.android.tools.r8.u.a.a.a.h.u:
+    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.<init>():44:44 -> <init>
+    1:1:void <init>():45 -> <init>
+    boolean containsValue(long) -> a
+    long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,long) -> a
+    long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.removeLong(java.lang.Object) -> c
+    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
+    1:1:java.util.Set entrySet():42:42 -> entrySet
+    1:3:boolean equals(java.lang.Object):320:322 -> equals
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.size():429:429 -> equals
+    4:4:boolean equals(java.lang.Object):322 -> equals
+    5:5:boolean equals(java.lang.Object):323:323 -> equals
+    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.get(java.lang.Object):108:108 -> get
+    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.get(java.lang.Object):0 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.get(java.lang.Object):41 -> get
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.get(java.lang.Object):0 -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.reference2LongEntrySet():761:762 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.reference2LongEntrySet():49 -> h
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297 -> h
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
+    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    2:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Long):123:125 -> put
+    2:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Long):0 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Object):41 -> put
+    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Object):0 -> put
+    1:7:void putAll(java.util.Map):82:88 -> putAll
+    8:8:long com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry.getLongValue():487:487 -> putAll
+    8:8:void putAll(java.util.Map):88 -> putAll
+    9:15:void putAll(java.util.Map):88:94 -> putAll
+    16:17:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Long):123:124 -> putAll
+    16:17:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Long):0 -> putAll
+    16:17:void putAll(java.util.Map):94 -> putAll
+    1:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.remove(java.lang.Object):140:142 -> remove
+    1:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.remove(java.lang.Object):41 -> remove
+    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.remove(java.lang.Object):0 -> remove
+    1:3:java.lang.String toString():328:330 -> toString
+    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.size():429:429 -> toString
+    4:4:java.lang.String toString():330 -> toString
+    5:13:java.lang.String toString():333:341 -> toString
+    14:14:long com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry.getLongValue():487:487 -> toString
+    14:14:java.lang.String toString():341 -> toString
+    15:18:java.lang.String toString():341:344 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceCollection -> com.android.tools.r8.u.a.a.a.h.v:
+    1:1:void <init>():37:37 -> <init>
+    1:15:java.lang.String toString():61:75 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList -> com.android.tools.r8.u.a.a.a.h.y:
+    1:1:void <init>():34:34 -> <init>
+    void removeElements(int,int) -> a
+    1:5:boolean addAll(int,java.util.Collection):121:125 -> addAll
+    6:6:boolean addAll(java.util.Collection):138:138 -> addAll
+    1:1:void clear():404:404 -> clear
+    1:1:boolean contains(java.lang.Object):275:275 -> contains
+    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):311:314 -> e
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):313:313 -> e
+    1:4:boolean equals(java.lang.Object):427:430 -> equals
+    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> equals
+    5:5:boolean equals(java.lang.Object):431 -> equals
+    6:8:boolean equals(java.lang.Object):431:433 -> equals
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> hashCode
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> hashCode
+    1:1:int hashCode():415 -> hashCode
+    2:5:int hashCode():416:419 -> hashCode
+    1:1:void ensureIndex(int):48:48 -> i
+    2:2:void ensureIndex(int):47:47 -> i
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> indexOf
+    1:1:int indexOf(java.lang.Object):280 -> indexOf
+    2:4:int indexOf(java.lang.Object):282:284 -> indexOf
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():33 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> iterator
+    2:2:java.util.Iterator iterator():33 -> iterator
+    1:1:void ensureRestrictedIndex(int):63:63 -> j
+    2:2:void ensureRestrictedIndex(int):62:62 -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int) -> k
+    1:5:int lastIndexOf(java.lang.Object):291:295 -> lastIndexOf
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> listIterator
+    1:1:java.util.ListIterator listIterator():33 -> listIterator
+    1:1:java.util.List subList(int,int):33:33 -> subList
+    1:1:java.lang.String toString():461:461 -> toString
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> toString
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> toString
+    2:2:java.lang.String toString():462 -> toString
+    3:15:java.lang.String toString():463:475 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList -> com.android.tools.r8.u.a.a.a.h.x:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList l -> a
+    int from -> b
+    int to -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():479:479 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList,int,int):488:491 -> <init>
+    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList):479:479 -> a
+    2:6:void removeElements(int,int):557:561 -> a
+    1:3:boolean add(java.lang.Object):503:505 -> add
+    4:7:void add(int,java.lang.Object):511:514 -> add
+    1:3:boolean addAll(int,java.util.Collection):519:521 -> addAll
+    1:3:boolean assertRange():495:497 -> e
+    4:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):633:636 -> e
+    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):635:635 -> e
+    1:2:java.lang.Object get(int):526:527 -> get
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.listIterator():193:193 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.iterator():181 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():479 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.listIterator():193:193 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.iterator():181 -> iterator
+    2:2:java.util.Iterator iterator():479 -> iterator
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):574:575 -> k
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.listIterator():193:193 -> listIterator
+    1:1:java.util.ListIterator listIterator():479 -> listIterator
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):574:575 -> listIterator
+    2:3:java.util.ListIterator listIterator(int):479 -> listIterator
+    1:3:java.lang.Object remove(int):532:534 -> remove
+    1:2:java.lang.Object set(int,java.lang.Object):539:540 -> set
+    1:1:int size():545:545 -> size
+    1:1:java.util.List subList(int,int):479:479 -> subList
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList$1 -> com.android.tools.r8.u.a.a.a.h.w:
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList this$0 -> d
+    int last -> b
+    int val$index -> c
+    int pos -> a
+    1:1:void <clinit>():575:575 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList,int):575:576 -> <init>
+    1:5:void add(java.lang.Object):605:605 -> add
+    1:1:boolean hasNext():579:579 -> hasNext
+    1:1:boolean hasPrevious():583:583 -> hasPrevious
+    1:3:java.lang.Object next():587:587 -> next
+    1:1:int nextIndex():597:597 -> nextIndex
+    1:3:java.lang.Object previous():592:592 -> previous
+    1:1:int previousIndex():601:601 -> previousIndex
+    1:11:void remove():617:617 -> remove
+    1:3:void set(java.lang.Object):612:612 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceSet -> com.android.tools.r8.u.a.a.a.h.z:
+    1:1:void <init>():32:32 -> <init>
+    1:4:boolean equals(java.lang.Object):41:44 -> equals
+    1:7:int hashCode():57:63 -> hashCode
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceSortedSet -> com.android.tools.r8.u.a.a.a.h.A:
+    1:1:void <init>():23:23 -> <init>
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap -> com.android.tools.r8.u.a.a.a.h.D:
+    java.lang.Object[] key -> a
+    boolean[] value -> b
+    int size -> c
+    1:3:void <init>():70:72 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> a
+    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap,java.lang.Object):37:37 -> a
+    3:4:boolean containsValue(boolean):270:271 -> a
+    5:23:boolean put(java.lang.Object,boolean):283:301 -> a
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> b
+    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> c
+    2:9:boolean removeBoolean(java.lang.Object):308:315 -> c
+    1:4:void clear():257:260 -> clear
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap clone():344:349 -> clone
+    1:6:java.lang.Object clone():37 -> clone
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap clone():346:346 -> clone
+    7:7:java.lang.Object clone():37 -> clone
+    1:1:boolean containsKey(java.lang.Object):265:265 -> containsKey
+    1:1:boolean[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> d
+    2:4:int findKey(java.lang.Object):235:237 -> d
+    1:3:boolean getBoolean(java.lang.Object):244:246 -> e
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$FastEntrySet object2BooleanEntrySet():231:231 -> h
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2BooleanEntrySet():37 -> h
+    1:1:boolean isEmpty():277:277 -> isEmpty
+    1:1:java.util.Set keySet():37:37 -> keySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():321:321 -> keySet
+    1:1:int size():252:252 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values():326:326 -> values
+    1:1:java.util.Collection values():37 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$1 -> com.android.tools.r8.u.a.a.a.h.B:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.h.D$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):133:133 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$1):133:133 -> <init>
+    1:5:boolean contains(java.lang.Object):203:207 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:java.util.Iterator iterator():133 -> iterator
+    1:12:boolean remove(java.lang.Object):213:224 -> remove
+    1:1:int size():197:197 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.h.C:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet this$1 -> c
+    int next -> b
+    int curr -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet):136:137 -> <init>
+    1:1:boolean hasNext():141:141 -> hasNext
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry next():147:147 -> next
+    1:3:java.lang.Object next():136 -> next
+    1:7:void remove():153:153 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap -> com.android.tools.r8.u.a.a.a.h.E:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry -> com.android.tools.r8.u.a.a.a.h.E$a:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap -> com.android.tools.r8.u.a.a.a.h.H:
+    java.lang.Object[] key -> b
+    int[] value -> c
+    int size -> d
+    1:3:void <init>():70:72 -> <init>
+    4:6:void <init>(int):81:83 -> <init>
+    7:8:void <init>(java.util.Map):104:105 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):37:37 -> a
+    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap,java.lang.Object):37:37 -> a
+    3:6:int getInt(java.lang.Object):244:247 -> a
+    7:26:int put(java.lang.Object,int):283:302 -> a
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):37:37 -> b
+    2:9:int removeInt(java.lang.Object):308:315 -> b
+    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):37:37 -> c
+    2:4:int findKey(java.lang.Object):235:237 -> c
+    1:4:void clear():257:260 -> clear
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap clone():344:349 -> clone
+    1:6:java.lang.Object clone():37 -> clone
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap clone():346:346 -> clone
+    7:7:java.lang.Object clone():37 -> clone
+    1:1:boolean containsKey(java.lang.Object):265:265 -> containsKey
+    1:1:int[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):37:37 -> d
+    2:3:boolean containsValue(int):270:271 -> d
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet object2IntEntrySet():231:231 -> f
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet():37 -> f
+    1:1:boolean isEmpty():277:277 -> isEmpty
+    1:1:java.util.Set keySet():37:37 -> keySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():321:321 -> keySet
+    1:1:int size():252:252 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():326:326 -> values
+    1:1:java.util.Collection values():37 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$1 -> com.android.tools.r8.u.a.a.a.h.F:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.h.H$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):133:133 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$1):133:133 -> <init>
+    1:5:boolean contains(java.lang.Object):203:207 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:java.util.Iterator iterator():133 -> iterator
+    1:12:boolean remove(java.lang.Object):213:224 -> remove
+    1:1:int size():197:197 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.h.G:
+    int next -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet this$1 -> c
+    int curr -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet):136:137 -> <init>
+    1:1:boolean hasNext():141:141 -> hasNext
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry next():147:147 -> next
+    1:3:java.lang.Object next():136 -> next
+    1:7:void remove():153:153 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntFunction -> com.android.tools.r8.u.a.a.a.h.I:
+    int getInt(java.lang.Object) -> a
+    int put(java.lang.Object,int) -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap -> com.android.tools.r8.u.a.a.a.h.K:
+    float f -> l
+    java.lang.Object[] key -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> o
+    int maxFill -> j
+    int size -> k
+    int n -> i
+    int first -> f
+    int last -> g
+    int mask -> d
+    long[] link -> h
+    int[] value -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet entries -> m
+    boolean containsNullKey -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keys -> n
+    1:1:void <init>(int,float):147:147 -> <init>
+    2:56:void <init>(int,float):102:156 -> <init>
+    57:57:void <init>(int,float):149:149 -> <init>
+    58:58:void <init>(int,float):148:148 -> <init>
+    59:59:void <init>():176:176 -> <init>
+    1:1:int access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):87:87 -> a
+    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,int):87:87 -> a
+    3:27:int insert(java.lang.Object,int):307:331 -> a
+    3:27:int put(java.lang.Object,int):338 -> a
+    28:30:int put(java.lang.Object,int):339:341 -> a
+    31:41:int getInt(java.lang.Object):721:731 -> a
+    1:12:int removeInt(java.lang.Object):431:442 -> b
+    1:24:void fixPointers(int,int):937:960 -> c
+    1:5:void clear():771:775 -> clear
+    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap clone():1768:1778 -> clone
+    1:11:java.lang.Object clone():87 -> clone
+    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap clone():1770:1770 -> clone
+    12:12:java.lang.Object clone():87 -> clone
+    1:11:boolean containsKey(java.lang.Object):738:748 -> containsKey
+    1:5:boolean containsValue(int):754:758 -> d
+    1:25:void fixPointers(int):899:923 -> f
+    26:27:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet object2IntEntrySet():1422:1423 -> f
+    26:27:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet():87 -> f
+    1:3:java.lang.Object firstKey():970:970 -> firstKey
+    1:42:void rehash(int):1709:1750 -> g
+    1:3:int removeEntry(int):276:278 -> h
+    4:9:void shiftKeys(int):410:415 -> h
+    4:9:int removeEntry(int):279 -> h
+    10:10:int removeEntry(int):280:280 -> h
+    11:17:void shiftKeys(int):418:424 -> h
+    11:17:int removeEntry(int):279 -> h
+    18:18:void shiftKeys(int):420:420 -> h
+    18:18:int removeEntry(int):279 -> h
+    1:1:int realSize():262:262 -> hashCode
+    1:1:int hashCode():1795 -> hashCode
+    2:10:int hashCode():1796:1804 -> hashCode
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap headMap(java.lang.Object):1002:1002 -> headMap
+    1:1:java.util.SortedMap headMap(java.lang.Object):87 -> headMap
+    1:6:int removeNullEntry():285:290 -> i
+    1:1:boolean isEmpty():785:785 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1531:1532 -> keySet
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():87 -> keySet
+    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1531:1532 -> keySet
+    3:4:java.util.Set keySet():87 -> keySet
+    1:3:java.lang.Object lastKey():981:981 -> lastKey
+    1:1:void putAll(java.util.Map):296:296 -> putAll
+    2:3:void ensureCapacity(int):266:267 -> putAll
+    2:3:void putAll(java.util.Map):296 -> putAll
+    4:4:int size():780:780 -> putAll
+    4:4:void putAll(java.util.Map):298 -> putAll
+    5:5:void putAll(java.util.Map):298:298 -> putAll
+    6:7:void tryCapacity(long):271:272 -> putAll
+    6:7:void putAll(java.util.Map):298 -> putAll
+    8:8:void putAll(java.util.Map):301:301 -> putAll
+    1:1:int size():780:780 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap subMap(java.lang.Object,java.lang.Object):1012:1012 -> subMap
+    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):87 -> subMap
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap tailMap(java.lang.Object):992:992 -> tailMap
+    1:1:java.util.SortedMap tailMap(java.lang.Object):87 -> tailMap
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():1596:1617 -> values
+    1:22:java.util.Collection values():87 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.J:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1596:1596 -> <init>
+    1:1:boolean contains(int):1609:1609 -> b
+    1:1:void clear():1614:1614 -> clear
+    1:1:java.util.Iterator iterator():1596:1596 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1599:1599 -> iterator
+    1:1:int size():1604:1604 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.K$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry entry -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> g
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1222:1222 -> <init>
+    1:1:void add(java.lang.Object):1219:1219 -> add
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1215:1215 -> add
+    2:2:void add(java.lang.Object):1219 -> add
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry next():1231:1231 -> next
+    1:1:java.lang.Object next():1219 -> next
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry previous():1236:1236 -> previous
+    1:1:java.lang.Object previous():1219 -> previous
+    1:2:void remove():1241:1242 -> remove
+    1:1:void set(java.lang.Object):1219:1219 -> set
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1211:1211 -> set
+    2:2:void set(java.lang.Object):1219 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.K$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1455:1456 -> <init>
+    1:1:void add(java.lang.Object):1452:1452 -> add
+    1:1:java.lang.Object next():1461:1461 -> next
+    1:1:java.lang.Object previous():1442:1442 -> previous
+    1:1:void set(java.lang.Object):1447:1447 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.K$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1465:1465 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1465:1465 -> <init>
+    1:1:void clear():1493:1493 -> clear
+    1:1:boolean contains(java.lang.Object):1481:1481 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> e
+    1:3:java.lang.Object first():1498:1498 -> first
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):1520:1520 -> headSet
+    1:1:java.util.SortedSet headSet(java.lang.Object):1465 -> headSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1465:1465 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1465:1465 -> iterator
+    3:3:java.util.Iterator iterator():1465:1465 -> iterator
+    1:3:java.lang.Object last():1504:1504 -> last
+    1:3:boolean remove(java.lang.Object):1486:1488 -> remove
+    1:1:int size():1476:1476 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):1525:1525 -> subSet
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1465 -> subSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):1515:1515 -> tailSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1465 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.K$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,int):824:825 -> <init>
+    1:1:int getIntValue():838:838 -> a
+    1:3:boolean equals(java.lang.Object):875:877 -> equals
+    1:1:java.lang.Object getKey():833:833 -> getKey
+    1:1:java.lang.Integer getValue():857:857 -> getValue
+    1:1:java.lang.Object getValue():819 -> getValue
+    1:1:int hashCode():882:882 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):819:819 -> setValue
+    2:2:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):819 -> setValue
+    3:4:int setValue(int):843:844 -> setValue
+    3:4:java.lang.Integer setValue(java.lang.Integer):869 -> setValue
+    3:4:java.lang.Object setValue(java.lang.Object):819 -> setValue
+    5:5:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
+    5:5:java.lang.Object setValue(java.lang.Object):819 -> setValue
+    1:1:java.lang.String toString():887:887 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.K$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1269:1269 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1269:1269 -> <init>
+    1:1:void clear():1373:1373 -> clear
+    1:16:boolean contains(java.lang.Object):1309:1324 -> contains
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry first():1296:1296 -> first
+    1:3:java.lang.Object first():1269 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):1269:1269 -> headSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1286:1286 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):1269 -> headSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1269:1269 -> iterator
+    2:2:java.util.Iterator iterator():1269:1269 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry last():1302:1302 -> last
+    1:3:java.lang.Object last():1269 -> last
+    1:29:boolean remove(java.lang.Object):1331:1359 -> remove
+    1:1:int size():1368:1368 -> size
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269:1269 -> subSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1281:1281 -> subSet
+    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1269:1269 -> tailSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1291:1291 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):1269 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.K$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> e
+    int index -> d
+    int next -> b
+    int curr -> c
+    int prev -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1032:1032 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1057:1057 -> <init>
+    3:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1038:1059 -> <init>
+    1:1:boolean hasNext():1091:1091 -> hasNext
+    1:1:boolean hasPrevious():1095:1095 -> hasPrevious
+    1:14:void ensureIndexKnown():1099:1112 -> k
+    1:7:int nextEntry():1127:1127 -> l
+    1:7:int previousEntry():1136:1136 -> m
+    1:2:int nextIndex():1117:1118 -> nextIndex
+    1:2:int previousIndex():1122:1123 -> previousIndex
+    1:47:void remove():1145:1191 -> remove
+    48:48:void remove():1185:1185 -> remove
+    49:49:void remove():1146:1146 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.K$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1578:1579 -> <init>
+    1:1:void add(java.lang.Object):1544:1544 -> add
+    2:2:void add(java.lang.Integer):1565:1565 -> add
+    2:2:void add(java.lang.Object):1544 -> add
+    1:1:int previousInt():1547:1547 -> e
+    1:1:int nextInt():1584:1584 -> i
+    1:1:java.lang.Integer next():1590:1590 -> next
+    1:1:java.lang.Object next():1544 -> next
+    1:1:java.lang.Integer previous():1553:1553 -> previous
+    1:1:java.lang.Object previous():1544 -> previous
+    1:1:void set(java.lang.Object):1544:1544 -> set
+    2:2:void set(java.lang.Integer):1559:1559 -> set
+    2:2:void set(java.lang.Object):1544 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap -> com.android.tools.r8.u.a.a.a.h.N:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet() -> f
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry -> com.android.tools.r8.u.a.a.a.h.L:
+    int getIntValue() -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.M:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap -> com.android.tools.r8.u.a.a.a.h.P:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keys -> k
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> l
+    java.lang.Object[] key -> b
+    float f -> i
+    int[] value -> c
+    int size -> h
+    boolean containsNullKey -> e
+    int n -> f
+    int maxFill -> g
+    int mask -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet entries -> j
+    1:9:void <init>(int,float):91:99 -> <init>
+    10:10:void <init>(int,float):93:93 -> <init>
+    11:11:void <init>(int,float):92:92 -> <init>
+    1:1:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):49:49 -> a
+    2:2:int access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,int):49:49 -> a
+    3:18:int insert(java.lang.Object,int):248:263 -> a
+    3:18:int put(java.lang.Object,int):270 -> a
+    19:21:int put(java.lang.Object,int):271:273 -> a
+    22:32:int getInt(java.lang.Object):371:381 -> a
+    1:12:int removeInt(java.lang.Object):353:364 -> b
+    1:4:void clear():421:424 -> clear
+    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap clone():999:1008 -> clone
+    1:10:java.lang.Object clone():49 -> clone
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap clone():1001:1001 -> clone
+    11:11:java.lang.Object clone():49 -> clone
+    1:11:boolean containsKey(java.lang.Object):388:398 -> containsKey
+    1:5:boolean containsValue(int):404:408 -> d
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet object2IntEntrySet():761:762 -> f
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet():49 -> f
+    3:9:void rehash(int):961:967 -> f
+    10:10:int realSize():205:205 -> f
+    10:10:void rehash(int):968 -> f
+    11:23:void rehash(int):969:981 -> f
+    1:2:int removeEntry(int):219:220 -> g
+    3:8:void shiftKeys(int):333:338 -> g
+    3:8:int removeEntry(int):221 -> g
+    9:9:int removeEntry(int):222:222 -> g
+    10:15:void shiftKeys(int):341:346 -> g
+    10:15:int removeEntry(int):221 -> g
+    16:16:void shiftKeys(int):343:343 -> g
+    16:16:int removeEntry(int):221 -> g
+    1:1:int realSize():205:205 -> hashCode
+    1:1:int hashCode():1025 -> hashCode
+    2:10:int hashCode():1026:1034 -> hashCode
+    1:5:int removeNullEntry():227:231 -> i
+    1:1:boolean isEmpty():434:434 -> isEmpty
+    1:1:java.util.Set keySet():49:49 -> keySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():816:817 -> keySet
+    1:1:void putAll(java.util.Map):237:237 -> putAll
+    2:3:void ensureCapacity(int):209:210 -> putAll
+    2:3:void putAll(java.util.Map):237 -> putAll
+    4:4:int size():429:429 -> putAll
+    4:4:void putAll(java.util.Map):239 -> putAll
+    5:5:void putAll(java.util.Map):239:239 -> putAll
+    6:7:void tryCapacity(long):214:215 -> putAll
+    6:7:void putAll(java.util.Map):239 -> putAll
+    8:8:void putAll(java.util.Map):242:242 -> putAll
+    1:1:int size():429:429 -> size
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():848:869 -> values
+    1:22:java.util.Collection values():49 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.O:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):848:848 -> <init>
+    1:1:boolean contains(int):861:861 -> b
+    1:1:void clear():866:866 -> clear
+    1:1:java.util.Iterator iterator():848:848 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():851:851 -> iterator
+    1:1:int size():856:856 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.P$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapEntry entry -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> h
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):654:654 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1):654:654 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapEntry next():659:659 -> next
+    1:1:java.lang.Object next():654 -> next
+    1:2:void remove():664:665 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.P$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):775:776 -> <init>
+    1:1:java.lang.Object next():781:781 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.P$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):785:785 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1):785:785 -> <init>
+    1:1:void clear():810:810 -> clear
+    1:1:boolean contains(java.lang.Object):798:798 -> contains
+    1:1:java.util.Iterator iterator():785:785 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
+    1:3:boolean remove(java.lang.Object):803:805 -> remove
+    1:1:int size():793:793 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.P$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,int):473:474 -> <init>
+    1:1:int getIntValue():487:487 -> a
+    1:3:boolean equals(java.lang.Object):524:526 -> equals
+    1:1:java.lang.Object getKey():482:482 -> getKey
+    1:1:java.lang.Integer getValue():506:506 -> getValue
+    1:1:java.lang.Object getValue():468 -> getValue
+    1:1:int hashCode():531:531 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
+    2:2:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    3:4:int setValue(int):492:493 -> setValue
+    3:4:java.lang.Integer setValue(java.lang.Integer):518 -> setValue
+    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    5:5:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
+    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    1:1:java.lang.String toString():536:536 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.P$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):679:679 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1):679:679 -> <init>
+    1:1:void clear():755:755 -> clear
+    1:16:boolean contains(java.lang.Object):691:706 -> contains
+    1:1:java.util.Iterator iterator():679:679 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
+    1:29:boolean remove(java.lang.Object):713:741 -> remove
+    1:1:int size():750:750 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.P$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList wrapped -> e
+    int last -> b
+    int pos -> a
+    boolean mustReturnNullKey -> d
+    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):541:564 -> <init>
+    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1):541:541 -> <init>
+    1:1:boolean hasNext():572:572 -> hasNext
+    1:19:int nextEntry():576:576 -> k
+    1:5:void remove():630:634 -> remove
+    6:11:void shiftKeys(int):608:613 -> remove
+    6:11:void remove():634 -> remove
+    12:13:void remove():641:642 -> remove
+    14:23:void shiftKeys(int):616:625 -> remove
+    14:23:void remove():634 -> remove
+    24:24:void shiftKeys(int):618:618 -> remove
+    24:24:void remove():634 -> remove
+    25:26:void remove():637:638 -> remove
+    27:27:void remove():630:630 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.P$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):830:831 -> <init>
+    1:1:int nextInt():836:836 -> i
+    1:1:java.lang.Integer next():842:842 -> next
+    1:1:java.lang.Object next():829 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet -> com.android.tools.r8.u.a.a.a.h.Q:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap -> com.android.tools.r8.u.a.a.a.h.S:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$Entry -> com.android.tools.r8.u.a.a.a.h.S$a:
+    long getLongValue() -> c
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.T:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap -> com.android.tools.r8.u.a.a.a.h.V:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keys -> j
+    float f -> h
+    java.lang.Object[] key -> a
+    long[] value -> b
+    int maxFill -> f
+    int size -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection values -> k
+    int n -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$FastEntrySet entries -> i
+    int mask -> c
+    boolean containsNullKey -> d
+    1:9:void <init>(int,float):91:99 -> <init>
+    10:10:void <init>(int,float):93:93 -> <init>
+    11:11:void <init>(int,float):92:92 -> <init>
+    12:12:void <init>():119:119 -> <init>
+    1:1:long access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):49:49 -> a
+    2:2:long access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,int):49:49 -> a
+    3:18:int insert(java.lang.Object,long):248:263 -> a
+    3:18:long put(java.lang.Object,long):270 -> a
+    19:20:long put(java.lang.Object,long):272:273 -> a
+    21:25:boolean containsValue(long):404:408 -> a
+    1:12:long removeLong(java.lang.Object):353:364 -> c
+    1:4:void clear():421:424 -> clear
+    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap clone():999:1008 -> clone
+    1:10:java.lang.Object clone():49 -> clone
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap clone():1001:1001 -> clone
+    11:11:java.lang.Object clone():49 -> clone
+    1:11:boolean containsKey(java.lang.Object):388:398 -> containsKey
+    1:7:void rehash(int):961:967 -> d
+    8:8:int realSize():205:205 -> d
+    8:8:void rehash(int):968 -> d
+    9:21:void rehash(int):969:981 -> d
+    1:2:long removeEntry(int):219:220 -> e
+    3:8:void shiftKeys(int):333:338 -> e
+    3:8:long removeEntry(int):221 -> e
+    9:9:long removeEntry(int):222:222 -> e
+    10:15:void shiftKeys(int):341:346 -> e
+    10:15:long removeEntry(int):221 -> e
+    16:16:void shiftKeys(int):343:343 -> e
+    16:16:long removeEntry(int):221 -> e
+    1:1:int realSize():205:205 -> hashCode
+    1:1:int hashCode():1025 -> hashCode
+    2:10:int hashCode():1026:1034 -> hashCode
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$FastEntrySet object2LongEntrySet():761:762 -> i
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2LongEntrySet():49 -> i
+    1:1:boolean isEmpty():434:434 -> isEmpty
+    1:5:long removeNullEntry():227:231 -> j
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():816:817 -> keySet
+    1:2:java.util.Set keySet():49 -> keySet
+    1:1:void putAll(java.util.Map):237:237 -> putAll
+    2:3:void ensureCapacity(int):209:210 -> putAll
+    2:3:void putAll(java.util.Map):237 -> putAll
+    4:4:int size():429:429 -> putAll
+    4:4:void putAll(java.util.Map):239 -> putAll
+    5:5:void putAll(java.util.Map):239:239 -> putAll
+    6:7:void tryCapacity(long):214:215 -> putAll
+    6:7:void putAll(java.util.Map):239 -> putAll
+    8:8:void putAll(java.util.Map):242:242 -> putAll
+    1:1:int size():429:429 -> size
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection values():848:869 -> values
+    1:22:java.util.Collection values():49 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.U:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):848:848 -> <init>
+    1:1:boolean contains(long):861:861 -> b
+    1:1:void clear():866:866 -> clear
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():851:851 -> e
+    1:1:java.util.Iterator iterator():848:848 -> iterator
+    1:1:int size():856:856 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.V$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapEntry entry -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> h
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):654:654 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1):654:654 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapEntry next():659:659 -> next
+    1:1:java.lang.Object next():654 -> next
+    1:2:void remove():664:665 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.V$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):775:776 -> <init>
+    1:1:java.lang.Object next():781:781 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.V$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):785:785 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1):785:785 -> <init>
+    1:1:void clear():810:810 -> clear
+    1:1:boolean contains(java.lang.Object):798:798 -> contains
+    1:1:java.util.Iterator iterator():785:785 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
+    1:3:boolean remove(java.lang.Object):803:805 -> remove
+    1:1:int size():793:793 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.V$d:
+    int index -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> b
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,int):473:474 -> <init>
+    1:1:long getLongValue():487:487 -> c
+    1:3:boolean equals(java.lang.Object):524:526 -> equals
+    1:1:java.lang.Object getKey():482:482 -> getKey
+    1:1:java.lang.Long getValue():506:506 -> getValue
+    1:1:java.lang.Object getValue():468 -> getValue
+    1:1:int hashCode():531:531 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
+    2:2:java.lang.Long setValue(java.lang.Long):518:518 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    3:4:long setValue(long):492:493 -> setValue
+    3:4:java.lang.Long setValue(java.lang.Long):518 -> setValue
+    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    5:5:java.lang.Long setValue(java.lang.Long):518:518 -> setValue
+    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    1:1:java.lang.String toString():536:536 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.V$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):679:679 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1):679:679 -> <init>
+    1:1:void clear():755:755 -> clear
+    1:16:boolean contains(java.lang.Object):691:706 -> contains
+    1:1:java.util.Iterator iterator():679:679 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
+    1:29:boolean remove(java.lang.Object):713:741 -> remove
+    1:1:int size():750:750 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.V$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList wrapped -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> f
+    int last -> b
+    int pos -> a
+    boolean mustReturnNullKey -> d
+    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):541:564 -> <init>
+    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1):541:541 -> <init>
+    1:1:boolean hasNext():572:572 -> hasNext
+    1:19:int nextEntry():576:576 -> k
+    1:5:void remove():630:634 -> remove
+    6:11:void shiftKeys(int):608:613 -> remove
+    6:11:void remove():634 -> remove
+    12:13:void remove():641:642 -> remove
+    14:23:void shiftKeys(int):616:625 -> remove
+    14:23:void remove():634 -> remove
+    24:24:void shiftKeys(int):618:618 -> remove
+    24:24:void remove():634 -> remove
+    25:26:void remove():637:638 -> remove
+    27:27:void remove():630:630 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.V$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):830:831 -> <init>
+    1:1:long nextLong():836:836 -> a
+    1:1:java.lang.Long next():842:842 -> next
+    1:1:java.lang.Object next():829 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap -> com.android.tools.r8.u.a.a.a.h.X:
+    float f -> l
+    java.lang.Object[] value -> b
+    int maxFill -> j
+    java.lang.Object[] key -> a
+    int size -> k
+    int n -> i
+    com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy strategy -> e
+    int first -> f
+    int last -> g
+    int mask -> c
+    long[] link -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values -> o
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet entries -> m
+    boolean containsNullKey -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keys -> n
+    1:1:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):149:149 -> <init>
+    2:59:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):102:159 -> <init>
+    60:60:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):152:152 -> <init>
+    61:61:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):151:151 -> <init>
+    1:1:java.lang.Object access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):85:85 -> a
+    2:2:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,int):85:85 -> a
+    1:24:void fixPointers(int,int):894:917 -> c
+    1:6:void clear():751:756 -> clear
+    1:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap clone():1701:1712 -> clone
+    1:12:java.lang.Object clone():85 -> clone
+    13:13:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap clone():1703:1703 -> clone
+    13:13:java.lang.Object clone():85 -> clone
+    1:11:boolean containsKey(java.lang.Object):718:728 -> containsKey
+    1:5:boolean containsValue(java.lang.Object):734:738 -> containsValue
+    1:25:void fixPointers(int):856:880 -> d
+    1:42:void rehash(int):1642:1683 -> e
+    1:4:java.lang.Object removeEntry(int):305:308 -> f
+    5:11:void shiftKeys(int):387:393 -> f
+    5:11:java.lang.Object removeEntry(int):309 -> f
+    12:12:java.lang.Object removeEntry(int):310:310 -> f
+    13:19:void shiftKeys(int):396:402 -> f
+    13:19:java.lang.Object removeEntry(int):309 -> f
+    20:20:void shiftKeys(int):398:398 -> f
+    20:20:java.lang.Object removeEntry(int):309 -> f
+    1:3:java.lang.Object firstKey():927:927 -> firstKey
+    1:11:java.lang.Object get(java.lang.Object):701:711 -> get
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet object2ObjectEntrySet():1379:1380 -> h
+    1:1:int realSize():291:291 -> hashCode
+    1:1:int hashCode():1729 -> hashCode
+    2:10:int hashCode():1730:1738 -> hashCode
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap headMap(java.lang.Object):959:959 -> headMap
+    1:1:java.util.SortedMap headMap(java.lang.Object):85 -> headMap
+    1:7:java.lang.Object removeNullEntry():315:321 -> i
+    1:1:boolean isEmpty():766:766 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1488:1489 -> keySet
+    1:2:java.util.Set keySet():85 -> keySet
+    1:3:java.lang.Object lastKey():938:938 -> lastKey
+    1:26:int insert(java.lang.Object,java.lang.Object):337:362 -> put
+    1:26:java.lang.Object put(java.lang.Object,java.lang.Object):369 -> put
+    27:28:java.lang.Object put(java.lang.Object,java.lang.Object):371:372 -> put
+    1:1:void putAll(java.util.Map):327:327 -> putAll
+    2:3:void ensureCapacity(int):295:296 -> putAll
+    2:3:void putAll(java.util.Map):327 -> putAll
+    4:4:int size():761:761 -> putAll
+    4:4:void putAll(java.util.Map):329 -> putAll
+    5:5:void putAll(java.util.Map):329:329 -> putAll
+    6:7:void tryCapacity(long):300:301 -> putAll
+    6:7:void putAll(java.util.Map):329 -> putAll
+    8:8:void putAll(java.util.Map):332:332 -> putAll
+    1:13:java.lang.Object remove(java.lang.Object):408:420 -> remove
+    1:1:int size():761:761 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap subMap(java.lang.Object,java.lang.Object):969:969 -> subMap
+    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):85 -> subMap
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap tailMap(java.lang.Object):949:949 -> tailMap
+    1:1:java.util.SortedMap tailMap(java.lang.Object):85 -> tailMap
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():1529:1550 -> values
+    1:22:java.util.Collection values():85 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1 -> com.android.tools.r8.u.a.a.a.h.W:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1529:1529 -> <init>
+    1:1:void clear():1547:1547 -> clear
+    1:1:boolean contains(java.lang.Object):1542:1542 -> contains
+    1:1:java.util.Iterator iterator():1529:1529 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1532:1532 -> iterator
+    1:1:int size():1537:1537 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.X$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry entry -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> g
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1181:1181 -> <init>
+    1:1:void add(java.lang.Object):1178:1178 -> add
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1174:1174 -> add
+    2:2:void add(java.lang.Object):1178 -> add
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry next():1190:1190 -> next
+    1:1:java.lang.Object next():1178 -> next
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry previous():1195:1195 -> previous
+    1:1:java.lang.Object previous():1178 -> previous
+    1:2:void remove():1200:1201 -> remove
+    1:1:void set(java.lang.Object):1178:1178 -> set
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1170:1170 -> set
+    2:2:void set(java.lang.Object):1178 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.X$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1412:1413 -> <init>
+    1:1:void add(java.lang.Object):1409:1409 -> add
+    1:1:java.lang.Object next():1418:1418 -> next
+    1:1:java.lang.Object previous():1399:1399 -> previous
+    1:1:void set(java.lang.Object):1404:1404 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.X$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1422:1422 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):1422:1422 -> <init>
+    1:1:void clear():1450:1450 -> clear
+    1:1:boolean contains(java.lang.Object):1438:1438 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1428:1428 -> e
+    1:3:java.lang.Object first():1455:1455 -> first
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):1477:1477 -> headSet
+    1:1:java.util.SortedSet headSet(java.lang.Object):1422 -> headSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1422:1422 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1422:1422 -> iterator
+    3:3:java.util.Iterator iterator():1422:1422 -> iterator
+    1:3:java.lang.Object last():1461:1461 -> last
+    1:3:boolean remove(java.lang.Object):1443:1445 -> remove
+    1:1:int size():1433:1433 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):1482:1482 -> subSet
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1422 -> subSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):1472:1472 -> tailSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1422 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.X$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,int):805:806 -> <init>
+    1:3:boolean equals(java.lang.Object):832:834 -> equals
+    1:1:java.lang.Object getKey():814:814 -> getKey
+    1:1:java.lang.Object getValue():819:819 -> getValue
+    1:1:int hashCode():839:839 -> hashCode
+    1:2:java.lang.Object setValue(java.lang.Object):824:825 -> setValue
+    1:1:java.lang.String toString():844:844 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.X$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1228:1228 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):1228:1228 -> <init>
+    1:1:void clear():1330:1330 -> clear
+    1:15:boolean contains(java.lang.Object):1268:1282 -> contains
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry first():1255:1255 -> first
+    1:3:java.lang.Object first():1228 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):1228:1228 -> headSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1245:1245 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):1228 -> headSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1228:1228 -> iterator
+    2:2:java.util.Iterator iterator():1228:1228 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1230:1230 -> iterator
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry last():1261:1261 -> last
+    1:3:java.lang.Object last():1228 -> last
+    1:28:boolean remove(java.lang.Object):1289:1316 -> remove
+    1:1:int size():1325:1325 -> size
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1228:1228 -> subSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1240:1240 -> subSet
+    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1228 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1228:1228 -> tailSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1250:1250 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):1228 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.X$f:
+    int index -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> e
+    int next -> b
+    int curr -> c
+    int prev -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):989:989 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1014:1014 -> <init>
+    3:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):995:1016 -> <init>
+    1:1:boolean hasNext():1048:1048 -> hasNext
+    1:1:boolean hasPrevious():1052:1052 -> hasPrevious
+    1:14:void ensureIndexKnown():1056:1069 -> k
+    1:7:int nextEntry():1084:1084 -> l
+    1:7:int previousEntry():1093:1093 -> m
+    1:2:int nextIndex():1074:1075 -> nextIndex
+    1:2:int previousIndex():1079:1080 -> previousIndex
+    1:49:void remove():1102:1150 -> remove
+    50:50:void remove():1144:1144 -> remove
+    51:51:void remove():1103:1103 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.X$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1517:1518 -> <init>
+    1:1:void add(java.lang.Object):1514:1514 -> add
+    1:1:java.lang.Object next():1523:1523 -> next
+    1:1:java.lang.Object previous():1504:1504 -> previous
+    1:1:void set(java.lang.Object):1509:1509 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap -> com.android.tools.r8.u.a.a.a.h.Z:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry -> com.android.tools.r8.u.a.a.a.h.Y:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet -> com.android.tools.r8.u.a.a.a.h.a0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList -> com.android.tools.r8.u.a.a.a.h.c0:
+    java.lang.Object[] a -> b
+    boolean wrapped -> a
+    int size -> c
+    1:4:void <init>(int):96:99 -> <init>
+    5:5:void <init>(int):97:97 -> <init>
+    1:6:void removeElements(int,int):453:458 -> a
+    1:5:void add(int,java.lang.Object):299:303 -> add
+    6:7:boolean add(java.lang.Object):309:310 -> add
+    1:2:void clear():365:366 -> clear
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList clone():553:555 -> clone
+    1:3:java.lang.Object clone():57 -> clone
+    1:3:java.lang.Object get(int):317:317 -> get
+    1:2:int indexOf(java.lang.Object):323:324 -> indexOf
+    1:1:boolean isEmpty():385:385 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> k
+    1:5:void grow(int):287:291 -> l
+    1:2:int lastIndexOf(java.lang.Object):330:331 -> lastIndexOf
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> listIterator
+    1:2:java.util.ListIterator listIterator(int):57 -> listIterator
+    1:6:java.lang.Object remove(int):337:337 -> remove
+    7:9:boolean remove(java.lang.Object):348:350 -> remove
+    1:7:boolean removeAll(java.util.Collection):485:491 -> removeAll
+    1:4:java.lang.Object set(int,java.lang.Object):357:357 -> set
+    1:1:int size():372:372 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList$1 -> com.android.tools.r8.u.a.a.a.h.b0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList this$0 -> d
+    int last -> b
+    int val$index -> c
+    int pos -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList,int):498:499 -> <init>
+    1:2:void add(java.lang.Object):528:529 -> add
+    1:1:boolean hasNext():502:502 -> hasNext
+    1:1:boolean hasPrevious():506:506 -> hasPrevious
+    1:3:java.lang.Object next():510:510 -> next
+    1:1:int nextIndex():520:520 -> nextIndex
+    1:3:java.lang.Object previous():515:515 -> previous
+    1:1:int previousIndex():524:524 -> previousIndex
+    1:10:void remove():538:538 -> remove
+    1:3:void set(java.lang.Object):533:533 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet -> com.android.tools.r8.u.a.a.a.h.e0:
+    int size -> b
+    1:4:void <init>(java.lang.Object[],int):104:107 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> a
+    1:9:boolean add(java.lang.Object):166:174 -> add
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> b
+    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> c
+    2:3:int findKey(java.lang.Object):111:112 -> c
+    1:2:void clear():180:181 -> clear
+    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet clone():204:208 -> clone
+    1:5:java.lang.Object clone():29 -> clone
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet clone():206:206 -> clone
+    6:6:java.lang.Object clone():29 -> clone
+    1:1:boolean contains(java.lang.Object):144:144 -> contains
+    1:1:boolean isEmpty():186:186 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
+    2:2:java.util.Iterator iterator():29 -> iterator
+    1:7:boolean remove(java.lang.Object):154:160 -> remove
+    1:1:int size():149:149 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet$1 -> com.android.tools.r8.u.a.a.a.h.d0:
+    int next -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet this$0 -> b
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):119:120 -> <init>
+    1:1:boolean hasNext():124:124 -> hasNext
+    1:3:java.lang.Object next():129:129 -> next
+    1:3:void remove():135:137 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrays -> com.android.tools.r8.u.a.a.a.h.f0:
+    java.lang.Object[] EMPTY_ARRAY -> a
+    1:1:void <clinit>():88:88 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator -> com.android.tools.r8.u.a.a.a.h.g0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection -> com.android.tools.r8.u.a.a.a.h.h0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollections$EmptyCollection -> com.android.tools.r8.u.a.a.a.h.i0:
+    1:1:void <init>():39:39 -> <init>
+    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():38 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
+    3:3:java.util.Iterator iterator():38 -> iterator
+    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
+    1:1:java.lang.Object[] toArray():49:49 -> toArray
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator -> com.android.tools.r8.u.a.a.a.h.j0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators -> com.android.tools.r8.u.a.a.a.h.m0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$EmptyIterator EMPTY_ITERATOR -> a
+    1:1:void <clinit>():103:103 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$EmptyIterator -> com.android.tools.r8.u.a.a.a.h.k0:
+    1:1:void <init>():42:42 -> <init>
+    1:1:java.lang.Object clone():87:87 -> clone
+    1:1:java.lang.Object next():57:57 -> next
+    1:1:java.lang.Object previous():62:62 -> previous
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$UnmodifiableIterator -> com.android.tools.r8.u.a.a.a.h.l0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator i -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator):739:740 -> <init>
+    1:1:boolean hasNext():745:745 -> hasNext
+    1:1:java.lang.Object next():750:750 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList -> com.android.tools.r8.u.a.a.a.h.n0:
+    void removeElements(int,int) -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator -> com.android.tools.r8.u.a.a.a.h.o0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet -> com.android.tools.r8.u.a.a.a.h.p0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets -> com.android.tools.r8.u.a.a.a.h.r0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets$EmptySet EMPTY_SET -> a
+    1:1:void <clinit>():70:70 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets$EmptySet -> com.android.tools.r8.u.a.a.a.h.q0:
+    1:1:void <init>():42:42 -> <init>
+    1:1:java.lang.Object clone():52:52 -> clone
+    1:1:boolean equals(java.lang.Object):58:58 -> equals
+    1:1:boolean remove(java.lang.Object):47:47 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet -> com.android.tools.r8.u.a.a.a.h.s0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets -> com.android.tools.r8.u.a.a.a.h.u0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets$EmptySet EMPTY_SET -> a
+    1:1:void <clinit>():114:114 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets$EmptySet -> com.android.tools.r8.u.a.a.a.h.t0:
+    1:1:void <init>():43:43 -> <init>
+    1:1:java.lang.Object clone():101:101 -> clone
+    1:1:java.lang.Object first():86:86 -> first
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):75:75 -> headSet
+    1:1:java.util.SortedSet headSet(java.lang.Object):40 -> headSet
+    1:1:java.lang.Object last():91:91 -> last
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):69:69 -> subSet
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):40 -> subSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):81:81 -> tailSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):40 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap -> com.android.tools.r8.u.a.a.a.h.x0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$Entry -> com.android.tools.r8.u.a.a.a.h.v0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.w0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap -> com.android.tools.r8.u.a.a.a.h.z0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values -> k
+    float f -> h
+    java.lang.Object[] key -> a
+    int maxFill -> f
+    boolean[] value -> b
+    int size -> g
+    int n -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keys -> j
+    int mask -> c
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet entries -> i
+    boolean containsNullKey -> d
+    1:9:void <init>(int,float):91:99 -> <init>
+    10:10:void <init>(int,float):93:93 -> <init>
+    11:11:void <init>(int,float):92:92 -> <init>
+    12:12:void <init>():119:119 -> <init>
+    1:1:boolean access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):49:49 -> a
+    2:2:boolean access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,int):49:49 -> a
+    3:18:int insert(java.lang.Object,boolean):248:263 -> a
+    3:18:boolean put(java.lang.Object,boolean):270 -> a
+    19:20:boolean put(java.lang.Object,boolean):272:273 -> a
+    21:25:boolean containsValue(boolean):359:363 -> a
+    1:12:boolean removeBoolean(java.lang.Object):308:319 -> c
+    1:4:void clear():376:379 -> clear
+    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap clone():954:963 -> clone
+    1:10:java.lang.Object clone():49 -> clone
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap clone():956:956 -> clone
+    11:11:java.lang.Object clone():49 -> clone
+    1:10:boolean containsKey(java.lang.Object):343:352 -> containsKey
+    1:11:boolean getBoolean(java.lang.Object):326:336 -> d
+    12:18:void rehash(int):916:922 -> d
+    19:19:int realSize():205:205 -> d
+    19:19:void rehash(int):923 -> d
+    20:32:void rehash(int):924:936 -> d
+    1:2:boolean removeEntry(int):219:220 -> e
+    3:8:void shiftKeys(int):288:293 -> e
+    3:8:boolean removeEntry(int):221 -> e
+    9:9:boolean removeEntry(int):222:222 -> e
+    10:15:void shiftKeys(int):296:301 -> e
+    10:15:boolean removeEntry(int):221 -> e
+    16:16:void shiftKeys(int):298:298 -> e
+    16:16:boolean removeEntry(int):221 -> e
+    1:1:int realSize():205:205 -> hashCode
+    1:1:int hashCode():980 -> hashCode
+    2:10:int hashCode():981:989 -> hashCode
+    1:5:boolean removeNullEntry():227:231 -> i
+    1:1:boolean isEmpty():389:389 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():771:772 -> keySet
+    1:2:java.util.Set keySet():49 -> keySet
+    1:1:void putAll(java.util.Map):237:237 -> putAll
+    2:3:void ensureCapacity(int):209:210 -> putAll
+    2:3:void putAll(java.util.Map):237 -> putAll
+    4:4:int size():384:384 -> putAll
+    4:4:void putAll(java.util.Map):239 -> putAll
+    5:5:void putAll(java.util.Map):239:239 -> putAll
+    6:7:void tryCapacity(long):214:215 -> putAll
+    6:7:void putAll(java.util.Map):239 -> putAll
+    8:8:void putAll(java.util.Map):242:242 -> putAll
+    1:1:int size():384:384 -> size
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values():803:824 -> values
+    1:22:java.util.Collection values():49 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.y0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):803:803 -> <init>
+    1:1:boolean contains(boolean):816:816 -> b
+    1:1:void clear():821:821 -> clear
+    1:1:java.util.Iterator iterator():803:803 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():806:806 -> iterator
+    1:1:int size():811:811 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.z0$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry entry -> g
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):609:609 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):609:609 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry next():614:614 -> next
+    1:1:java.lang.Object next():609 -> next
+    1:2:void remove():619:620 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.z0$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):730:731 -> <init>
+    1:1:java.lang.Object next():736:736 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.z0$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):740:740 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):740:740 -> <init>
+    1:1:void clear():765:765 -> clear
+    1:1:boolean contains(java.lang.Object):753:753 -> contains
+    1:1:java.util.Iterator iterator():740:740 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():743:743 -> iterator
+    1:3:boolean remove(java.lang.Object):758:760 -> remove
+    1:1:int size():748:748 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.z0$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,int):428:429 -> <init>
+    1:3:boolean equals(java.lang.Object):479:481 -> equals
+    1:1:java.lang.Object getKey():437:437 -> getKey
+    1:1:java.lang.Boolean getValue():461:461 -> getValue
+    1:1:java.lang.Object getValue():423 -> getValue
+    1:1:int hashCode():486:486 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):423:423 -> setValue
+    2:2:java.lang.Boolean setValue(java.lang.Boolean):473:473 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):423 -> setValue
+    3:4:boolean setValue(boolean):447:448 -> setValue
+    3:4:java.lang.Boolean setValue(java.lang.Boolean):473 -> setValue
+    3:4:java.lang.Object setValue(java.lang.Object):423 -> setValue
+    5:5:java.lang.Boolean setValue(java.lang.Boolean):473:473 -> setValue
+    5:5:java.lang.Object setValue(java.lang.Object):423 -> setValue
+    1:1:java.lang.String toString():491:491 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.z0$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):634:634 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):634:634 -> <init>
+    1:1:void clear():710:710 -> clear
+    1:16:boolean contains(java.lang.Object):646:661 -> contains
+    1:1:java.util.Iterator iterator():634:634 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():636:636 -> iterator
+    1:29:boolean remove(java.lang.Object):668:696 -> remove
+    1:1:int size():705:705 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.z0$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
+    int last -> b
+    int pos -> a
+    boolean mustReturnNullKey -> d
+    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):496:519 -> <init>
+    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):496:496 -> <init>
+    1:1:boolean hasNext():527:527 -> hasNext
+    1:19:int nextEntry():531:531 -> k
+    1:5:void remove():585:589 -> remove
+    6:11:void shiftKeys(int):563:568 -> remove
+    6:11:void remove():589 -> remove
+    12:13:void remove():596:597 -> remove
+    14:23:void shiftKeys(int):571:580 -> remove
+    14:23:void remove():589 -> remove
+    24:24:void shiftKeys(int):573:573 -> remove
+    24:24:void remove():589 -> remove
+    25:26:void remove():592:593 -> remove
+    27:27:void remove():585:585 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.z0$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):785:786 -> <init>
+    1:1:boolean nextBoolean():791:791 -> f
+    1:1:java.lang.Boolean next():797:797 -> next
+    1:1:java.lang.Object next():784 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap -> com.android.tools.r8.u.a.a.a.h.C0:
+    java.lang.Object[] key -> b
+    int[] value -> c
+    int size -> d
+    1:3:void <init>():70:72 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> a
+    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap,java.lang.Object):37:37 -> a
+    3:6:int getInt(java.lang.Object):244:247 -> a
+    7:26:int put(java.lang.Object,int):283:302 -> a
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> b
+    2:9:int removeInt(java.lang.Object):308:315 -> b
+    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> c
+    2:4:int findKey(java.lang.Object):235:237 -> c
+    1:4:void clear():257:260 -> clear
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap clone():344:349 -> clone
+    1:6:java.lang.Object clone():37 -> clone
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap clone():346:346 -> clone
+    7:7:java.lang.Object clone():37 -> clone
+    1:1:boolean containsKey(java.lang.Object):265:265 -> containsKey
+    1:1:int[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> d
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet reference2IntEntrySet():231:231 -> d
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():37 -> d
+    3:4:boolean containsValue(int):270:271 -> d
+    1:1:boolean isEmpty():277:277 -> isEmpty
+    1:1:java.util.Set keySet():37:37 -> keySet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():321:321 -> keySet
+    1:1:int size():252:252 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():326:326 -> values
+    1:1:java.util.Collection values():37 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$1 -> com.android.tools.r8.u.a.a.a.h.A0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.h.C0$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):133:133 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$1):133:133 -> <init>
+    1:5:boolean contains(java.lang.Object):203:207 -> contains
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
+    2:2:java.util.Iterator iterator():133 -> iterator
+    1:12:boolean remove(java.lang.Object):213:224 -> remove
+    1:1:int size():197:197 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.h.B0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet this$1 -> c
+    int next -> b
+    int curr -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet):136:137 -> <init>
+    1:1:boolean hasNext():141:141 -> hasNext
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry next():147:147 -> next
+    1:3:java.lang.Object next():136 -> next
+    1:7:void remove():153:153 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntFunction -> com.android.tools.r8.u.a.a.a.h.D0:
+    int getInt(java.lang.Object) -> a
+    int put(java.lang.Object,int) -> a
+    int removeInt(java.lang.Object) -> b
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap -> com.android.tools.r8.u.a.a.a.h.F0:
+    float f -> l
+    java.lang.Object[] key -> b
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> o
+    int maxFill -> j
+    int size -> k
+    int n -> i
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keys -> n
+    int first -> f
+    int last -> g
+    int mask -> d
+    long[] link -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet entries -> m
+    int[] value -> c
+    boolean containsNullKey -> e
+    1:1:void <init>(int,float):147:147 -> <init>
+    2:56:void <init>(int,float):102:156 -> <init>
+    57:57:void <init>(int,float):149:149 -> <init>
+    58:58:void <init>(int,float):148:148 -> <init>
+    1:1:int access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):87:87 -> a
+    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,int):87:87 -> a
+    3:27:int insert(java.lang.Object,int):307:331 -> a
+    3:27:int put(java.lang.Object,int):338 -> a
+    28:30:int put(java.lang.Object,int):339:341 -> a
+    31:41:int getInt(java.lang.Object):721:731 -> a
+    1:12:int removeInt(java.lang.Object):431:442 -> b
+    1:24:void fixPointers(int,int):937:960 -> c
+    1:5:void clear():771:775 -> clear
+    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap clone():1768:1778 -> clone
+    1:11:java.lang.Object clone():87 -> clone
+    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap clone():1770:1770 -> clone
+    12:12:java.lang.Object clone():87 -> clone
+    1:10:boolean containsKey(java.lang.Object):738:747 -> containsKey
+    1:5:boolean containsValue(int):754:758 -> d
+    6:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet reference2IntEntrySet():1422:1423 -> d
+    6:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():87 -> d
+    1:25:void fixPointers(int):899:923 -> f
+    1:3:java.lang.Object firstKey():970:970 -> firstKey
+    1:42:void rehash(int):1709:1750 -> g
+    1:3:int removeEntry(int):276:278 -> h
+    4:9:void shiftKeys(int):410:415 -> h
+    4:9:int removeEntry(int):279 -> h
+    10:10:int removeEntry(int):280:280 -> h
+    11:17:void shiftKeys(int):418:424 -> h
+    11:17:int removeEntry(int):279 -> h
+    18:18:void shiftKeys(int):420:420 -> h
+    18:18:int removeEntry(int):279 -> h
+    1:1:int realSize():262:262 -> hashCode
+    1:1:int hashCode():1795 -> hashCode
+    2:10:int hashCode():1796:1804 -> hashCode
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap headMap(java.lang.Object):1002:1002 -> headMap
+    1:1:java.util.SortedMap headMap(java.lang.Object):87 -> headMap
+    1:6:int removeNullEntry():285:290 -> i
+    1:1:boolean isEmpty():785:785 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keySet():1531:1532 -> keySet
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():87 -> keySet
+    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keySet():1531:1532 -> keySet
+    3:4:java.util.Set keySet():87 -> keySet
+    1:3:java.lang.Object lastKey():981:981 -> lastKey
+    1:1:void putAll(java.util.Map):296:296 -> putAll
+    2:3:void ensureCapacity(int):266:267 -> putAll
+    2:3:void putAll(java.util.Map):296 -> putAll
+    4:4:int size():780:780 -> putAll
+    4:4:void putAll(java.util.Map):298 -> putAll
+    5:5:void putAll(java.util.Map):298:298 -> putAll
+    6:7:void tryCapacity(long):271:272 -> putAll
+    6:7:void putAll(java.util.Map):298 -> putAll
+    8:8:void putAll(java.util.Map):301:301 -> putAll
+    1:1:int size():780:780 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap subMap(java.lang.Object,java.lang.Object):1012:1012 -> subMap
+    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):87 -> subMap
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap tailMap(java.lang.Object):992:992 -> tailMap
+    1:1:java.util.SortedMap tailMap(java.lang.Object):87 -> tailMap
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():1596:1617 -> values
+    1:22:java.util.Collection values():87 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.E0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1596:1596 -> <init>
+    1:1:boolean contains(int):1609:1609 -> b
+    1:1:void clear():1614:1614 -> clear
+    1:1:java.util.Iterator iterator():1596:1596 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1599:1599 -> iterator
+    1:1:int size():1604:1604 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.F0$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry entry -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> g
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1222:1222 -> <init>
+    1:1:void add(java.lang.Object):1219:1219 -> add
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1215:1215 -> add
+    2:2:void add(java.lang.Object):1219 -> add
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry next():1231:1231 -> next
+    1:1:java.lang.Object next():1219 -> next
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry previous():1236:1236 -> previous
+    1:1:java.lang.Object previous():1219 -> previous
+    1:2:void remove():1241:1242 -> remove
+    1:1:void set(java.lang.Object):1219:1219 -> set
+    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1211:1211 -> set
+    2:2:void set(java.lang.Object):1219 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.F0$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1455:1456 -> <init>
+    1:1:void add(java.lang.Object):1452:1452 -> add
+    1:1:java.lang.Object next():1461:1461 -> next
+    1:1:java.lang.Object previous():1442:1442 -> previous
+    1:1:void set(java.lang.Object):1447:1447 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.F0$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1465:1465 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1465:1465 -> <init>
+    1:1:void clear():1493:1493 -> clear
+    1:1:boolean contains(java.lang.Object):1481:1481 -> contains
+    1:3:java.lang.Object first():1498:1498 -> first
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet headSet(java.lang.Object):1520:1520 -> headSet
+    1:1:java.util.SortedSet headSet(java.lang.Object):1465 -> headSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1465 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> iterator
+    2:2:java.util.Iterator iterator():1465 -> iterator
+    1:3:java.lang.Object last():1504:1504 -> last
+    1:3:boolean remove(java.lang.Object):1486:1488 -> remove
+    1:1:int size():1476:1476 -> size
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet subSet(java.lang.Object,java.lang.Object):1525:1525 -> subSet
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1465 -> subSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet tailSet(java.lang.Object):1515:1515 -> tailSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1465 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.F0$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,int):824:825 -> <init>
+    1:1:int getIntValue():838:838 -> a
+    1:3:boolean equals(java.lang.Object):875:877 -> equals
+    1:1:java.lang.Object getKey():833:833 -> getKey
+    1:1:java.lang.Integer getValue():857:857 -> getValue
+    1:1:java.lang.Object getValue():819 -> getValue
+    1:1:int hashCode():882:882 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):819:819 -> setValue
+    2:2:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):819 -> setValue
+    3:4:int setValue(int):843:844 -> setValue
+    3:4:java.lang.Integer setValue(java.lang.Integer):869 -> setValue
+    3:4:java.lang.Object setValue(java.lang.Object):819 -> setValue
+    5:5:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
+    5:5:java.lang.Object setValue(java.lang.Object):819 -> setValue
+    1:1:java.lang.String toString():887:887 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.F0$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1269:1269 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1269:1269 -> <init>
+    1:1:void clear():1373:1373 -> clear
+    1:16:boolean contains(java.lang.Object):1309:1324 -> contains
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry first():1296:1296 -> first
+    1:3:java.lang.Object first():1269 -> first
+    1:1:java.util.SortedSet headSet(java.lang.Object):1269:1269 -> headSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1286:1286 -> headSet
+    2:2:java.util.SortedSet headSet(java.lang.Object):1269 -> headSet
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1269:1269 -> iterator
+    2:2:java.util.Iterator iterator():1269:1269 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry last():1302:1302 -> last
+    1:3:java.lang.Object last():1269 -> last
+    1:29:boolean remove(java.lang.Object):1331:1359 -> remove
+    1:1:int size():1368:1368 -> size
+    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269:1269 -> subSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1281:1281 -> subSet
+    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269 -> subSet
+    1:1:java.util.SortedSet tailSet(java.lang.Object):1269:1269 -> tailSet
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1291:1291 -> tailSet
+    2:2:java.util.SortedSet tailSet(java.lang.Object):1269 -> tailSet
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.F0$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> e
+    int index -> d
+    int next -> b
+    int curr -> c
+    int prev -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1032:1032 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1057:1057 -> <init>
+    3:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1038:1059 -> <init>
+    1:1:boolean hasNext():1091:1091 -> hasNext
+    1:1:boolean hasPrevious():1095:1095 -> hasPrevious
+    1:14:void ensureIndexKnown():1099:1112 -> k
+    1:7:int nextEntry():1127:1127 -> l
+    1:7:int previousEntry():1136:1136 -> m
+    1:2:int nextIndex():1117:1118 -> nextIndex
+    1:2:int previousIndex():1122:1123 -> previousIndex
+    1:47:void remove():1145:1191 -> remove
+    48:48:void remove():1185:1185 -> remove
+    49:49:void remove():1146:1146 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.F0$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> f
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1578:1579 -> <init>
+    1:1:void add(java.lang.Object):1544:1544 -> add
+    2:2:void add(java.lang.Integer):1565:1565 -> add
+    2:2:void add(java.lang.Object):1544 -> add
+    1:1:int previousInt():1547:1547 -> e
+    1:1:int nextInt():1584:1584 -> i
+    1:1:java.lang.Integer next():1590:1590 -> next
+    1:1:java.lang.Object next():1544 -> next
+    1:1:java.lang.Integer previous():1553:1553 -> previous
+    1:1:java.lang.Object previous():1544 -> previous
+    1:1:void set(java.lang.Object):1544:1544 -> set
+    2:2:void set(java.lang.Integer):1559:1559 -> set
+    2:2:void set(java.lang.Object):1544 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap -> com.android.tools.r8.u.a.a.a.h.G0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet() -> d
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry -> com.android.tools.r8.u.a.a.a.h.G0$a:
+    int getIntValue() -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.H0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap -> com.android.tools.r8.u.a.a.a.h.J0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet entries -> j
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> l
+    java.lang.Object[] key -> b
+    float f -> i
+    int[] value -> c
+    int size -> h
+    boolean containsNullKey -> e
+    int n -> f
+    int maxFill -> g
+    int mask -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keys -> k
+    1:9:void <init>(int,float):91:99 -> <init>
+    10:10:void <init>(int,float):93:93 -> <init>
+    11:11:void <init>(int,float):92:92 -> <init>
+    12:12:void <init>(int):110:110 -> <init>
+    13:13:void <init>():119:119 -> <init>
+    1:1:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):49:49 -> a
+    2:2:int access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,int):49:49 -> a
+    3:18:int insert(java.lang.Object,int):248:263 -> a
+    3:18:int put(java.lang.Object,int):270 -> a
+    19:21:int put(java.lang.Object,int):271:273 -> a
+    22:32:int getInt(java.lang.Object):371:381 -> a
+    1:12:int removeInt(java.lang.Object):353:364 -> b
+    1:4:void clear():421:424 -> clear
+    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap clone():999:1008 -> clone
+    1:10:java.lang.Object clone():49 -> clone
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap clone():1001:1001 -> clone
+    11:11:java.lang.Object clone():49 -> clone
+    1:10:boolean containsKey(java.lang.Object):388:397 -> containsKey
+    1:5:boolean containsValue(int):404:408 -> d
+    6:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet reference2IntEntrySet():761:762 -> d
+    6:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():49 -> d
+    1:7:void rehash(int):961:967 -> f
+    8:8:int realSize():205:205 -> f
+    8:8:void rehash(int):968 -> f
+    9:21:void rehash(int):969:981 -> f
+    1:2:int removeEntry(int):219:220 -> g
+    3:8:void shiftKeys(int):333:338 -> g
+    3:8:int removeEntry(int):221 -> g
+    9:9:int removeEntry(int):222:222 -> g
+    10:15:void shiftKeys(int):341:346 -> g
+    10:15:int removeEntry(int):221 -> g
+    16:16:void shiftKeys(int):343:343 -> g
+    16:16:int removeEntry(int):221 -> g
+    1:1:int realSize():205:205 -> hashCode
+    1:1:int hashCode():1025 -> hashCode
+    2:10:int hashCode():1026:1034 -> hashCode
+    1:5:int removeNullEntry():227:231 -> i
+    1:1:boolean isEmpty():434:434 -> isEmpty
+    1:1:java.util.Set keySet():49:49 -> keySet
+    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():816:817 -> keySet
+    1:1:void putAll(java.util.Map):237:237 -> putAll
+    2:3:void ensureCapacity(int):209:210 -> putAll
+    2:3:void putAll(java.util.Map):237 -> putAll
+    4:4:int size():429:429 -> putAll
+    4:4:void putAll(java.util.Map):239 -> putAll
+    5:5:void putAll(java.util.Map):239:239 -> putAll
+    6:7:void tryCapacity(long):214:215 -> putAll
+    6:7:void putAll(java.util.Map):239 -> putAll
+    8:8:void putAll(java.util.Map):242:242 -> putAll
+    1:1:int size():429:429 -> size
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():848:869 -> values
+    1:22:java.util.Collection values():49 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.I0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):848:848 -> <init>
+    1:1:boolean contains(int):861:861 -> b
+    1:1:void clear():866:866 -> clear
+    1:1:java.util.Iterator iterator():848:848 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():851:851 -> iterator
+    1:1:int size():856:856 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.J0$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry entry -> g
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):654:654 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):654:654 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry next():659:659 -> next
+    1:1:java.lang.Object next():654 -> next
+    1:2:void remove():664:665 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.J0$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):775:776 -> <init>
+    1:1:java.lang.Object next():781:781 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.J0$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):785:785 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):785:785 -> <init>
+    1:1:void clear():810:810 -> clear
+    1:1:boolean contains(java.lang.Object):798:798 -> contains
+    1:1:java.util.Iterator iterator():785:785 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
+    1:3:boolean remove(java.lang.Object):803:805 -> remove
+    1:1:int size():793:793 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.J0$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,int):473:474 -> <init>
+    1:1:int getIntValue():487:487 -> a
+    1:3:boolean equals(java.lang.Object):524:526 -> equals
+    1:1:java.lang.Object getKey():482:482 -> getKey
+    1:1:java.lang.Integer getValue():506:506 -> getValue
+    1:1:java.lang.Object getValue():468 -> getValue
+    1:1:int hashCode():531:531 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
+    2:2:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    3:4:int setValue(int):492:493 -> setValue
+    3:4:java.lang.Integer setValue(java.lang.Integer):518 -> setValue
+    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    5:5:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
+    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    1:1:java.lang.String toString():536:536 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.J0$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):679:679 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):679:679 -> <init>
+    1:1:void clear():755:755 -> clear
+    1:16:boolean contains(java.lang.Object):691:706 -> contains
+    1:1:java.util.Iterator iterator():679:679 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
+    1:29:boolean remove(java.lang.Object):713:741 -> remove
+    1:1:int size():750:750 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.J0$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
+    int last -> b
+    int pos -> a
+    boolean mustReturnNullKey -> d
+    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):541:564 -> <init>
+    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):541:541 -> <init>
+    1:1:boolean hasNext():572:572 -> hasNext
+    1:19:int nextEntry():576:576 -> k
+    1:5:void remove():630:634 -> remove
+    6:11:void shiftKeys(int):608:613 -> remove
+    6:11:void remove():634 -> remove
+    12:13:void remove():641:642 -> remove
+    14:23:void shiftKeys(int):616:625 -> remove
+    14:23:void remove():634 -> remove
+    24:24:void shiftKeys(int):618:618 -> remove
+    24:24:void remove():634 -> remove
+    25:26:void remove():637:638 -> remove
+    27:27:void remove():630:630 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.J0$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):830:831 -> <init>
+    1:1:int nextInt():836:836 -> i
+    1:1:java.lang.Integer next():842:842 -> next
+    1:1:java.lang.Object next():829 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet -> com.android.tools.r8.u.a.a.a.h.K0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap -> com.android.tools.r8.u.a.a.a.h.N0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap$Entry -> com.android.tools.r8.u.a.a.a.h.L0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.M0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap -> com.android.tools.r8.u.a.a.a.h.P0:
+    float f -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap$FastEntrySet entries -> i
+    java.lang.Object[] key -> a
+    long[] value -> b
+    int maxFill -> f
+    int size -> g
+    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection values -> k
+    int n -> e
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keys -> j
+    int mask -> c
+    boolean containsNullKey -> d
+    1:9:void <init>(int,float):91:99 -> <init>
+    10:10:void <init>(int,float):93:93 -> <init>
+    11:11:void <init>(int,float):92:92 -> <init>
+    1:1:long access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):49:49 -> a
+    2:2:long access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,int):49:49 -> a
+    3:18:int insert(java.lang.Object,long):248:263 -> a
+    3:18:long put(java.lang.Object,long):270 -> a
+    19:20:long put(java.lang.Object,long):272:273 -> a
+    21:25:boolean containsValue(long):404:408 -> a
+    1:12:long removeLong(java.lang.Object):353:364 -> c
+    1:4:void clear():421:424 -> clear
+    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap clone():999:1008 -> clone
+    1:10:java.lang.Object clone():49 -> clone
+    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap clone():1001:1001 -> clone
+    11:11:java.lang.Object clone():49 -> clone
+    1:10:boolean containsKey(java.lang.Object):388:397 -> containsKey
+    1:11:long getLong(java.lang.Object):371:381 -> d
+    12:18:void rehash(int):961:967 -> d
+    19:19:int realSize():205:205 -> d
+    19:19:void rehash(int):968 -> d
+    20:32:void rehash(int):969:981 -> d
+    1:2:long removeEntry(int):219:220 -> e
+    3:8:void shiftKeys(int):333:338 -> e
+    3:8:long removeEntry(int):221 -> e
+    9:9:long removeEntry(int):222:222 -> e
+    10:15:void shiftKeys(int):341:346 -> e
+    10:15:long removeEntry(int):221 -> e
+    16:16:void shiftKeys(int):343:343 -> e
+    16:16:long removeEntry(int):221 -> e
+    1:1:int realSize():205:205 -> hashCode
+    1:1:int hashCode():1025 -> hashCode
+    2:10:int hashCode():1026:1034 -> hashCode
+    1:5:long removeNullEntry():227:231 -> i
+    1:1:boolean isEmpty():434:434 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():816:817 -> keySet
+    1:2:java.util.Set keySet():49 -> keySet
+    1:1:void putAll(java.util.Map):237:237 -> putAll
+    2:3:void ensureCapacity(int):209:210 -> putAll
+    2:3:void putAll(java.util.Map):237 -> putAll
+    4:4:int size():429:429 -> putAll
+    4:4:void putAll(java.util.Map):239 -> putAll
+    5:5:void putAll(java.util.Map):239:239 -> putAll
+    6:7:void tryCapacity(long):214:215 -> putAll
+    6:7:void putAll(java.util.Map):239 -> putAll
+    8:8:void putAll(java.util.Map):242:242 -> putAll
+    1:1:int size():429:429 -> size
+    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection values():848:869 -> values
+    1:22:java.util.Collection values():49 -> values
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.O0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):848:848 -> <init>
+    1:1:boolean contains(long):861:861 -> b
+    1:1:void clear():866:866 -> clear
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():851:851 -> e
+    1:1:java.util.Iterator iterator():848:848 -> iterator
+    1:1:int size():856:856 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.P0$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> h
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry entry -> g
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):654:654 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1):654:654 -> <init>
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry next():659:659 -> next
+    1:1:java.lang.Object next():654 -> next
+    1:2:void remove():664:665 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.P0$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):775:776 -> <init>
+    1:1:java.lang.Object next():781:781 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.P0$c:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):785:785 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1):785:785 -> <init>
+    1:1:void clear():810:810 -> clear
+    1:1:boolean contains(java.lang.Object):798:798 -> contains
+    1:1:java.util.Iterator iterator():785:785 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
+    1:3:boolean remove(java.lang.Object):803:805 -> remove
+    1:1:int size():793:793 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.P0$d:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> b
+    int index -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,int):473:474 -> <init>
+    1:3:boolean equals(java.lang.Object):524:526 -> equals
+    1:1:java.lang.Object getKey():482:482 -> getKey
+    1:1:java.lang.Long getValue():506:506 -> getValue
+    1:1:java.lang.Object getValue():468 -> getValue
+    1:1:int hashCode():531:531 -> hashCode
+    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
+    2:2:java.lang.Long setValue(java.lang.Long):518:518 -> setValue
+    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    3:4:long setValue(long):492:493 -> setValue
+    3:4:java.lang.Long setValue(java.lang.Long):518 -> setValue
+    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    5:5:java.lang.Long setValue(java.lang.Long):518:518 -> setValue
+    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
+    1:1:java.lang.String toString():536:536 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.P0$e:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):679:679 -> <init>
+    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1):679:679 -> <init>
+    1:1:void clear():755:755 -> clear
+    1:16:boolean contains(java.lang.Object):691:706 -> contains
+    1:1:java.util.Iterator iterator():679:679 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
+    1:29:boolean remove(java.lang.Object):713:741 -> remove
+    1:1:int size():750:750 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.P0$f:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
+    int last -> b
+    int pos -> a
+    boolean mustReturnNullKey -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> f
+    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):541:564 -> <init>
+    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1):541:541 -> <init>
+    1:1:boolean hasNext():572:572 -> hasNext
+    1:19:int nextEntry():576:576 -> k
+    1:5:void remove():630:634 -> remove
+    6:11:void shiftKeys(int):608:613 -> remove
+    6:11:void remove():634 -> remove
+    12:13:void remove():641:642 -> remove
+    14:23:void shiftKeys(int):616:625 -> remove
+    14:23:void remove():634 -> remove
+    24:24:void shiftKeys(int):618:618 -> remove
+    24:24:void remove():634 -> remove
+    25:26:void remove():637:638 -> remove
+    27:27:void remove():630:630 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.P0$g:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> g
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):830:831 -> <init>
+    1:1:long nextLong():836:836 -> a
+    1:1:java.lang.Long next():842:842 -> next
+    1:1:java.lang.Object next():829 -> next
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList -> com.android.tools.r8.u.a.a.a.h.R0:
+    java.lang.Object[] a -> b
+    boolean wrapped -> a
+    int size -> c
+    1:4:void <init>(int):96:99 -> <init>
+    5:5:void <init>(int):97:97 -> <init>
+    1:6:void removeElements(int,int):453:458 -> a
+    1:5:void add(int,java.lang.Object):299:303 -> add
+    6:7:boolean add(java.lang.Object):309:310 -> add
+    1:2:void clear():365:366 -> clear
+    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList clone():553:555 -> clone
+    1:3:java.lang.Object clone():57 -> clone
+    1:3:java.lang.Object get(int):317:317 -> get
+    1:2:int indexOf(java.lang.Object):323:324 -> indexOf
+    1:1:boolean isEmpty():385:385 -> isEmpty
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> k
+    1:5:void grow(int):287:291 -> l
+    1:2:int lastIndexOf(java.lang.Object):330:331 -> lastIndexOf
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> listIterator
+    1:2:java.util.ListIterator listIterator(int):57 -> listIterator
+    1:6:java.lang.Object remove(int):337:337 -> remove
+    7:9:boolean remove(java.lang.Object):348:350 -> remove
+    1:7:boolean removeAll(java.util.Collection):485:491 -> removeAll
+    1:4:java.lang.Object set(int,java.lang.Object):357:357 -> set
+    1:1:int size():372:372 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList$1 -> com.android.tools.r8.u.a.a.a.h.Q0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList this$0 -> d
+    int last -> b
+    int val$index -> c
+    int pos -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList,int):498:499 -> <init>
+    1:2:void add(java.lang.Object):528:529 -> add
+    1:1:boolean hasNext():502:502 -> hasNext
+    1:1:boolean hasPrevious():506:506 -> hasPrevious
+    1:3:java.lang.Object next():510:510 -> next
+    1:1:int nextIndex():520:520 -> nextIndex
+    1:3:java.lang.Object previous():515:515 -> previous
+    1:1:int previousIndex():524:524 -> previousIndex
+    1:10:void remove():538:538 -> remove
+    1:3:void set(java.lang.Object):533:533 -> set
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet -> com.android.tools.r8.u.a.a.a.h.T0:
+    int size -> b
+    1:4:void <init>(java.lang.Object[],int):104:107 -> <init>
+    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> a
+    2:3:int findKey(java.lang.Object):111:112 -> a
+    1:9:boolean add(java.lang.Object):166:174 -> add
+    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> b
+    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> c
+    1:2:void clear():180:181 -> clear
+    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet clone():204:208 -> clone
+    1:5:java.lang.Object clone():29 -> clone
+    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet clone():206:206 -> clone
+    6:6:java.lang.Object clone():29 -> clone
+    1:1:boolean contains(java.lang.Object):144:144 -> contains
+    1:1:boolean isEmpty():186:186 -> isEmpty
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
+    2:2:java.util.Iterator iterator():29 -> iterator
+    1:7:boolean remove(java.lang.Object):154:160 -> remove
+    1:1:int size():149:149 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet$1 -> com.android.tools.r8.u.a.a.a.h.S0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet this$0 -> b
+    int next -> a
+    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):119:120 -> <init>
+    1:1:boolean hasNext():124:124 -> hasNext
+    1:3:java.lang.Object next():129:129 -> next
+    1:3:void remove():135:137 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection -> com.android.tools.r8.u.a.a.a.h.U0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections -> com.android.tools.r8.u.a.a.a.h.X0:
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):383:383 -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections$EmptyCollection -> com.android.tools.r8.u.a.a.a.h.V0:
+    1:1:void <init>():39:39 -> <init>
+    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():38 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
+    2:2:java.util.Iterator iterator():38 -> iterator
+    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
+    1:1:java.lang.Object[] toArray():49:49 -> toArray
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections$UnmodifiableCollection -> com.android.tools.r8.u.a.a.a.h.W0:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection collection -> a
+    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):276:278 -> <init>
+    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):277:277 -> <init>
+    1:1:boolean add(java.lang.Object):283:283 -> add
+    1:1:boolean addAll(java.util.Collection):344:344 -> addAll
+    1:1:void clear():324:324 -> clear
+    1:1:boolean contains(java.lang.Object):303:303 -> contains
+    1:1:boolean containsAll(java.util.Collection):339:339 -> containsAll
+    1:1:boolean equals(java.lang.Object):370:370 -> equals
+    1:1:int hashCode():364:364 -> hashCode
+    1:1:boolean isEmpty():298:298 -> isEmpty
+    1:1:java.util.Iterator iterator():272:272 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307:307 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator):762:762 -> iterator
+    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307 -> iterator
+    1:1:boolean remove(java.lang.Object):288:288 -> remove
+    1:1:boolean removeAll(java.util.Collection):349:349 -> removeAll
+    1:1:boolean retainAll(java.util.Collection):354:354 -> retainAll
+    1:1:int size():293:293 -> size
+    1:1:java.lang.Object[] toArray(java.lang.Object[]):329:329 -> toArray
+    2:2:java.lang.Object[] toArray():334:334 -> toArray
+    1:1:java.lang.String toString():359:359 -> toString
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList -> com.android.tools.r8.u.a.a.a.h.Y0:
+    void removeElements(int,int) -> a
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet -> com.android.tools.r8.u.a.a.a.h.a1:
+    java.lang.Object[] key -> a
+    float f -> g
+    int size -> f
+    int n -> d
+    int maxFill -> e
+    int mask -> b
+    boolean containsNull -> c
+    1:8:void <init>(int,float):77:84 -> <init>
+    9:9:void <init>(int,float):79:79 -> <init>
+    10:10:void <init>(int,float):78:78 -> <init>
+    1:14:boolean add(java.lang.Object):268:281 -> add
+    1:1:boolean addAll(java.util.Collection):255:255 -> addAll
+    2:3:void ensureCapacity(int):243:244 -> addAll
+    2:3:boolean addAll(java.util.Collection):255 -> addAll
+    4:4:int size():380:380 -> addAll
+    4:4:boolean addAll(java.util.Collection):258 -> addAll
+    5:5:boolean addAll(java.util.Collection):258:258 -> addAll
+    6:7:void tryCapacity(long):248:249 -> addAll
+    6:7:boolean addAll(java.util.Collection):258 -> addAll
+    8:8:boolean addAll(java.util.Collection):261:261 -> addAll
+    1:4:void clear():372:375 -> clear
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet clone():640:645 -> clone
+    1:6:java.lang.Object clone():40 -> clone
+    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet clone():642:642 -> clone
+    7:7:java.lang.Object clone():40 -> clone
+    1:9:boolean contains(java.lang.Object):350:358 -> contains
+    1:1:int realSize():239:239 -> hashCode
+    1:1:int hashCode():662 -> hashCode
+    2:4:int hashCode():663:665 -> hashCode
+    1:5:void rehash(int):607:611 -> i
+    6:6:int realSize():239:239 -> i
+    6:6:void rehash(int):612 -> i
+    7:16:void rehash(int):613:622 -> i
+    1:1:boolean isEmpty():385:385 -> isEmpty
+    1:1:java.util.Iterator iterator():40:40 -> iterator
+    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():515:515 -> iterator
+    1:1:boolean removeEntry(int):314:314 -> j
+    2:7:void shiftKeys(int):297:302 -> j
+    2:7:boolean removeEntry(int):315 -> j
+    8:8:boolean removeEntry(int):316:316 -> j
+    9:13:void shiftKeys(int):305:309 -> j
+    9:13:boolean removeEntry(int):315 -> j
+    14:14:void shiftKeys(int):307:307 -> j
+    14:14:boolean removeEntry(int):315 -> j
+    1:1:boolean remove(java.lang.Object):332:332 -> remove
+    2:5:boolean removeNullEntry():321:324 -> remove
+    2:5:boolean remove(java.lang.Object):332 -> remove
+    6:13:boolean remove(java.lang.Object):336:343 -> remove
+    1:1:int size():380:380 -> size
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$1 -> com.android.tools.r8.u.a.a.a.h.Z0:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$SetIterator -> com.android.tools.r8.u.a.a.a.h.a1$a:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet this$0 -> f
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
+    int last -> b
+    int pos -> a
+    boolean mustReturnNull -> d
+    1:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet):414:434 -> <init>
+    22:22:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet,com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$1):414:414 -> <init>
+    1:1:boolean hasNext():442:442 -> hasNext
+    1:16:java.lang.Object next():446:446 -> next
+    1:5:void remove():496:500 -> remove
+    6:11:void shiftKeys(int):475:480 -> remove
+    6:11:void remove():500 -> remove
+    12:13:void remove():507:508 -> remove
+    14:22:void shiftKeys(int):483:491 -> remove
+    14:22:void remove():500 -> remove
+    23:23:void shiftKeys(int):485:485 -> remove
+    23:23:void remove():500 -> remove
+    24:25:void remove():503:504 -> remove
+    26:26:void remove():496:496 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet -> com.android.tools.r8.u.a.a.a.h.b1:
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets -> com.android.tools.r8.u.a.a.a.h.d1:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets$EmptySet EMPTY_SET -> a
+    1:1:void <clinit>():70:70 -> <clinit>
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets$EmptySet -> com.android.tools.r8.u.a.a.a.h.c1:
+    1:1:void <init>():42:42 -> <init>
+    1:1:java.lang.Object clone():52:52 -> clone
+    1:1:boolean equals(java.lang.Object):58:58 -> equals
+    1:1:boolean remove(java.lang.Object):47:47 -> remove
+com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet -> com.android.tools.r8.u.a.a.a.h.e1:
+com.android.tools.r8.jar.CfApplicationWriter -> com.android.tools.r8.v.b:
+    com.android.tools.r8.graph.DexApplication application -> a
+    com.android.tools.r8.graph.AppView appView -> b
+    com.android.tools.r8.graph.GraphLense graphLense -> c
+    com.android.tools.r8.utils.InternalOptions options -> e
+    com.android.tools.r8.naming.NamingLens namingLens -> d
+    com.android.tools.r8.naming.ProguardMapSupplier proguardMapSupplier -> g
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.dex.Marker marker -> f
+    1:1:void <clinit>():62:62 -> <clinit>
+    1:9:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.Marker,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.naming.ProguardMapSupplier):86:94 -> <init>
+    1:1:int com.android.tools.r8.graph.ParameterAnnotationsList.getAnnotableParameterCount():66:66 -> a
+    1:1:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):354 -> a
+    2:2:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):353:353 -> a
+    3:3:int com.android.tools.r8.graph.ParameterAnnotationsList.getAnnotableParameterCount():66:66 -> a
+    3:3:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):356 -> a
+    4:11:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):355:362 -> a
+    12:12:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):360:360 -> a
+    13:17:void write(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):98:102 -> a
+    18:18:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):134:134 -> a
+    19:19:void com.android.tools.r8.org.objectweb.asm.ClassWriter.<init>(int):209:209 -> a
+    19:19:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):134 -> a
+    20:22:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):135:137 -> a
+    23:28:int getClassFileVersion(com.android.tools.r8.graph.DexProgramClass):216:221 -> a
+    23:28:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):138 -> a
+    29:43:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):139:153 -> a
+    44:55:com.android.tools.r8.com.google.common.collect.ImmutableMap getAnnotationDefaults(com.android.tools.r8.graph.DexAnnotationSet):254:265 -> a
+    44:55:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):153 -> a
+    56:98:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):155:197 -> a
+    99:103:void com.android.tools.r8.utils.ExceptionUtils.withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,java.util.function.Consumer):37:41 -> a
+    99:103:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):197 -> a
+    104:104:void lambda$writeClass$0(com.android.tools.r8.ClassFileConsumer,byte[],java.lang.String,com.android.tools.r8.DiagnosticsHandler):198:198 -> a
+    105:108:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):202:205 -> a
+    109:109:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    109:109:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):206 -> a
+    110:110:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):206:206 -> a
+    111:118:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):205:212 -> a
+    119:126:com.android.tools.r8.graph.DexValue getSystemAnnotationValue(com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexType):227:234 -> a
+    127:139:java.lang.String getSignature(com.android.tools.r8.graph.DexAnnotationSet):238:250 -> a
+    140:143:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):291:294 -> a
+    144:147:java.lang.Object getStaticValue(com.android.tools.r8.graph.DexEncodedField):284:287 -> a
+    144:147:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):295 -> a
+    148:150:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):296:298 -> a
+    151:155:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):306:310 -> a
+    156:165:java.lang.String[] getExceptions(com.android.tools.r8.graph.DexAnnotationSet):269:278 -> a
+    156:165:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):310 -> a
+    166:174:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):311:319 -> a
+    175:188:void writeMethodParametersAnnotation(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.DexAnnotation[]):329:342 -> a
+    175:188:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):319 -> a
+    189:191:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):320:322 -> a
+    192:192:void writeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int):440:440 -> a
+    192:192:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):323 -> a
+    193:193:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):325:325 -> a
+    194:194:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor lambda$writeParameterAnnotations$1(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,boolean):361:361 -> a
+    195:204:void writeAnnotations(com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer,com.android.tools.r8.graph.DexAnnotation[]):371:380 -> a
+    205:210:void writeAnnotations(com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer,com.android.tools.r8.graph.DexAnnotation[]):379:384 -> a
+    211:212:void writeAnnotation(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,com.android.tools.r8.graph.DexEncodedAnnotation):390:391 -> a
+    213:217:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):396:400 -> a
+    218:236:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):399:417 -> a
+    237:256:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):416:435 -> a
+    257:257:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):433:433 -> a
+    258:258:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):425:425 -> a
+    259:259:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):423:423 -> a
+    260:260:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):421:421 -> a
+    261:261:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):419:419 -> a
+    1:9:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):108:116 -> b
+    10:10:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> b
+    10:10:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):117 -> b
+    11:15:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):117:121 -> b
+    16:27:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):119:130 -> b
+    28:28:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):124:124 -> b
+com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer -> com.android.tools.r8.v.a:
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visit(java.lang.String,boolean) -> a
+com.android.tools.r8.jetbrains.kotlin.DeprecationLevel -> com.android.tools.r8.w.a.a:
+    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel ERROR -> b
+    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel WARNING -> a
+    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel HIDDEN -> c
+    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel[] $VALUES -> d
+    1:1:void <init>(java.lang.String,int):63:63 -> <init>
+com.android.tools.r8.jetbrains.kotlin.KotlinNullPointerException -> com.android.tools.r8.w.a.b:
+    1:1:void <init>():9:9 -> <init>
+com.android.tools.r8.jetbrains.kotlin.Lazy -> com.android.tools.r8.w.a.c:
+com.android.tools.r8.jetbrains.kotlin.LazyKt -> com.android.tools.r8.w.a.d:
+    1:38:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0:37 -> a
+    1:38:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
+    39:39:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):36:36 -> a
+    39:39:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
+    40:40:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):35:35 -> a
+    40:40:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
+    41:41:void com.android.tools.r8.jetbrains.kotlin.SynchronizedLazyImpl.<init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0,java.lang.Object,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):55:55 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):35 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
+    42:63:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0:21 -> a
+    42:63:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
+    64:64:void com.android.tools.r8.jetbrains.kotlin.SynchronizedLazyImpl.<init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0,java.lang.Object,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):55:55 -> a
+    64:64:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):21 -> a
+    64:64:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
+com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyKt -> com.android.tools.r8.w.a.e:
+com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode -> com.android.tools.r8.w.a.f:
+    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode PUBLICATION -> b
+    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode NONE -> c
+    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode SYNCHRONIZED -> a
+    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode[] $VALUES -> d
+    1:1:void <init>(java.lang.String,int):49:49 -> <init>
+com.android.tools.r8.jetbrains.kotlin.NoWhenBranchMatchedException -> com.android.tools.r8.w.a.g:
+    1:1:void <init>():9:9 -> <init>
+com.android.tools.r8.jetbrains.kotlin.Pair -> com.android.tools.r8.w.a.h:
+    java.lang.Object second -> b
+    java.lang.Object first -> a
+    1:1:void <init>(java.lang.Object,java.lang.Object):26:26 -> <init>
+    java.lang.Object component1() -> a
+    java.lang.Object component2() -> b
+    1:1:java.lang.Object getFirst():27:27 -> c
+    1:1:java.lang.Object getSecond():28:28 -> d
+    1:1:java.lang.String toString():34:34 -> toString
+com.android.tools.r8.jetbrains.kotlin.SafePublicationLazyImpl -> com.android.tools.r8.w.a.i:
+    java.util.concurrent.atomic.AtomicReferenceFieldUpdater valueUpdater -> c
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
+    java.lang.Object _value -> b
+    1:1:void <clinit>():124:124 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):90:92 -> <init>
+    1:17:java.lang.Object getValue():98:114 -> getValue
+    1:1:boolean isInitialized():117:117 -> toString
+    1:1:java.lang.String toString():119 -> toString
+    2:2:java.lang.String toString():119:119 -> toString
+com.android.tools.r8.jetbrains.kotlin.SynchronizedLazyImpl -> com.android.tools.r8.w.a.j:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
+    java.lang.Object _value -> b
+    java.lang.Object lock -> c
+    1:5:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0,java.lang.Object):55:59 -> <init>
+    1:14:java.lang.Object getValue():63:76 -> getValue
+    15:21:java.lang.Object getValue():69:69 -> getValue
+    1:1:boolean isInitialized():82:82 -> toString
+    1:1:java.lang.String toString():84 -> toString
+    2:2:java.lang.String toString():84:84 -> toString
+com.android.tools.r8.jetbrains.kotlin.TypeCastException -> com.android.tools.r8.w.a.k:
+    1:1:void <init>(java.lang.String):11:11 -> <init>
+com.android.tools.r8.jetbrains.kotlin.UNINITIALIZED_VALUE -> com.android.tools.r8.w.a.l:
+    com.android.tools.r8.jetbrains.kotlin.UNINITIALIZED_VALUE INSTANCE -> a
+    1:1:void <clinit>():71:71 -> <clinit>
+    1:1:void <init>():71:71 -> <init>
+com.android.tools.r8.jetbrains.kotlin.UninitializedPropertyAccessException -> com.android.tools.r8.w.a.m:
+    1:1:void <init>(java.lang.String):11:11 -> <init>
+com.android.tools.r8.jetbrains.kotlin.Unit -> com.android.tools.r8.w.a.n:
+    com.android.tools.r8.jetbrains.kotlin.Unit INSTANCE -> a
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>():22:22 -> <init>
+com.android.tools.r8.jetbrains.kotlin.UnsafeLazyImpl -> com.android.tools.r8.w.a.o:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
+    java.lang.Object _value -> b
+    1:3:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):74:76 -> <init>
+    1:3:java.lang.Object getValue():80:82 -> getValue
+    4:8:java.lang.Object getValue():81:85 -> getValue
+    1:1:boolean isInitialized():88:88 -> toString
+    1:1:java.lang.String toString():90 -> toString
+    2:2:java.lang.String toString():90:90 -> toString
+com.android.tools.r8.jetbrains.kotlin._Assertions -> com.android.tools.r8.w.a.p:
+    boolean ENABLED -> a
+    1:1:void <clinit>():14:14 -> <clinit>
+com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection -> com.android.tools.r8.w.a.q.b:
+    1:1:void <init>():13:13 -> <init>
+    1:2:boolean contains(java.lang.Object):40:41 -> contains
+    3:3:boolean contains(java.lang.Object):17:17 -> contains
+    1:2:boolean containsAll(java.util.Collection):43:44 -> containsAll
+    3:3:boolean containsAll(java.util.Collection):20:20 -> containsAll
+    int getSize() -> e
+    1:1:int size():13:13 -> isEmpty
+    1:1:boolean isEmpty():22 -> isEmpty
+    1:1:int size():13:13 -> size
+    1:1:java.lang.Object[] toArray():31:31 -> toArray
+    2:2:java.lang.Object[] toArray(java.lang.Object[]):37:37 -> toArray
+    1:1:java.lang.String toString():24:24 -> toString
+com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection$toString$1 -> com.android.tools.r8.w.a.q.a:
+    com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection this$0 -> a
+    1:1:java.lang.CharSequence invoke(java.lang.Object):25:25 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):13 -> a
+com.android.tools.r8.jetbrains.kotlin.collections.AbstractList -> com.android.tools.r8.w.a.q.d:
+    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion Companion -> a
+    1:1:void <init>():20:20 -> <init>
+    1:3:boolean equals(java.lang.Object):60:62 -> equals
+    4:144:boolean com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.orderedEquals$kotlin_stdlib(java.util.Collection,java.util.Collection):0:140 -> equals
+    4:144:boolean equals(java.lang.Object):62 -> equals
+    1:130:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.orderedHashCode$kotlin_stdlib(java.util.Collection):0:129 -> hashCode
+    1:130:int hashCode():68 -> hashCode
+    1:1:int indexOf(java.lang.Object):149:149 -> indexOf
+    2:2:int indexOf(java.lang.Object):26:26 -> indexOf
+    1:1:java.util.Iterator iterator():24:24 -> iterator
+    1:3:int lastIndexOf(java.lang.Object):155:157 -> lastIndexOf
+    4:134:int lastIndexOf(java.lang.Object):28:158 -> lastIndexOf
+    1:1:java.util.ListIterator listIterator():30:30 -> listIterator
+    2:2:java.util.ListIterator listIterator(int):32:32 -> listIterator
+    1:1:java.util.List subList(int,int):34:34 -> subList
+com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion -> com.android.tools.r8.w.a.q.c:
+    1:1:void <init>():104:104 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):104:104 -> <init>
+com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$IteratorImpl -> com.android.tools.r8.w.a.q.d$a:
+    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList this$0 -> b
+    int index -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList):70:70 -> <init>
+    1:1:void setIndex(int):72:72 -> a
+    1:1:boolean hasNext():74:74 -> hasNext
+    2:2:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection.size():13:13 -> hasNext
+    2:2:boolean hasNext():74 -> hasNext
+    1:1:int getIndex():72:72 -> k
+    1:3:java.lang.Object next():77:77 -> next
+com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$ListIteratorImpl -> com.android.tools.r8.w.a.q.d$b:
+    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList this$0 -> c
+    1:5:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int):85:89 -> <init>
+    6:6:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkPositionIndex$kotlin_stdlib(int,int):113:113 -> <init>
+    6:6:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int):88 -> <init>
+    1:1:boolean hasPrevious():92:92 -> hasPrevious
+    1:1:int nextIndex():94:94 -> nextIndex
+    1:3:java.lang.Object previous():97:97 -> previous
+    1:1:int previousIndex():101:101 -> previousIndex
+com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$SubList -> com.android.tools.r8.w.a.q.e:
+    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList list -> c
+    int fromIndex -> d
+    int _size -> b
+    1:6:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):36:41 -> <init>
+    7:7:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkRangeIndexes$kotlin_stdlib(int,int,int):122:122 -> <init>
+    7:7:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):40 -> <init>
+    8:8:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkRangeIndexes$kotlin_stdlib(int,int,int):119:119 -> <init>
+    8:8:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):40 -> <init>
+    1:1:int getSize():50:50 -> e
+    1:3:java.lang.Object get(int):45:47 -> get
+    4:4:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkElementIndex$kotlin_stdlib(int,int):107:107 -> get
+    4:4:java.lang.Object get(int):45 -> get
+com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt -> com.android.tools.r8.w.a.q.f:
+    1:150:boolean com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__MutableCollectionsKt.addAll(java.util.Collection,java.lang.Object[]):0:149 -> a
+    1:150:boolean com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.addAll(java.util.Collection,java.lang.Object[]):0 -> a
+    151:313:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(int[]):0:162 -> a
+    151:313:java.util.List asList(int[]):0 -> a
+    314:314:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):0:0 -> a
+    314:314:java.util.List asList(java.lang.Object[]):0 -> a
+    315:315:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysUtilJVM.asList(java.lang.Object[]):13:13 -> a
+    315:315:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):127 -> a
+    315:315:java.util.List asList(java.lang.Object[]):0 -> a
+    316:316:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):127:127 -> a
+    316:316:java.util.List asList(java.lang.Object[]):0 -> a
+    317:356:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault(java.lang.Iterable,int):0:39 -> a
+    317:356:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.collectionSizeOrDefault(java.lang.Iterable,int):0 -> a
+    357:357:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):0:0 -> a
+    357:357:java.lang.Integer getOrNull(int[],int):0 -> a
+    358:6917:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getLastIndex(int[]):0:6559 -> a
+    358:6917:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):1231 -> a
+    358:6917:java.lang.Integer getOrNull(int[],int):0 -> a
+    6918:6918:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):1231:1231 -> a
+    6918:6918:java.lang.Integer getOrNull(int[],int):0 -> a
+    6919:9235:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:2316 -> a
+    6919:9235:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2315 -> a
+    6919:9235:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
+    9236:11539:java.lang.Appendable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinTo(java.lang.Iterable,java.lang.Appendable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:2303 -> a
+    9236:11539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):2316 -> a
+    9236:11539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2315 -> a
+    9236:11539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
+    11540:11540:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):2316:2316 -> a
+    11540:11540:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2315 -> a
+    11540:11540:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
+    11541:12712:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):0:1171 -> a
+    11541:12712:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
+    12713:13906:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.util.Collection):0:1193 -> a
+    12713:13906:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1174 -> a
+    12713:13906:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
+    13907:13907:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1173:1173 -> a
+    13907:13907:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
+    13908:13908:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
+    13908:13908:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
+    13908:13908:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1172 -> a
+    13908:13908:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
+    13909:13909:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177:1177 -> a
+    13909:13909:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
+    13910:14132:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):0:222 -> a
+    13910:14132:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177 -> a
+    13910:14132:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
+    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
+    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
+    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):221 -> a
+    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177 -> a
+    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
+    14134:14498:void com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.putAll(java.util.Map,java.lang.Iterable):0:364 -> a
+    14134:14498:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable,java.util.Map):508 -> a
+    14499:14499:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsJVMKt.listOf(java.lang.Object):19:19 -> a
+    14500:14500:int com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.mapCapacity(int):134:134 -> a
+    14500:14500:int com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.mapCapacity(int):0 -> a
+    14501:14501:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.throwIndexOverflow():388:388 -> a
+    14501:14501:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.throwIndexOverflow():0 -> a
+    14502:14503:java.util.Collection com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toCollection(java.lang.Iterable,java.util.Collection):1153:1154 -> a
+    1:76:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):0:75 -> b
+    1:76:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> b
+    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> b
+    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> b
+    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):75 -> b
+    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> b
+    78:576:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable):0:498 -> b
+    78:576:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.toMap(java.lang.Iterable):0 -> b
+    577:577:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable):497:497 -> b
+    577:577:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.toMap(java.lang.Iterable):0 -> b
+    578:605:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsJVMKt.mapOf(com.android.tools.r8.jetbrains.kotlin.Pair):0:27 -> b
+    578:605:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable):497 -> b
+    578:605:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.toMap(java.lang.Iterable):0 -> b
+    606:606:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.emptyMap():39:39 -> b
+    606:606:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable):496 -> b
+    606:606:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.toMap(java.lang.Iterable):0 -> b
+    607:608:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.indexOf(int[],int):1317:1318 -> b
+    1:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1184:1185 -> c
+    3:1196:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.util.Collection):0:1193 -> c
+    3:1196:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1185 -> c
+    1197:1197:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1186:1186 -> c
+    1:1207:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):0:1206 -> d
+    1:1207:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> d
+    1208:1208:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1205:1205 -> d
+    1208:1208:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> d
+    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsJVMKt.setOf(java.lang.Object):16:16 -> d
+    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1205 -> d
+    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> d
+    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsKt.emptySet():34:34 -> d
+    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt.emptySet():0 -> d
+    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1204 -> d
+    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> d
+    1:1388:java.lang.Iterable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.withIndex(java.lang.Iterable):0:1387 -> e
+    1:1388:java.lang.Iterable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.withIndex(java.lang.Iterable):0 -> e
+com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt__ArraysKt -> com.android.tools.r8.w.a.q.g:
+com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt$asList$3 -> com.android.tools.r8.w.a.q.h:
+    int[] $this_asList -> b
+    1:1:void <init>(int[]):162:162 -> <init>
+    1:1:boolean contains(int):165:165 -> b
+    2:405:boolean com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.contains(int[],int):0:403 -> b
+    2:405:boolean contains(int):165 -> b
+    1:1:boolean contains(java.lang.Object):162:162 -> contains
+    1:1:int getSize():163:163 -> e
+    1:1:java.lang.Integer get(int):166:166 -> get
+    1:1:java.lang.Object get(int):162 -> get
+    1:1:int indexOf(java.lang.Object):162:162 -> indexOf
+    2:2:int indexOf(int):167:167 -> indexOf
+    2:2:int indexOf(java.lang.Object):162 -> indexOf
+    1:1:boolean isEmpty():164:164 -> isEmpty
+    1:1:int lastIndexOf(java.lang.Object):162:162 -> lastIndexOf
+    2:2:int lastIndexOf(int):168:168 -> lastIndexOf
+    2:2:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
+    3:3:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):0:0 -> lastIndexOf
+    3:3:int lastIndexOf(int):168 -> lastIndexOf
+    3:3:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
+    4:6365:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getIndices(int[]):0:6361 -> lastIndexOf
+    4:6365:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
+    4:6365:int lastIndexOf(int):168 -> lastIndexOf
+    4:6365:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
+    6366:12925:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getLastIndex(int[]):0:6559 -> lastIndexOf
+    6366:12925:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getIndices(int[]):6361 -> lastIndexOf
+    6366:12925:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
+    6366:12925:int lastIndexOf(int):168 -> lastIndexOf
+    6366:12925:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
+    12926:12926:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getIndices(int[]):6361:6361 -> lastIndexOf
+    12926:12926:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
+    12926:12926:int lastIndexOf(int):168 -> lastIndexOf
+    12926:12926:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
+    12927:13792:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.reversed(java.lang.Iterable):0:865 -> lastIndexOf
+    12927:13792:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
+    12927:13792:int lastIndexOf(int):168 -> lastIndexOf
+    12927:13792:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
+    13793:13830:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsJvmKt.reverse(java.util.List):0:37 -> lastIndexOf
+    13793:13830:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.reversed(java.lang.Iterable):866 -> lastIndexOf
+    13793:13830:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
+    13793:13830:int lastIndexOf(int):168 -> lastIndexOf
+    13793:13830:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
+    13831:13832:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847:1848 -> lastIndexOf
+    13831:13832:int lastIndexOf(int):168 -> lastIndexOf
+    13831:13832:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
+com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt -> com.android.tools.r8.w.a.q.i:
+com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt$withIndex$1 -> com.android.tools.r8.w.a.q.j:
+    java.lang.Iterable $this_withIndex -> a
+    1:1:java.util.Iterator invoke():1387:1387 -> a
+    1:1:java.lang.Object invoke():0 -> a
+com.android.tools.r8.jetbrains.kotlin.collections.EmptyIterator -> com.android.tools.r8.w.a.q.k:
+    com.android.tools.r8.jetbrains.kotlin.collections.EmptyIterator INSTANCE -> a
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>():13:13 -> <init>
+    1:1:java.lang.Void next():18:18 -> next
+    1:1:java.lang.Object next():13 -> next
+    1:1:java.lang.Void previous():19:19 -> previous
+    1:1:java.lang.Object previous():13 -> previous
+com.android.tools.r8.jetbrains.kotlin.collections.EmptyList -> com.android.tools.r8.w.a.q.l:
+    com.android.tools.r8.jetbrains.kotlin.collections.EmptyList INSTANCE -> a
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>():22:22 -> <init>
+    1:1:boolean contains(java.lang.Object):22:22 -> contains
+    2:2:boolean contains(java.lang.Void):0:0 -> contains
+    2:2:boolean contains(java.lang.Object):22 -> contains
+    1:1:boolean containsAll(java.util.Collection):32:32 -> containsAll
+    1:1:boolean equals(java.lang.Object):25:25 -> equals
+    1:1:java.lang.Void get(int):34:34 -> get
+    1:1:java.lang.Object get(int):22 -> get
+    1:1:int indexOf(java.lang.Object):22:22 -> indexOf
+    2:2:int indexOf(java.lang.Void):0:0 -> indexOf
+    2:2:int indexOf(java.lang.Object):22 -> indexOf
+    1:1:java.util.Iterator iterator():38:38 -> iterator
+    1:1:int lastIndexOf(java.lang.Object):22:22 -> lastIndexOf
+    2:2:int lastIndexOf(java.lang.Void):0:0 -> lastIndexOf
+    2:2:int lastIndexOf(java.lang.Object):22 -> lastIndexOf
+    1:1:java.util.ListIterator listIterator():39:39 -> listIterator
+    2:2:java.util.ListIterator listIterator(int):42:42 -> listIterator
+    3:3:java.util.ListIterator listIterator(int):41:41 -> listIterator
+    1:1:java.util.List subList(int,int):47:47 -> subList
+com.android.tools.r8.jetbrains.kotlin.collections.EmptyMap -> com.android.tools.r8.w.a.q.m:
+    com.android.tools.r8.jetbrains.kotlin.collections.EmptyMap INSTANCE -> a
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>():13:13 -> <init>
+    1:1:boolean containsValue(java.lang.Object):13:13 -> containsValue
+    2:2:boolean containsValue(java.lang.Void):0:0 -> containsValue
+    2:2:boolean containsValue(java.lang.Object):13 -> containsValue
+    1:1:java.util.Set getEntries():26:26 -> entrySet
+    1:1:java.util.Set entrySet():13 -> entrySet
+    1:1:boolean equals(java.lang.Object):16:16 -> equals
+    1:1:java.util.Set getKeys():27:27 -> keySet
+    1:1:java.util.Set keySet():13 -> keySet
+    1:1:java.util.Collection getValues():28:28 -> values
+    1:1:java.util.Collection values():13 -> values
+com.android.tools.r8.jetbrains.kotlin.collections.EmptySet -> com.android.tools.r8.w.a.q.n:
+    com.android.tools.r8.jetbrains.kotlin.collections.EmptySet INSTANCE -> a
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:1:void <init>():12:12 -> <init>
+    1:1:boolean contains(java.lang.Object):12:12 -> contains
+    2:2:boolean contains(java.lang.Void):0:0 -> contains
+    2:2:boolean contains(java.lang.Object):12 -> contains
+    1:1:boolean containsAll(java.util.Collection):22:22 -> containsAll
+    1:1:boolean equals(java.lang.Object):15:15 -> equals
+    1:1:java.util.Iterator iterator():24:24 -> iterator
+com.android.tools.r8.jetbrains.kotlin.collections.IndexedValue -> com.android.tools.r8.w.a.q.o:
+    java.lang.Object value -> b
+    int index -> a
+    1:1:void <init>(int,java.lang.Object):14:14 -> <init>
+    1:1:int getIndex():14:14 -> a
+    1:1:java.lang.Object getValue():14:14 -> b
+com.android.tools.r8.jetbrains.kotlin.collections.IndexingIterable -> com.android.tools.r8.w.a.q.p:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 iteratorFactory -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):24:24 -> <init>
+    1:1:java.util.Iterator iterator():25:25 -> iterator
+com.android.tools.r8.jetbrains.kotlin.collections.IndexingIterator -> com.android.tools.r8.w.a.q.q:
+    java.util.Iterator iterator -> b
+    int index -> a
+    1:1:void <init>(java.util.Iterator):37:37 -> <init>
+    1:1:boolean hasNext():39:39 -> hasNext
+    1:1:com.android.tools.r8.jetbrains.kotlin.collections.IndexedValue next():40:40 -> next
+    1:1:java.lang.Object next():37 -> next
+    2:2:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.throwIndexOverflow():388:388 -> next
+    2:2:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.throwIndexOverflow():0 -> next
+    2:2:com.android.tools.r8.jetbrains.kotlin.collections.IndexedValue next():40 -> next
+    2:2:java.lang.Object next():37 -> next
+com.android.tools.r8.jetbrains.kotlin.internal.ProgressionUtilKt -> com.android.tools.r8.w.a.r.a:
+    1:1:int mod(int,int):10:10 -> a
+    2:2:int differenceModulo(int,int,int):21:21 -> a
+    2:2:int getProgressionLastElement(int,int,int):46 -> a
+    3:3:int differenceModulo(int,int,int):21:21 -> a
+    3:3:int getProgressionLastElement(int,int,int):47 -> a
+    4:4:int getProgressionLastElement(int,int,int):48:48 -> a
+com.android.tools.r8.jetbrains.kotlin.jvm.KotlinReflectionNotSupportedError -> com.android.tools.r8.w.a.s.a:
+    1:1:void <init>():11:11 -> <init>
+com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 -> com.android.tools.r8.w.a.s.b.a:
+    java.lang.Object invoke() -> a
+com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 -> com.android.tools.r8.w.a.s.b.b:
+    java.lang.Object invoke(java.lang.Object) -> a
+com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 -> com.android.tools.r8.w.a.s.b.c:
+    java.lang.Object invoke(java.lang.Object,java.lang.Object) -> a
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver -> com.android.tools.r8.w.a.s.c.a:
+    com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver INSTANCE -> a
+    1:1:void <clinit>():40:40 -> <clinit>
+    1:1:void <init>():39:39 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver access$000():39:39 -> a
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.ClassReference -> com.android.tools.r8.w.a.s.c.b:
+    java.lang.Class jClass -> a
+    1:1:void <init>(java.lang.Class):10:10 -> <init>
+    1:1:java.lang.Class getJClass():10:10 -> a
+    1:1:boolean equals(java.lang.Object):82:82 -> equals
+    1:1:int hashCode():85:85 -> hashCode
+    1:1:java.lang.String toString():88:88 -> toString
+    2:2:java.lang.Class getJClass():10:10 -> toString
+    2:2:java.lang.String toString():88 -> toString
+    3:3:java.lang.String toString():88:88 -> toString
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.CollectionToArray -> com.android.tools.r8.w.a.s.c.c:
+    java.lang.Object[] EMPTY -> a
+    1:1:void <clinit>():130:130 -> <clinit>
+    1:4:java.lang.Object[] toArray(java.util.Collection):83:86 -> a
+    5:88:java.lang.Object[] toArray(java.util.Collection):21:104 -> a
+    89:89:java.lang.Object[] toArray(java.util.Collection):23:23 -> a
+    90:90:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):106:106 -> a
+    91:167:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):34:34 -> a
+    172:260:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):39:127 -> a
+    261:264:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):43:46 -> a
+    265:265:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):39:39 -> a
+    266:266:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):30:30 -> a
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker -> com.android.tools.r8.w.a.s.c.d:
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.Intrinsics -> com.android.tools.r8.w.a.s.c.e:
+    int compare(int,int) -> a
+    1:1:void throwNpe():37:37 -> a
+    2:2:void throwUninitializedPropertyAccessException(java.lang.String):49:49 -> a
+    3:3:void throwUninitializedProperty(java.lang.String):45:45 -> a
+    3:3:void throwUninitializedPropertyAccessException(java.lang.String):49 -> a
+    4:4:void checkExpressionValueIsNotNull(java.lang.Object,java.lang.String):78:78 -> a
+    5:5:boolean areEqual(java.lang.Object,java.lang.Object):153:153 -> a
+    6:6:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable):237:237 -> a
+    7:18:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable,java.lang.String):241:252 -> a
+    7:18:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable):237 -> a
+    1:15:void throwParameterIsNullException(java.lang.String):127:141 -> b
+    1:15:void checkParameterIsNotNull(java.lang.Object,java.lang.String):116 -> b
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda -> com.android.tools.r8.w.a.s.c.f:
+    1:1:void <init>(int):10:10 -> <init>
+    1:1:java.lang.String toString():11:11 -> toString
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference -> com.android.tools.r8.w.a.s.c.h:
+    com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.reflected -> a
+    java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.receiver -> b
+    java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.NO_RECEIVER -> c
+    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<clinit>():36:36 -> <clinit>
+    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>():48:48 -> <init>
+    1:1:void <init>():14 -> <init>
+    2:3:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>(java.lang.Object):52:53 -> <init>
+    2:3:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>():48 -> <init>
+    2:3:void <init>():14 -> <init>
+    1:3:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():65:67 -> a
+    1:3:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.computeReflected():24:24 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.computeReflected():0 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():67 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():68:68 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():75:75 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable getReflected():12 -> a
+    6:6:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):138 -> a
+    6:6:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):0 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25:25 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable getReflected():12 -> a
+    7:7:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):138 -> a
+    7:7:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):0 -> a
+    8:8:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):138:138 -> a
+    8:8:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):0 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():77:77 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable getReflected():12 -> a
+    9:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):138 -> a
+    9:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):0 -> a
+    java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getName() -> b
+    com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getOwner() -> c
+    java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getSignature() -> d
+    1:3:boolean equals(java.lang.Object):43:45 -> equals
+    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getBoundReceiver():60:60 -> equals
+    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getBoundReceiver():0 -> equals
+    4:4:boolean equals(java.lang.Object):45 -> equals
+    5:11:boolean equals(java.lang.Object):45:51 -> equals
+    1:1:int hashCode():58:58 -> hashCode
+    1:6:java.lang.String toString():63:68 -> toString
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1Impl -> com.android.tools.r8.w.a.s.c.g:
+    com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer owner -> d
+    java.lang.String signature -> f
+    java.lang.String name -> e
+    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.<init>():14:14 -> <init>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer,java.lang.String,java.lang.String):15 -> <init>
+    2:4:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer,java.lang.String,java.lang.String):16:18 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():75:75 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> a
+    1:1:java.lang.Object get(java.lang.Object):38 -> a
+    1:1:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
+    1:1:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25:25 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> a
+    2:2:java.lang.Object get(java.lang.Object):38 -> a
+    2:2:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
+    2:2:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34:34 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> a
+    3:3:java.lang.Object get(java.lang.Object):38 -> a
+    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
+    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
+    4:4:java.lang.Object get(java.lang.Object):38:38 -> a
+    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
+    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():77:77 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> a
+    5:5:java.lang.Object get(java.lang.Object):38 -> a
+    5:5:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
+    5:5:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
+    1:1:java.lang.String getName():28:28 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer getOwner():23:23 -> c
+    1:1:java.lang.String getSignature():33:33 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():75:75 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25:25 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34:34 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
+    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():77:77 -> e
+    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25 -> e
+    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> e
+    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.Reflection -> com.android.tools.r8.w.a.s.c.i:
+    com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory factory -> a
+    1:9:void <clinit>():22:30 -> <clinit>
+    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class):50:50 -> a
+    2:29:com.android.tools.r8.jetbrains.kotlin.reflect.KClass com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.getOrCreateKotlinClass(java.lang.Class):0:27 -> a
+    2:29:com.android.tools.r8.jetbrains.kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class):50 -> a
+    30:30:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69:69 -> a
+    31:31:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):0:0 -> a
+    31:31:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69 -> a
+    32:33:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.FunctionBase):41:42 -> a
+    32:33:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):36 -> a
+    32:33:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1):94:94 -> a
+    35:35:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1):0:0 -> a
+    35:35:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1):94 -> a
+com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory -> com.android.tools.r8.w.a.s.c.j:
+    1:1:void <init>():11:11 -> <init>
+com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression -> com.android.tools.r8.w.a.t.b:
+    com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression$Companion Companion -> d
+    int last -> b
+    int step -> c
+    int first -> a
+    1:25:void <init>(int,int,int):73:97 -> <init>
+    26:26:void <init>(int,int,int):81:81 -> <init>
+    27:27:void <init>(int,int,int):80:80 -> <init>
+    1:1:int getFirst():87:87 -> e
+    1:1:boolean equals(java.lang.Object):105:105 -> equals
+    1:1:int getLast():92:92 -> f
+    1:1:int getStep():97:97 -> g
+    1:1:int hashCode():109:109 -> hashCode
+    1:1:boolean isEmpty():102:102 -> isEmpty
+    1:1:com.android.tools.r8.jetbrains.kotlin.collections.IntIterator iterator():99:99 -> iterator
+    1:1:java.util.Iterator iterator():72 -> iterator
+    1:1:java.lang.String toString():111:111 -> toString
+com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression$Companion -> com.android.tools.r8.w.a.t.a:
+    1:1:void <init>():113:113 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):113:113 -> <init>
+com.android.tools.r8.jetbrains.kotlin.ranges.IntProgressionIterator -> com.android.tools.r8.w.a.t.c:
+    int step -> d
+    boolean hasNext -> b
+    int next -> c
+    int finalElement -> a
+    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.<init>():35:35 -> <init>
+    1:1:void <init>(int,int,int):38 -> <init>
+    2:5:void <init>(int,int,int):38:41 -> <init>
+    1:1:boolean hasNext():43:43 -> hasNext
+    1:4:int nextInt():46:49 -> next
+    1:4:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36 -> next
+    1:4:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
+    1:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
+    1:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
+    5:9:int nextInt():48:52 -> next
+    5:9:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36 -> next
+    5:9:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
+    5:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
+    5:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
+    10:10:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36:36 -> next
+    10:10:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
+    10:10:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
+    10:10:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
+    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.remove():0:0 -> remove
+    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.remove():0 -> remove
+com.android.tools.r8.jetbrains.kotlin.ranges.IntRange -> com.android.tools.r8.w.a.t.e:
+    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange EMPTY -> e
+    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange$Companion Companion -> f
+    1:1:void <clinit>():58:58 -> <clinit>
+    1:1:void <init>(int,int):39:39 -> <init>
+    1:1:boolean equals(java.lang.Object):48:48 -> equals
+    1:1:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange access$getEMPTY$cp():39:39 -> h
+    1:1:int hashCode():52:52 -> hashCode
+    1:1:boolean isEmpty():45:45 -> isEmpty
+    1:1:java.lang.String toString():54:54 -> toString
+com.android.tools.r8.jetbrains.kotlin.ranges.IntRange$Companion -> com.android.tools.r8.w.a.t.d:
+    1:1:void <init>():56:56 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):56:56 -> <init>
+com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt -> com.android.tools.r8.w.a.t.f:
+    1:1:int com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.coerceIn(int,int,int):1024:1024 -> a
+    1:1:int coerceIn(int,int,int):0 -> a
+com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt__RangesKt -> com.android.tools.r8.w.a.t.g:
+com.android.tools.r8.jetbrains.kotlin.reflect.KCallable -> com.android.tools.r8.w.a.u.a:
+    java.lang.Object call(java.lang.Object[]) -> a
+com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer -> com.android.tools.r8.w.a.u.b:
+com.android.tools.r8.jetbrains.kotlin.reflect.KProperty -> com.android.tools.r8.w.a.u.e:
+com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 -> com.android.tools.r8.w.a.u.d:
+com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter -> com.android.tools.r8.w.a.u.c:
+com.android.tools.r8.jetbrains.kotlin.sequences.Sequence -> com.android.tools.r8.w.a.v.a:
+com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence -> com.android.tools.r8.w.a.v.c:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 transformer -> b
+    com.android.tools.r8.jetbrains.kotlin.sequences.Sequence sequence -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):168:168 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence access$getSequence$p(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):167:167 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 access$getTransformer$p(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):167:167 -> b
+    1:1:java.util.Iterator iterator():169:169 -> iterator
+com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence$iterator$1 -> com.android.tools.r8.w.a.v.b:
+    java.util.Iterator iterator -> a
+    com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence this$0 -> b
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):169:170 -> <init>
+    1:1:boolean hasNext():176:176 -> hasNext
+    1:1:java.lang.Object next():172:172 -> next
+com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence -> com.android.tools.r8.w.a.w.b:
+    java.lang.CharSequence input -> a
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 getNextMatch -> d
+    int startIndex -> b
+    int limit -> c
+    1:1:void <init>(java.lang.CharSequence,int,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2):1072:1072 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 access$getGetNextMatch$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1072:1072 -> a
+    1:1:java.lang.CharSequence access$getInput$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1072:1072 -> b
+    1:1:int access$getLimit$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1072:1072 -> c
+    1:1:int access$getStartIndex$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1072:1072 -> d
+    1:1:java.util.Iterator iterator():1079:1079 -> iterator
+com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence$iterator$1 -> com.android.tools.r8.w.a.w.a:
+    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange nextItem -> d
+    com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence this$0 -> f
+    int counter -> e
+    int currentStartIndex -> b
+    int nextSearchIndex -> c
+    int nextState -> a
+    1:4:void <init>(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1079:1082 -> <init>
+    1:3:boolean hasNext():1123:1125 -> hasNext
+    1:15:void calcNext():1087:1101 -> k
+    16:16:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.until(int,int):705:705 -> k
+    16:16:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.until(int,int):0 -> k
+    16:16:void calcNext():1101 -> k
+    17:17:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.IntRange$Companion.getEMPTY():58:58 -> k
+    17:17:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.until(int,int):705 -> k
+    17:17:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.until(int,int):0 -> k
+    17:17:void calcNext():1101 -> k
+    18:18:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.until(int,int):706:706 -> k
+    18:18:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.until(int,int):0 -> k
+    18:18:void calcNext():1101 -> k
+    19:24:void calcNext():1101:1106 -> k
+    1:8:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1111:1118 -> next
+    1:8:java.lang.Object next():1079 -> next
+    9:9:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1115:1115 -> next
+    9:9:java.lang.Object next():1079 -> next
+    10:10:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1114:1114 -> next
+    10:10:java.lang.Object next():1079 -> next
+com.android.tools.r8.jetbrains.kotlin.text.StringsKt -> com.android.tools.r8.w.a.w.c:
+    1:62:void com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringBuilderKt.appendElement(java.lang.Appendable,java.lang.Object,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:61 -> a
+    1:62:void appendElement(java.lang.Appendable,java.lang.Object,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0 -> a
+    63:63:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains(java.lang.CharSequence,char,boolean):0:0 -> a
+    63:63:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains$default(java.lang.CharSequence,char,boolean,int,java.lang.Object):1059 -> a
+    64:1056:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOf(java.lang.CharSequence,char,int,boolean):0:992 -> a
+    64:1056:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOf$default(java.lang.CharSequence,char,int,boolean,int,java.lang.Object):988 -> a
+    64:1056:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains(java.lang.CharSequence,char,boolean):1060 -> a
+    64:1056:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains$default(java.lang.CharSequence,char,boolean,int,java.lang.Object):1059 -> a
+    1057:1057:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOf(java.lang.CharSequence,char,int,boolean):990:990 -> a
+    1057:1057:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOf$default(java.lang.CharSequence,char,int,boolean,int,java.lang.Object):988 -> a
+    1057:1057:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains(java.lang.CharSequence,char,boolean):1060 -> a
+    1057:1057:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains$default(java.lang.CharSequence,char,boolean,int,java.lang.Object):1059 -> a
+    1058:1122:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):0:64 -> a
+    1058:1122:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    1058:1122:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    1123:1123:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):0:0 -> a
+    1123:1123:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1217 -> a
+    1123:1123:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
+    1123:1123:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    1123:1123:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    1124:1124:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.rangesDelimitedBy$StringsKt__StringsKt(java.lang.CharSequence,char[],int,boolean,int):1143:1143 -> a
+    1124:1124:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.rangesDelimitedBy$StringsKt__StringsKt$default(java.lang.CharSequence,char[],int,boolean,int,int,java.lang.Object):1140 -> a
+    1124:1124:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1218 -> a
+    1124:1124:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1217 -> a
+    1124:1124:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
+    1124:1124:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    1124:1124:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    1125:1125:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1218:1218 -> a
+    1125:1125:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1217 -> a
+    1125:1125:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
+    1125:1125:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    1125:1125:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    1126:1985:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.map(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:859 -> a
+    1126:1985:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.map(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0 -> a
+    1126:1985:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1218 -> a
+    1126:1985:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1217 -> a
+    1126:1985:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
+    1126:1985:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    1126:1985:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    1986:1986:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64:64 -> a
+    1986:1986:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    1986:1986:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:1738 -> a
+    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1737 -> a
+    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
+    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
+    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    1987:3725:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    3726:5449:java.lang.Appendable com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinTo(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.Appendable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:1723 -> a
+    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1738 -> a
+    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1737 -> a
+    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
+    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
+    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    3726:5449:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1738:1738 -> a
+    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1737 -> a
+    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
+    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
+    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
+    5450:5450:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
+    5451:5453:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.startsWith(java.lang.String,java.lang.String,boolean):197:199 -> a
+    5454:5846:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.regionMatches(java.lang.String,int,java.lang.String,int,int,boolean):0:392 -> a
+    5454:5846:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.startsWith(java.lang.String,java.lang.String,boolean):199 -> a
+    5847:5847:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.getLastIndex(java.lang.CharSequence):317:317 -> a
+    5848:5848:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):835:835 -> a
+    5849:8227:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):0:2378 -> a
+    5849:8227:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
+    5849:8227:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):836 -> a
+    8228:8228:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):837:837 -> a
+    8229:8229:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):2379:2379 -> a
+    8229:8229:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
+    8229:8229:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):836 -> a
+    8230:8230:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):2377:2377 -> a
+    8230:8230:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
+    8230:8230:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):836 -> a
+    8231:8812:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):840:1421 -> a
+    8813:8814:boolean com.android.tools.r8.jetbrains.kotlin.text.CharsKt__CharKt.equals(char,char,boolean):35:36 -> a
+    8813:8814:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):842 -> a
+com.android.tools.r8.jetbrains.kotlin.text.StringsKt__RegexExtensionsJVMKt -> com.android.tools.r8.w.a.w.d:
+com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringBuilderJVMKt -> com.android.tools.r8.w.a.w.e:
+com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringNumberConversionsJVMKt -> com.android.tools.r8.w.a.w.f:
+com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt -> com.android.tools.r8.w.a.w.g:
+com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt$rangesDelimitedBy$2 -> com.android.tools.r8.w.a.w.h:
+    char[] $delimiters -> a
+    boolean $ignoreCase -> b
+    1:1145:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):0:1144 -> a
+    1:1145:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
+    1146:1146:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlin.TuplesKt.to(java.lang.Object,java.lang.Object):43:43 -> a
+    1146:1146:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1144 -> a
+    1146:1146:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
+com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt$splitToSequence$2 -> com.android.tools.r8.w.a.w.i:
+    java.lang.CharSequence $this_splitToSequence -> a
+    1:1219:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):0:1218 -> a
+    1:1219:java.lang.Object invoke(java.lang.Object):0 -> a
+    1220:1220:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):0:0 -> a
+    1220:1220:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
+    1220:1220:java.lang.Object invoke(java.lang.Object):0 -> a
+    1221:1221:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.ranges.IntRange.getStart():40:40 -> a
+    1221:1221:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):361 -> a
+    1221:1221:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
+    1221:1221:java.lang.Object invoke(java.lang.Object):0 -> a
+    1222:1222:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):361:361 -> a
+    1222:1222:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
+    1222:1222:java.lang.Object invoke(java.lang.Object):0 -> a
+    1223:1223:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.ranges.IntRange.getEndInclusive():41:41 -> a
+    1223:1223:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):361 -> a
+    1223:1223:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
+    1223:1223:java.lang.Object invoke(java.lang.Object):0 -> a
+    1224:1224:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):361:361 -> a
+    1224:1224:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
+    1224:1224:java.lang.Object invoke(java.lang.Object):0 -> a
+com.android.tools.r8.jetbrains.kotlin.text.StringsKt___StringsJvmKt -> com.android.tools.r8.w.a.w.j:
+com.android.tools.r8.jetbrains.kotlinx.metadata.Flag -> com.android.tools.r8.w.b.a.c:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_OPEN -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_ABSTRACT -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_SEALED -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_PRIVATE -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_PROTECTED -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_PUBLIC -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_FINAL -> g
+    int bitWidth -> b
+    int value -> c
+    int offset -> a
+    1:1:void <clinit>():63:63 -> <clinit>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField):0:0 -> <clinit>
+    2:2:void <clinit>():63 -> <clinit>
+    3:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:0 -> <clinit>
+    3:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField):43 -> <clinit>
+    3:3:void <clinit>():63 -> <clinit>
+    4:4:void <clinit>():70:70 -> <clinit>
+    5:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:0 -> <clinit>
+    5:5:void <clinit>():70 -> <clinit>
+    6:25:void <clinit>():76:95 -> <clinit>
+    26:26:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:0 -> <clinit>
+    26:26:void <clinit>():95 -> <clinit>
+    27:27:void <clinit>():102:102 -> <clinit>
+    28:28:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:0 -> <clinit>
+    28:28:void <clinit>():102 -> <clinit>
+    29:47:void <clinit>():109:127 -> <clinit>
+    1:1:void <init>(int,int,int):40:40 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):41:41 -> <init>
+    1:1:boolean invoke(int):52:52 -> a
+    1:1:int plus$kotlinx_metadata(int):46:46 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.Flag$Type -> com.android.tools.r8.w.b.a.a:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_NULLABLE -> a
+    1:7:void <clinit>():424:430 -> <clinit>
+com.android.tools.r8.jetbrains.kotlinx.metadata.Flag$TypeParameter -> com.android.tools.r8.w.b.a.b:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_REIFIED -> a
+    1:1:void <clinit>():441:441 -> <clinit>
+com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException -> com.android.tools.r8.w.b.a.d:
+    1:1:void <init>(java.lang.String,java.lang.Throwable):8:8 -> <init>
+    2:2:void <init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation -> com.android.tools.r8.w.b.a.e:
+    java.util.Map arguments -> b
+    java.lang.String className -> a
+    1:1:void <init>(java.lang.String,java.util.Map):18:18 -> <init>
+    1:1:java.util.Map getArguments():18:18 -> a
+    1:1:java.lang.String getClassName():18:18 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument -> com.android.tools.r8.w.b.a.w:
+    1:1:void <init>():25:25 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):25:25 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$AnnotationValue -> com.android.tools.r8.w.b.a.f:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation value -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):51:51 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> a
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> equals
+    1:2:boolean equals(java.lang.Object):0 -> equals
+    3:3:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$ArrayValue -> com.android.tools.r8.w.b.a.g:
+    java.util.List value -> a
+    1:1:void <init>(java.util.List):52:52 -> <init>
+    1:1:java.util.List getValue():52:52 -> a
+    1:2:java.util.List getValue():52:52 -> equals
+    1:2:boolean equals(java.lang.Object):0 -> equals
+    3:3:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.util.List getValue():52:52 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.util.List getValue():52:52 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$BooleanValue -> com.android.tools.r8.w.b.a.h:
+    boolean value -> a
+    1:1:void <init>(boolean):38:38 -> <init>
+    1:1:java.lang.Boolean getValue():38:38 -> a
+    1:1:java.lang.Boolean getValue():38:38 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Boolean getValue():38:38 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Boolean getValue():38:38 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Boolean getValue():38:38 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$ByteValue -> com.android.tools.r8.w.b.a.i:
+    byte value -> a
+    1:1:void <init>(byte):31:31 -> <init>
+    1:1:java.lang.Byte getValue():31:31 -> a
+    1:1:java.lang.Byte getValue():31:31 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Byte getValue():31:31 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Byte getValue():31:31 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Byte getValue():31:31 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$CharValue -> com.android.tools.r8.w.b.a.j:
+    char value -> a
+    1:1:void <init>(char):32:32 -> <init>
+    1:1:java.lang.Character getValue():32:32 -> a
+    1:1:java.lang.Character getValue():32:32 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Character getValue():32:32 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Character getValue():32:32 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Character getValue():32:32 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$DoubleValue -> com.android.tools.r8.w.b.a.k:
+    double value -> a
+    1:1:void <init>(double):37:37 -> <init>
+    1:1:java.lang.Double getValue():37:37 -> a
+    1:1:java.lang.Double getValue():37:37 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Double getValue():37:37 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Double getValue():37:37 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Double getValue():37:37 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$EnumValue -> com.android.tools.r8.w.b.a.l:
+    java.lang.String enumClassName -> a
+    java.lang.String enumEntryName -> b
+    1:2:void <init>(java.lang.String,java.lang.String):47:48 -> <init>
+    1:1:java.lang.String getEnumClassName():47:47 -> a
+    1:1:java.lang.String getEnumEntryName():47:47 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$FloatValue -> com.android.tools.r8.w.b.a.m:
+    float value -> a
+    1:1:void <init>(float):36:36 -> <init>
+    1:1:java.lang.Float getValue():36:36 -> a
+    1:1:java.lang.Float getValue():36:36 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Float getValue():36:36 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Float getValue():36:36 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Float getValue():36:36 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$IntValue -> com.android.tools.r8.w.b.a.n:
+    int value -> a
+    1:1:void <init>(int):34:34 -> <init>
+    1:1:java.lang.Integer getValue():34:34 -> a
+    1:1:java.lang.Integer getValue():34:34 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Integer getValue():34:34 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Integer getValue():34:34 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Integer getValue():34:34 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$KClassValue -> com.android.tools.r8.w.b.a.o:
+    java.lang.String value -> a
+    1:1:void <init>(java.lang.String):46:46 -> <init>
+    1:1:java.lang.String getValue():46:46 -> a
+    1:2:java.lang.String getValue():46:46 -> equals
+    1:2:boolean equals(java.lang.Object):0 -> equals
+    3:3:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.String getValue():46:46 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.String getValue():46:46 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$LongValue -> com.android.tools.r8.w.b.a.p:
+    long value -> a
+    1:1:void <init>(long):35:35 -> <init>
+    1:1:java.lang.Long getValue():35:35 -> a
+    1:1:java.lang.Long getValue():35:35 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Long getValue():35:35 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Long getValue():35:35 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Long getValue():35:35 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$ShortValue -> com.android.tools.r8.w.b.a.q:
+    short value -> a
+    1:1:void <init>(short):33:33 -> <init>
+    1:1:java.lang.Short getValue():33:33 -> a
+    1:1:java.lang.Short getValue():33:33 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Short getValue():33:33 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Short getValue():33:33 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Short getValue():33:33 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$StringValue -> com.android.tools.r8.w.b.a.r:
+    java.lang.String value -> a
+    1:1:void <init>(java.lang.String):45:45 -> <init>
+    1:1:java.lang.String getValue():45:45 -> a
+    1:2:java.lang.String getValue():45:45 -> equals
+    1:2:boolean equals(java.lang.Object):0 -> equals
+    3:3:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.String getValue():45:45 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.String getValue():45:45 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$UByteValue -> com.android.tools.r8.w.b.a.s:
+    byte value -> a
+    1:1:void <init>(byte):40:40 -> <init>
+    1:1:java.lang.Byte getValue():40:40 -> a
+    1:1:java.lang.Byte getValue():40:40 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Byte getValue():40:40 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Byte getValue():40:40 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Byte getValue():40:40 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$UIntValue -> com.android.tools.r8.w.b.a.t:
+    int value -> a
+    1:1:void <init>(int):42:42 -> <init>
+    1:1:java.lang.Integer getValue():42:42 -> a
+    1:1:java.lang.Integer getValue():42:42 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Integer getValue():42:42 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Integer getValue():42:42 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Integer getValue():42:42 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$ULongValue -> com.android.tools.r8.w.b.a.u:
+    long value -> a
+    1:1:void <init>(long):43:43 -> <init>
+    1:1:java.lang.Long getValue():43:43 -> a
+    1:1:java.lang.Long getValue():43:43 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Long getValue():43:43 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Long getValue():43:43 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Long getValue():43:43 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$UShortValue -> com.android.tools.r8.w.b.a.v:
+    short value -> a
+    1:1:void <init>(short):41:41 -> <init>
+    1:1:java.lang.Short getValue():41:41 -> a
+    1:1:java.lang.Short getValue():41:41 -> equals
+    1:1:boolean equals(java.lang.Object):0 -> equals
+    2:2:boolean equals(java.lang.Object):0:0 -> equals
+    3:3:java.lang.Short getValue():41:41 -> equals
+    3:3:boolean equals(java.lang.Object):0 -> equals
+    4:4:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.Short getValue():41:41 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    1:1:java.lang.Short getValue():41:41 -> toString
+    1:1:java.lang.String toString():0 -> toString
+    2:2:java.lang.String toString():0:0 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass -> com.android.tools.r8.w.b.a.x:
+    java.util.List extensions -> o
+    java.lang.String companionObject -> j
+    int flags -> b
+    java.util.List functions -> f
+    java.util.List supertypes -> e
+    java.util.List typeParameters -> d
+    java.util.List constructors -> i
+    java.util.List typeAliases -> h
+    java.util.List properties -> g
+    java.lang.String name -> c
+    java.util.List versionRequirements -> n
+    java.util.List sealedSubclasses -> m
+    java.util.List enumEntries -> l
+    java.util.List nestedClasses -> k
+    1:965:void <init>():35:999 -> <init>
+    966:1864:void <init>():102:1000 -> <init>
+    1:1:java.util.List getProperties():64:64 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):110:110 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):116:116 -> a
+    4:4:java.util.List getFunctions():59:59 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):116 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):116:116 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):119:119 -> a
+    7:7:java.util.List getProperties():64:64 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):119 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):119:119 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int):125:125 -> a
+    10:10:void visitCompanionObject(java.lang.String):128:128 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):147:147 -> a
+    12:832:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):155:975 -> a
+    833:1654:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):156:977 -> a
+    1655:1655:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):157:157 -> a
+    1656:1656:java.util.List getFunctions():59:59 -> a
+    1656:1656:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):158 -> a
+    1657:1657:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):979:979 -> a
+    1658:1658:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):158:158 -> a
+    1659:1659:java.util.List getProperties():64:64 -> a
+    1659:1659:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):159 -> a
+    1660:1660:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):981:981 -> a
+    1661:1661:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):159:159 -> a
+    1662:1662:java.util.List getTypeAliases():69:69 -> a
+    1662:1662:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):160 -> a
+    1663:1663:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):983:983 -> a
+    1664:2489:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):160:985 -> a
+    2490:3316:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):161:987 -> a
+    3317:4143:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):163:989 -> a
+    4144:4971:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):164:991 -> a
+    4972:5800:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):165:993 -> a
+    5801:6630:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):166:995 -> a
+    6631:6631:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):167:167 -> a
+    6632:6686:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor.getType():0:54 -> a
+    6632:6686:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):167 -> a
+    6687:6688:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):167:168 -> a
+    6689:6689:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):155:155 -> a
+    1:1:java.util.List getFunctions():59:59 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int):113:113 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):122:122 -> b
+    4:4:java.util.List getTypeAliases():69:69 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):122 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):122:122 -> b
+    6:6:void visitEnumEntry(java.lang.String):136:136 -> b
+    1:2:void visit(int,java.lang.String):105:106 -> c
+    3:3:void visitNestedClass(java.lang.String):132:132 -> c
+    1:1:void visitSealedSubclass(java.lang.String):140:140 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():144:144 -> e
+    1:1:java.util.List getConstructors():74:74 -> f
+    1:1:int getFlags():39:39 -> g
+    1:1:java.util.List getNestedClasses():84:84 -> h
+    1:1:java.util.List getSealedSubclasses():94:94 -> i
+    1:1:java.util.List getSupertypes():54:54 -> j
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor -> com.android.tools.r8.w.b.a.y:
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor -> com.android.tools.r8.w.b.a.z:
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):57:57 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):57:57 -> <init>
+    void visitCompanionObject(java.lang.String) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance) -> a
+    void visitEnumEntry(java.lang.String) -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int) -> b
+    void visit(int,java.lang.String) -> c
+    void visitNestedClass(java.lang.String) -> c
+    void visitSealedSubclass(java.lang.String) -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor getDelegate():59:59 -> d
+    1:1:void visitEnd():153 -> d
+    2:2:void visitEnd():153:153 -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement() -> e
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier -> com.android.tools.r8.w.b.a.D:
+    1:1:void <init>():898:898 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):898:898 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier$Class -> com.android.tools.r8.w.b.a.A:
+    java.lang.String name -> a
+    1:1:void <init>(java.lang.String):904:904 -> <init>
+    1:1:java.lang.String getName():904:904 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier$TypeAlias -> com.android.tools.r8.w.b.a.B:
+    java.lang.String name -> a
+    1:1:void <init>(java.lang.String):919:919 -> <init>
+    1:1:java.lang.String getName():919:919 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier$TypeParameter -> com.android.tools.r8.w.b.a.C:
+    int id -> a
+    1:1:void <init>(int):911:911 -> <init>
+    1:1:int getId():911:911 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstantValue -> com.android.tools.r8.w.b.a.E:
+    java.lang.Object value -> a
+    1:1:void <init>(java.lang.Object):968:968 -> <init>
+    1:1:java.lang.Object getValue():968:968 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor -> com.android.tools.r8.w.b.a.F:
+    java.util.List valueParameters -> b
+    java.util.List extensions -> d
+    java.util.List versionRequirements -> c
+    int flags -> e
+    1:736:void <init>(int):248:983 -> <init>
+    737:1461:void <init>(int):260:984 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):263:263 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):269:269 -> a
+    3:702:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):277:277 -> a
+    703:1403:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):278:278 -> a
+    1404:2105:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):279:279 -> a
+    2106:2346:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor.getType():0:240 -> a
+    2106:2346:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):279 -> a
+    2347:2348:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):279:280 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():266:266 -> b
+    1:1:int getFlags():248:248 -> c
+    1:1:java.util.List getValueParameters():252:252 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor -> com.android.tools.r8.w.b.a.G:
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor -> com.android.tools.r8.w.b.a.H:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):210:210 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):210:210 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String) -> a
+    1:1:void visitEnd():238:238 -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement() -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmContract -> com.android.tools.r8.w.b.a.I:
+    java.util.List effects -> b
+    1:5:void <init>():758:762 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor visitEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind):765:765 -> a
+    2:205:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor):773:773 -> a
+    206:206:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor):774:774 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor -> com.android.tools.r8.w.b.a.J:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor):663:663 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):663:663 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor visitEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind) -> a
+    1:1:void visitEnd():678:678 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer -> com.android.tools.r8.w.b.a.K:
+    java.util.List getProperties() -> a
+    java.util.List getFunctions() -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor -> com.android.tools.r8.w.b.a.L:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor):11:11 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String) -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor getDelegate():11:11 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffect -> com.android.tools.r8.w.b.a.M:
+    java.util.List constructorArguments -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpression conclusion -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType type -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind invocationKind -> e
+    1:6:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind):791:796 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConclusionOfConditionalEffect():807:807 -> a
+    2:163:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor):815:815 -> a
+    164:165:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor):816:817 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConstructorArgument():804:804 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind getInvocationKind():790:790 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType getType():789:789 -> e
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpression -> com.android.tools.r8.w.b.a.N:
+    java.lang.Integer parameterIndex -> c
+    java.util.List andArguments -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstantValue constantValue -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType isInstanceType -> e
+    java.util.List orArguments -> g
+    int flags -> b
+    1:33:void <init>():827:859 -> <init>
+    1:2:void visit(int,java.lang.Integer):862:863 -> a
+    3:3:void visitConstantValue(java.lang.Object):867:867 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitIsInstanceType(int):871:871 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitAndArgument():874:874 -> a
+    6:96:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor):885:975 -> a
+    97:186:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor):888:977 -> a
+    187:188:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor):889:890 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitOrArgument():877:877 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor -> com.android.tools.r8.w.b.a.O:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor):722:722 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):722:722 -> <init>
+    void visit(int,java.lang.Integer) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitAndArgument() -> a
+    void visitConstantValue(java.lang.Object) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitIsInstanceType(int) -> a
+    1:1:void visitEnd():769:769 -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitOrArgument() -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind -> com.android.tools.r8.w.b.a.P:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind[] $VALUES -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind EXACTLY_ONCE -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind AT_MOST_ONCE -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind AT_LEAST_ONCE -> c
+    1:1:void <init>(java.lang.String,int):812:812 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType -> com.android.tools.r8.w.b.a.Q:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType CALLS -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType RETURNS_CONSTANT -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType[] $VALUES -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType RETURNS_NOT_NULL -> c
+    1:1:void <init>(java.lang.String,int):800:800 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor -> com.android.tools.r8.w.b.a.S:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor):691:691 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):691:691 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConclusionOfConditionalEffect() -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConstructorArgument() -> b
+    1:1:void visitEnd():710:710 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType -> com.android.tools.r8.w.b.a.T:
+    com.android.tools.r8.jetbrains.kotlin.reflect.KClass klass -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):31:31 -> <init>
+    1:1:boolean equals(java.lang.Object):33:33 -> equals
+    1:1:int hashCode():36:36 -> hashCode
+    2:87:int com.android.tools.r8.jetbrains.kotlin.jvm.internal.ClassReference.hashCode():0:85 -> hashCode
+    2:87:int hashCode():36 -> hashCode
+    1:1:java.lang.String toString():39:39 -> toString
+    2:30:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaClass(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):0:28 -> toString
+    2:30:java.lang.String toString():39 -> toString
+    31:31:java.lang.String toString():39:39 -> toString
+    32:32:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaClass(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):28:28 -> toString
+    32:32:java.lang.String toString():39 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor -> com.android.tools.r8.w.b.a.U:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType() -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmFlexibleTypeUpperBound -> com.android.tools.r8.w.b.a.V:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType type -> a
+    java.lang.String typeFlexibilityId -> b
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType,java.lang.String):947:947 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType getType():947:947 -> a
+    1:1:java.lang.String getTypeFlexibilityId():947:947 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction -> com.android.tools.r8.w.b.a.W:
+    java.util.List typeParameters -> b
+    java.util.List versionRequirements -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType receiverParameterType -> c
+    java.lang.String name -> j
+    java.util.List valueParameters -> d
+    int flags -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmContract contract -> g
+    java.util.List extensions -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType returnType -> e
+    1:693:void <init>(int,java.lang.String):293:985 -> <init>
+    694:1355:void <init>(int,java.lang.String):325:986 -> <init>
+    1:1:void setReceiverParameterType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):302:302 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):328:328 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):331:331 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):334:334 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():343:343 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):346:346 -> a
+    7:629:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):354:354 -> a
+    630:1252:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):355:977 -> a
+    1253:1876:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):356:979 -> a
+    1877:2500:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):358:981 -> a
+    2501:2501:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):360:360 -> a
+    2502:2621:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor.getType():0:119 -> a
+    2502:2621:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):360 -> a
+    2622:2623:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):360:361 -> a
+    2624:2624:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):357:357 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):337:337 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():340:340 -> c
+    1:1:int getFlags():291:291 -> d
+    1:1:java.lang.String getName():292:292 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType getReceiverParameterType():302:302 -> f
+    1:1:java.util.List getValueParameters():307:307 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor -> com.android.tools.r8.w.b.a.X:
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor -> com.android.tools.r8.w.b.a.Y:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):248:248 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):248:248 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):259:259 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):267:267 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):276:276 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():296:296 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):284:284 -> b
+    2:2:void visitEnd():310:310 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():290:290 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage -> com.android.tools.r8.w.b.a.Z:
+    java.util.List functions -> b
+    java.util.List extensions -> e
+    java.util.List typeAliases -> d
+    java.util.List properties -> c
+    1:811:void <init>():175:985 -> <init>
+    812:1606:void <init>():192:986 -> <init>
+    1:1:java.util.List getFunctions():179:179 -> a
+    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):212 -> a
+    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):975:975 -> a
+    3:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):212:212 -> a
+    4:4:java.util.List getProperties():184:184 -> a
+    4:4:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):213 -> a
+    5:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):977:977 -> a
+    6:6:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):213:213 -> a
+    7:7:java.util.List getTypeAliases():189:189 -> a
+    7:7:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):214 -> a
+    8:8:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):979:979 -> a
+    9:776:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):214:981 -> a
+    777:777:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):215:215 -> a
+    778:870:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor.getType():0:92 -> a
+    778:870:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):215 -> a
+    871:872:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):215:216 -> a
+    873:873:java.util.List getProperties():184:184 -> a
+    874:874:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):195:195 -> a
+    875:875:java.util.List getFunctions():179:179 -> a
+    875:875:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):195 -> a
+    876:876:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):195:195 -> a
+    877:877:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):198:198 -> a
+    878:878:java.util.List getProperties():184:184 -> a
+    878:878:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):198 -> a
+    879:879:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):198:198 -> a
+    880:880:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):204:204 -> a
+    1:1:java.util.List getFunctions():179:179 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):201:201 -> b
+    3:3:java.util.List getTypeAliases():189:189 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):201 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):201:201 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor -> com.android.tools.r8.w.b.a.a0:
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor -> com.android.tools.r8.w.b.a.b0:
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):162:162 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):162:162 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor getDelegate():164:164 -> d
+    1:1:void visitEnd():178 -> d
+    2:2:void visitEnd():178:178 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty -> com.android.tools.r8.w.b.a.c0:
+    java.util.List typeParameters -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter setterParameter -> d
+    java.lang.String name -> i
+    java.util.List versionRequirements -> f
+    int getterFlags -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType receiverParameterType -> c
+    int setterFlags -> k
+    int flags -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType returnType -> e
+    java.util.List extensions -> g
+    1:604:void <init>(int,java.lang.String,int,int):380:983 -> <init>
+    605:1182:void <init>(int,java.lang.String,int,int):407:984 -> <init>
+    1:1:void setName(java.lang.String):377:377 -> a
+    2:2:void setReceiverParameterType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):389:389 -> a
+    3:3:void setSetterParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter):394:394 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):410:410 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):413:413 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):416:416 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):425:425 -> a
+    8:551:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):433:433 -> a
+    552:1095:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):434:977 -> a
+    1096:1638:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):437:979 -> a
+    1639:1639:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):438:438 -> a
+    1640:1805:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor.getType():0:165 -> a
+    1640:1805:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):438 -> a
+    1806:1807:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):438:439 -> a
+    1808:1808:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):436:436 -> a
+    1:1:void setReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):399:399 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):419:419 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():422:422 -> b
+    1:1:int getFlags():376:376 -> c
+    2:2:void setGetterFlags(int):378:378 -> c
+    1:1:int getGetterFlags():378:378 -> d
+    2:2:void setSetterFlags(int):379:379 -> d
+    1:1:java.lang.String getName():377:377 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType getReceiverParameterType():389:389 -> f
+    1:1:int getSetterFlags():379:379 -> g
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter getSetterParameter():394:394 -> h
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor -> com.android.tools.r8.w.b.a.d0:
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor -> com.android.tools.r8.w.b.a.e0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):320:320 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):320:320 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):331:331 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):339:339 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):348:348 -> a
+    4:4:void visitEnd():376:376 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):356:356 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():362:362 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmType -> com.android.tools.r8.w.b.a.f0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFlexibleTypeUpperBound flexibleTypeUpperBound -> f
+    int flags -> h
+    java.util.List arguments -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier classifier -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType abbreviatedType -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType outerType -> e
+    java.util.List extensions -> g
+    1:388:void <init>(int):594:981 -> <init>
+    389:735:void <init>(int):636:982 -> <init>
+    1:668:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeExtension visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):0:667 -> a
+    1:668:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):594 -> a
+    669:669:void visitClass(java.lang.String):639:639 -> a
+    670:670:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitArgument(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):651:651 -> a
+    671:671:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitAbbreviatedType(int):658:658 -> a
+    672:672:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitFlexibleTypeUpperBound(int,java.lang.String):664:664 -> a
+    673:973:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):675:975 -> a
+    974:979:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):681:686 -> a
+    980:980:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):685:685 -> a
+    981:981:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
+    981:981:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):685 -> a
+    982:1274:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):685:977 -> a
+    1275:1275:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):692:692 -> a
+    1276:1583:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor.getType():0:307 -> a
+    1276:1583:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):692 -> a
+    1584:1585:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):692:693 -> a
+    1586:1586:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):675:675 -> a
+    1:1:void visitTypeAlias(java.lang.String):643:643 -> b
+    2:2:void visitStarProjection():654:654 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitOuterType(int):661:661 -> b
+    1:1:int getFlags():594:594 -> c
+    2:2:void visitTypeParameter(int):647:647 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAlias -> com.android.tools.r8.w.b.a.g0:
+    java.util.List typeParameters -> b
+    java.lang.String name -> h
+    java.util.List versionRequirements -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType underlyingType -> c
+    java.util.List annotations -> e
+    int flags -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType expandedType -> d
+    1:26:void <init>(int,java.lang.String):452:477 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):480:480 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitExpandedType(int):486:486 -> a
+    3:3:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):489:489 -> a
+    4:479:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):501:501 -> a
+    480:955:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):502:977 -> a
+    956:1431:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):504:979 -> a
+    1432:1433:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):505:506 -> a
+    1434:1434:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):503:503 -> a
+    1435:1435:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):502:502 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUnderlyingType(int):483:483 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():493:493 -> b
+    1:1:int getFlags():450:450 -> c
+    1:1:java.lang.String getName():451:451 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor -> com.android.tools.r8.w.b.a.h0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):386:386 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):386:386 -> <init>
+    void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitExpandedType(int) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance) -> a
+    1:1:void visitEnd():435:435 -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUnderlyingType(int) -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement() -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor -> com.android.tools.r8.w.b.a.i0:
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameter -> com.android.tools.r8.w.b.a.j0:
+    java.util.List upperBounds -> b
+    java.util.List extensions -> c
+    int id -> f
+    int flags -> d
+    java.lang.String name -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance variance -> g
+    1:420:void <init>(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):562:981 -> <init>
+    421:834:void <init>(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):569:982 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUpperBound(int):572:572 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):575:575 -> a
+    3:396:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):583:583 -> a
+    397:791:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):584:584 -> a
+    792:1063:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor.getType():0:271 -> a
+    792:1063:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):584 -> a
+    1064:1065:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):584:585 -> a
+    1:1:int getFlags():558:558 -> b
+    1:1:int getId():560:560 -> c
+    1:1:java.lang.String getName():559:559 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance getVariance():561:561 -> e
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor -> com.android.tools.r8.w.b.a.k0:
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor -> com.android.tools.r8.w.b.a.l0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):475:475 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):475:475 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUpperBound(int) -> a
+    1:1:void visitEnd():496:496 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeProjection -> com.android.tools.r8.w.b.a.m0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType type -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance variance -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeProjection STAR -> c
+    1:1:void <clinit>():936:936 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):929:929 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance component1() -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType component2() -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor -> com.android.tools.r8.w.b.a.n0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):511:511 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):511:511 -> <init>
+    void visitClass(java.lang.String) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitArgument(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):548:548 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitAbbreviatedType(int):570:570 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitFlexibleTypeUpperBound(int,java.lang.String):596:596 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):604:604 -> a
+    5:5:void visitEnd():610:610 -> a
+    void visitTypeAlias(java.lang.String) -> b
+    1:1:void visitStarProjection():555:555 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitOuterType(int):585:585 -> b
+    1:1:void visitTypeParameter(int):537:537 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter -> com.android.tools.r8.w.b.a.o0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType type -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType varargElementType -> c
+    int flags -> d
+    java.lang.String name -> e
+    1:1:void <init>(int,java.lang.String):519:519 -> <init>
+    1:1:void setType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):523:523 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int):531:531 -> a
+    3:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor):542:544 -> a
+    1:1:int getFlags():517:517 -> b
+    2:2:void setVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):528:528 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int):534:534 -> b
+    1:1:java.lang.String getName():518:518 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType getVarargElementType():528:528 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor -> com.android.tools.r8.w.b.a.p0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor):445:445 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):445:445 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int) -> a
+    1:1:void visitEnd():466:466 -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int) -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance -> com.android.tools.r8.w.b.a.q0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance IN -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance INVARIANT -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance OUT -> c
+    1:1:void <init>(java.lang.String,int):777:777 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersion -> com.android.tools.r8.w.b.a.r0:
+    int minor -> b
+    int patch -> c
+    int major -> a
+    1:1:void <init>(int,int,int):956:956 -> <init>
+    1:1:int getMajor():956:956 -> a
+    1:1:int getMinor():956:956 -> b
+    1:1:int getPatch():956:956 -> c
+    1:1:java.lang.String toString():957:957 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirement -> com.android.tools.r8.w.b.a.s0:
+    java.lang.Integer errorCode -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel level -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind kind -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersion version -> f
+    java.lang.String message -> e
+    1:1:void <init>():703:703 -> <init>
+    1:4:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):730:733 -> a
+    5:5:void visitVersion(int,int,int):737:737 -> a
+    6:8:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor):746:748 -> a
+    9:9:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor):747:747 -> a
+    10:10:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor):746:746 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel -> com.android.tools.r8.w.b.a.t0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel HIDDEN -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel ERROR -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel WARNING -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel[] $VALUES -> d
+    1:1:void <init>(java.lang.String,int):821:821 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind -> com.android.tools.r8.w.b.a.u0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind API_VERSION -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind LANGUAGE_VERSION -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind COMPILER_VERSION -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind[] $VALUES -> d
+    1:1:void <init>(java.lang.String,int):830:830 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor -> com.android.tools.r8.w.b.a.v0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor):622:622 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):622:622 -> <init>
+    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String) -> a
+    void visitVersion(int,int,int) -> a
+    1:1:void visitEnd():651:651 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter -> com.android.tools.r8.w.b.a.w0.i:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder t -> b
+    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):396:398 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):408:408 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:29 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):408 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int):414:414 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):122:122 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int):414 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):417:417 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):145:145 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):417 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):420:420 -> a
+    8:8:void visitCompanionObject(java.lang.String):426:426 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):447:447 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int):411:411 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int):411 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):423:423 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):241:241 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):423 -> b
+    5:7:void visitEnumEntry(java.lang.String):434:434 -> b
+    1:4:void visit(int,java.lang.String):401:404 -> c
+    5:5:void visitNestedClass(java.lang.String):430:430 -> c
+    1:1:void visitSealedSubclass(java.lang.String):440:440 -> d
+    2:3:void visitEnd():452:453 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():444:444 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():444 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext getC():398:398 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder getT():397:397 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitConstructor$1 -> com.android.tools.r8.w.b.a.w0.a:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
+    2:416:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):0:414 -> a
+    2:416:java.lang.Object invoke(java.lang.Object):396 -> a
+    417:417:java.lang.Object invoke(java.lang.Object):396:396 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.b:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
+    2:450:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:448 -> a
+    2:450:java.lang.Object invoke(java.lang.Object):396 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitFunction$1 -> com.android.tools.r8.w.b.a.w0.c:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
+    2:419:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder):0:417 -> a
+    2:419:java.lang.Object invoke(java.lang.Object):396 -> a
+    420:420:java.lang.Object invoke(java.lang.Object):396:396 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitProperty$1 -> com.android.tools.r8.w.b.a.w0.d:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
+    2:422:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):0:420 -> a
+    2:422:java.lang.Object invoke(java.lang.Object):396 -> a
+    423:423:java.lang.Object invoke(java.lang.Object):396:396 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitSupertype$1 -> com.android.tools.r8.w.b.a.w0.e:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
+    2:413:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:411 -> a
+    2:413:java.lang.Object invoke(java.lang.Object):396 -> a
+    414:414:java.lang.Object invoke(java.lang.Object):396:396 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitTypeAlias$1 -> com.android.tools.r8.w.b.a.w0.f:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
+    2:425:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder):0:423 -> a
+    2:425:java.lang.Object invoke(java.lang.Object):396 -> a
+    426:426:java.lang.Object invoke(java.lang.Object):396:396 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.g:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
+    2:410:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):0:408 -> a
+    2:410:java.lang.Object invoke(java.lang.Object):396 -> a
+    411:411:java.lang.Object invoke(java.lang.Object):396:396 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.h:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
+    2:2:void invoke(int):444:444 -> a
+    2:2:java.lang.Object invoke(java.lang.Object):396 -> a
+    3:3:java.lang.Object invoke(java.lang.Object):396:396 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter -> com.android.tools.r8.w.b.a.w0.n:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder t -> b
+    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):458:460 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):463:463 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):145:145 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):463 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):466:466 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):472:472 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):469:469 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):241:241 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):469 -> b
+    1:2:void visitEnd():477:478 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext getC():460:460 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder getT():459:459 -> f
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.j:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter this$0 -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
+    1:1:java.lang.Object invoke(java.lang.Object):458:458 -> a
+    2:475:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:473 -> a
+    2:475:java.lang.Object invoke(java.lang.Object):458 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter$visitFunction$1 -> com.android.tools.r8.w.b.a.w0.k:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):458:458 -> a
+    2:465:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder):0:463 -> a
+    2:465:java.lang.Object invoke(java.lang.Object):458 -> a
+    466:466:java.lang.Object invoke(java.lang.Object):458:458 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter$visitProperty$1 -> com.android.tools.r8.w.b.a.w0.l:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):458:458 -> a
+    2:468:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):0:466 -> a
+    2:468:java.lang.Object invoke(java.lang.Object):458 -> a
+    469:469:java.lang.Object invoke(java.lang.Object):458:458 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter$visitTypeAlias$1 -> com.android.tools.r8.w.b.a.w0.m:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):458:458 -> a
+    2:471:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder):0:469 -> a
+    2:471:java.lang.Object invoke(java.lang.Object):458 -> a
+    472:472:java.lang.Object invoke(java.lang.Object):458:458 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext -> com.android.tools.r8.w.b.a.w0.o:
+    java.util.List extensions -> a
+    java.util.Map typeParameterNameToId -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable types -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext parent -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver strings -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable versionRequirements -> e
+    1:8:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):14:21 -> <init>
+    1:1:java.util.List getExtensions$kotlinx_metadata():20:20 -> a
+    2:2:java.lang.String className(int):27:27 -> a
+    3:5:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext withTypeParameters(java.util.List):33:35 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver getStrings():15:15 -> b
+    2:2:java.lang.String get(int):24:24 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable getTypes():16:16 -> c
+    2:2:java.lang.Integer getTypeParameterId(int):30:30 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable getVersionRequirements$kotlinx_metadata():17:17 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadUtilsKt -> com.android.tools.r8.w.b.a.w0.p:
+    1:1:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.ClassNameKt.isLocal(java.lang.String):0:0 -> a
+    1:1:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.getClassNameIndex(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable,java.lang.String):109 -> a
+    2:2:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.startsWith$default(java.lang.String,java.lang.String,boolean,int,java.lang.Object):195:195 -> a
+    2:2:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt.startsWith$default(java.lang.String,java.lang.String,boolean,int,java.lang.Object):0 -> a
+    2:2:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.ClassNameKt.isLocal(java.lang.String):22 -> a
+    2:2:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.getClassNameIndex(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable,java.lang.String):109 -> a
+    3:5:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.getClassNameIndex(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable,java.lang.String):110:112 -> a
+    6:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):17:22 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):20:20 -> a
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):17:17 -> a
+    14:65:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):18:69 -> a
+    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):68:68 -> a
+    67:68:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):20:21 -> a
+    69:69:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlin.TuplesKt.to(java.lang.Object,java.lang.Object):43:43 -> a
+    69:69:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):21 -> a
+    70:70:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):68:68 -> a
+    71:71:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):23:23 -> a
+    72:72:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):17:17 -> a
+    73:78:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):27:32 -> a
+    79:79:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):31:31 -> a
+    80:80:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):30:30 -> a
+    81:103:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):29:51 -> a
+    104:135:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:81 -> a
+    136:136:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):80:80 -> a
+    137:168:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:50 -> a
+    169:169:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):49:49 -> a
+    170:170:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):48:48 -> a
+    171:171:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):47:47 -> a
+    172:172:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):46:46 -> a
+    173:173:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):45:45 -> a
+    174:174:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):44:44 -> a
+    175:175:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):43:43 -> a
+    176:176:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):42:42 -> a
+    177:177:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):41:41 -> a
+    178:178:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):40:40 -> a
+    179:179:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):39:39 -> a
+    180:180:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):38:38 -> a
+    181:256:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):28:28 -> a
+    257:257:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):41:41 -> a
+    258:258:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):18:18 -> a
+    258:258:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):41 -> a
+    259:654:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):42:437 -> a
+    655:655:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):436:436 -> a
+    656:656:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):435:435 -> a
+    657:657:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
+    657:657:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
+    657:657:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):440 -> a
+    658:658:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):440:440 -> a
+    659:1052:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):47:440 -> a
+    1053:1053:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):434:434 -> a
+    1054:1054:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:50 -> a
+    1055:1168:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.supertypes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:113 -> a
+    1055:1168:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50 -> a
+    1169:1169:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.supertypes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):24:24 -> a
+    1169:1169:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50 -> a
+    1170:1175:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:55 -> a
+    1176:1185:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):132:141 -> a
+    1176:1185:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
+    1186:1273:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:87 -> a
+    1186:1273:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):141 -> a
+    1186:1273:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
+    1274:1330:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method):0:56 -> a
+    1274:1330:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):87 -> a
+    1274:1330:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):141 -> a
+    1274:1330:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
+    1331:1331:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):87:87 -> a
+    1331:1331:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):141 -> a
+    1331:1331:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
+    1332:1332:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):144:144 -> a
+    1332:1332:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
+    1333:1347:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):58:72 -> a
+    1348:1348:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):70:70 -> a
+    1349:1349:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
+    1349:1349:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):70 -> a
+    1350:1364:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):70:84 -> a
+    1365:1393:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:28 -> a
+    1365:1393:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):84 -> a
+    1394:1401:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):27:34 -> a
+    1394:1401:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):84 -> a
+    1402:1402:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):87:87 -> a
+    1403:1403:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):56:56 -> a
+    1404:1404:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver.getQualifiedClassName(int):72:72 -> a
+    1404:1404:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):56 -> a
+    1405:1405:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):57:57 -> a
+    1406:1406:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):91:91 -> a
+    1407:1407:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):18:18 -> a
+    1407:1407:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):91 -> a
+    1408:1411:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):93:96 -> a
+    1412:1454:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:42 -> a
+    1412:1454:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):96 -> a
+    1455:1462:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):41:48 -> a
+    1455:1462:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):96 -> a
+    1463:1463:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):99:99 -> a
+    1464:1465:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):108:109 -> a
+    1466:1763:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):148:445 -> a
+    1466:1763:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    1764:1764:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):444:444 -> a
+    1764:1764:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    1765:1765:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):443:443 -> a
+    1765:1765:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    1766:1766:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
+    1766:1766:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
+    1766:1766:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):448 -> a
+    1766:1766:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    1767:1767:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):448:448 -> a
+    1767:1767:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    1768:2065:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):151:448 -> a
+    1768:2065:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2066:2066:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):442:442 -> a
+    2066:2066:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2067:2067:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):154:154 -> a
+    2067:2067:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2068:2069:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    2068:2069:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):155 -> a
+    2068:2069:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2070:2082:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):155:167 -> a
+    2070:2082:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2083:2089:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):354:360 -> a
+    2083:2089:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
+    2083:2089:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2090:2090:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):359:359 -> a
+    2090:2090:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
+    2090:2090:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2091:2099:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):358:366 -> a
+    2091:2099:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
+    2091:2099:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2100:2100:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):365:365 -> a
+    2100:2100:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
+    2100:2100:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2101:2106:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):364:369 -> a
+    2101:2106:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
+    2101:2106:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2107:2115:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):376:384 -> a
+    2107:2115:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):369 -> a
+    2107:2115:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
+    2107:2115:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2116:2116:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):363:363 -> a
+    2116:2116:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
+    2116:2116:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2117:2132:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):357:372 -> a
+    2117:2132:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
+    2117:2132:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2133:2138:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):170:175 -> a
+    2133:2138:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2139:2192:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:53 -> a
+    2139:2192:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):175 -> a
+    2139:2192:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2193:2249:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method):0:56 -> a
+    2193:2249:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):53 -> a
+    2193:2249:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):175 -> a
+    2193:2249:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2250:2257:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):53:60 -> a
+    2250:2257:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):175 -> a
+    2250:2257:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2258:2258:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):178:178 -> a
+    2258:2258:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
+    2259:2261:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):112:114 -> a
+    2262:2268:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):113:119 -> a
+    2269:2517:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):213:461 -> a
+    2269:2517:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2518:2518:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):460:460 -> a
+    2518:2518:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2519:2519:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):459:459 -> a
+    2519:2519:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2520:2520:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
+    2520:2520:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
+    2520:2520:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):464 -> a
+    2520:2520:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2521:2521:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):464:464 -> a
+    2521:2521:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2522:2770:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):216:464 -> a
+    2522:2770:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2771:2771:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):458:458 -> a
+    2771:2771:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2772:2772:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):219:219 -> a
+    2772:2772:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2773:2868:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.underlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:95 -> a
+    2773:2868:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):219 -> a
+    2773:2868:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2869:2872:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):220:223 -> a
+    2869:2872:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2873:2974:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.expandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:101 -> a
+    2873:2974:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):223 -> a
+    2873:2974:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2975:2986:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):224:235 -> a
+    2975:2986:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2987:2987:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.expandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):102:102 -> a
+    2987:2987:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):223 -> a
+    2987:2987:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2988:2988:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.underlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):96:96 -> a
+    2988:2988:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):219 -> a
+    2988:2988:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
+    2989:3260:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):182:453 -> a
+    3261:3261:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):452:452 -> a
+    3262:3262:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):451:451 -> a
+    3263:3263:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
+    3263:3263:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
+    3263:3263:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):456 -> a
+    3264:3264:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):456:456 -> a
+    3265:3536:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):185:456 -> a
+    3537:3537:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):450:450 -> a
+    3538:3538:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):188:188 -> a
+    3539:3604:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.receiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:65 -> a
+    3539:3604:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):188 -> a
+    3605:3606:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    3605:3606:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):189 -> a
+    3607:3624:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):189:206 -> a
+    3625:3697:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:72 -> a
+    3625:3697:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
+    3698:3755:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field):0:57 -> a
+    3698:3755:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):73 -> a
+    3698:3755:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
+    3756:3757:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):74:75 -> a
+    3756:3757:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
+    3758:3769:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):71:82 -> a
+    3758:3769:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
+    3770:3770:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):209:209 -> a
+    3771:3771:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeProperty(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):182:182 -> a
+    3772:3776:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):239:243 -> a
+    3777:3854:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.varargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:77 -> a
+    3777:3854:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):243 -> a
+    3855:3856:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    3855:3856:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):244 -> a
+    3857:3860:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):244:247 -> a
+    3861:3861:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):264:264 -> a
+    3861:3861:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
+    3862:3979:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.upperBounds(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:117 -> a
+    3862:3979:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):264 -> a
+    3862:3979:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
+    3980:3980:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.upperBounds(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):39:39 -> a
+    3980:3980:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):264 -> a
+    3980:3980:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
+    3981:3986:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):264:269 -> a
+    3981:3986:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
+    3987:4082:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readTypeParameterExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:95 -> a
+    3987:4082:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):269 -> a
+    3987:4082:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
+    4083:4083:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):272:272 -> a
+    4083:4083:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
+    4084:4102:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):277:295 -> a
+    4103:4103:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):294:294 -> a
+    4104:4104:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):293:293 -> a
+    4105:4112:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):292:299 -> a
+    4113:4141:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.type(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:28 -> a
+    4113:4141:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):299 -> a
+    4142:4143:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    4142:4143:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):301 -> a
+    4144:4144:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):301:301 -> a
+    4145:4145:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):300:300 -> a
+    4146:4146:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
+    4146:4146:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):300 -> a
+    4147:4150:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):300:303 -> a
+    4151:4167:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):291:307 -> a
+    4168:4257:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.abbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:89 -> a
+    4168:4257:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):307 -> a
+    4258:4259:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    4258:4259:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):308 -> a
+    4260:4263:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):308:311 -> a
+    4264:4347:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.outerType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:83 -> a
+    4264:4347:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):311 -> a
+    4348:4349:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    4348:4349:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):312 -> a
+    4350:4353:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):312:315 -> a
+    4354:4388:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.flexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:34 -> a
+    4354:4388:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):315 -> a
+    4389:4390:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    4389:4390:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):317 -> a
+    4391:4391:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):318:318 -> a
+    4392:4399:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):316:323 -> a
+    4400:4504:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readTypeExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:104 -> a
+    4400:4504:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):323 -> a
+    4505:4505:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):326:326 -> a
+    4506:4510:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):282:286 -> a
+    4511:4511:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
+    4511:4511:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):286 -> a
+    4512:4512:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):286:286 -> a
+    4513:4513:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330:330 -> a
+    4514:4616:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):0:102 -> a
+    4514:4616:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
+    4617:4621:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion.decode(java.lang.Integer,java.lang.Integer):65:65 -> a
+    4617:4621:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):100 -> a
+    4617:4621:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
+    4626:4630:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion.decode(java.lang.Integer,java.lang.Integer):70:70 -> a
+    4626:4630:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):100 -> a
+    4626:4630:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
+    4635:4635:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion.decode(java.lang.Integer,java.lang.Integer):75:75 -> a
+    4635:4635:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):100 -> a
+    4635:4635:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
+    4636:4639:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):105:108 -> a
+    4636:4639:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
+    4640:4640:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):107:107 -> a
+    4640:4640:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
+    4641:4650:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):106:115 -> a
+    4641:4650:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
+    4651:4651:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):105:105 -> a
+    4651:4651:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
+    4652:4655:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):333:336 -> a
+    4656:4656:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):335:335 -> a
+    4657:4665:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):334:342 -> a
+    4666:4666:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):341:341 -> a
+    4667:4677:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):340:350 -> a
+    4678:4678:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):331:331 -> a
+    4679:4679:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
+    4679:4679:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):331 -> a
+    4680:4680:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):331:331 -> a
+    4681:4682:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):389:390 -> a
+    4683:4693:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):388:398 -> a
+    4694:4694:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):397:397 -> a
+    4695:4695:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):396:396 -> a
+    4696:4705:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):394:403 -> a
+    4706:4813:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.isInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:107 -> a
+    4706:4813:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):403 -> a
+    4814:4815:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    4814:4815:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):404 -> a
+    4816:4827:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):404:415 -> a
+    4828:4829:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
+    4830:4830:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getPropertyGetterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):426:426 -> a
+    4831:4831:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getDefaultPropertyAccessorFlags(int):432:432 -> a
+    1:1:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getPropertySetterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):429:429 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext -> com.android.tools.r8.w.b.a.w0.q:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableVersionRequirementTable versionRequirements -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable strings -> b
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):15:16 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable getStrings():15:15 -> a
+    2:2:int get(java.lang.String):19:19 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableVersionRequirementTable getVersionRequirements():16:16 -> b
+    2:2:int getClassName(java.lang.String):22:22 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1 -> com.android.tools.r8.w.b.a.w0.u:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder t -> b
+    int $flags -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):122:123 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):126:126 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):220:220 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):126 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):132:132 -> a
+    4:7:void visitEnd():137:140 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():129:129 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():129 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder getT():123:123 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.r:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):122:122 -> a
+    2:135:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:133 -> a
+    2:135:java.lang.Object invoke(java.lang.Object):122 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1$visitValueParameter$1 -> com.android.tools.r8.w.b.a.w0.s:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):122:122 -> a
+    2:128:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder):0:126 -> a
+    2:128:java.lang.Object invoke(java.lang.Object):122 -> a
+    129:129:java.lang.Object invoke(java.lang.Object):122:122 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.t:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):122:122 -> a
+    2:2:void invoke(int):129:129 -> a
+    2:2:java.lang.Object invoke(java.lang.Object):122 -> a
+    3:3:java.lang.Object invoke(java.lang.Object):122:122 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeContract$1 -> com.android.tools.r8.w.b.a.w0.w:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder t -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):320:321 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor visitEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind):324:324 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):334:334 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor visitEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind):324 -> a
+    3:3:void visitEnd():327:327 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder getT():321:321 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeContract$1$visitEffect$1 -> com.android.tools.r8.w.b.a.w0.v:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeContract$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):320:320 -> a
+    2:326:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):0:324 -> a
+    2:326:java.lang.Object invoke(java.lang.Object):320 -> a
+    327:327:java.lang.Object invoke(java.lang.Object):320:320 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1 -> com.android.tools.r8.w.b.a.w0.z:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder t -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType $type -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind $invocationKind -> e
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):334:335 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConclusionOfConditionalEffect():341:341 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:361 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConclusionOfConditionalEffect():341 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConstructorArgument():338:338 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:361 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConstructorArgument():338 -> b
+    1:4:void visitEnd():345:348 -> c
+    5:5:void visitEnd():347:347 -> c
+    6:14:void visitEnd():346:354 -> c
+    15:15:void visitEnd():352:352 -> c
+    16:21:void visitEnd():351:356 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder getT():335:335 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1$visitConclusionOfConditionalEffect$1 -> com.android.tools.r8.w.b.a.w0.x:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):334:334 -> a
+    2:343:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):0:341 -> a
+    2:343:java.lang.Object invoke(java.lang.Object):334 -> a
+    344:344:java.lang.Object invoke(java.lang.Object):334:334 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1$visitConstructorArgument$1 -> com.android.tools.r8.w.b.a.w0.y:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):334:334 -> a
+    2:340:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):0:338 -> a
+    2:340:java.lang.Object invoke(java.lang.Object):334 -> a
+    341:341:java.lang.Object invoke(java.lang.Object):334:334 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1 -> com.android.tools.r8.w.b.a.w0.D:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder t -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:362 -> <init>
+    1:5:void visit(int,java.lang.Integer):365:369 -> a
+    6:9:void visitConstantValue(java.lang.Object):375:378 -> a
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitIsInstanceType(int):383:383 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitIsInstanceType(int):383 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitAndArgument():386:386 -> a
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:361 -> a
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitAndArgument():386 -> a
+    1:1:void visitEnd():392:392 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitOrArgument():389:389 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:361 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitOrArgument():389 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder getT():362:362 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1$visitAndArgument$1 -> com.android.tools.r8.w.b.a.w0.A:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):361:361 -> a
+    2:388:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):0:386 -> a
+    2:388:java.lang.Object invoke(java.lang.Object):361 -> a
+    389:389:java.lang.Object invoke(java.lang.Object):361:361 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1$visitIsInstanceType$1 -> com.android.tools.r8.w.b.a.w0.B:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):361:361 -> a
+    2:385:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:383 -> a
+    2:385:java.lang.Object invoke(java.lang.Object):361 -> a
+    386:386:java.lang.Object invoke(java.lang.Object):361:361 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1$visitOrArgument$1 -> com.android.tools.r8.w.b.a.w0.C:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):361:361 -> a
+    2:391:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):0:389 -> a
+    2:391:java.lang.Object invoke(java.lang.Object):361 -> a
+    392:392:java.lang.Object invoke(java.lang.Object):361:361 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 -> com.android.tools.r8.w.b.a.w0.L:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder t -> b
+    int $flags -> e
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    java.lang.String $name -> d
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,java.lang.String,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):145:146 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):149:149 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:29 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):149 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):152:152 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):152 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):155:155 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):220:220 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):155 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():164:164 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):320:320 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():164 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):167:167 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):158:158 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):158 -> b
+    3:7:void visitEnd():172:176 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():161:161 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():161 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder getT():146:146 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitContract$1 -> com.android.tools.r8.w.b.a.w0.E:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
+    2:166:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):0:164 -> a
+    2:166:java.lang.Object invoke(java.lang.Object):145 -> a
+    167:168:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder.build():23584:23585 -> a
+    167:168:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):164 -> a
+    167:168:java.lang.Object invoke(java.lang.Object):145 -> a
+    169:169:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):164:164 -> a
+    169:169:java.lang.Object invoke(java.lang.Object):145 -> a
+    170:170:java.lang.Object invoke(java.lang.Object):145:145 -> a
+    171:171:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    171:171:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder.build():23586 -> a
+    171:171:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):164 -> a
+    171:171:java.lang.Object invoke(java.lang.Object):145 -> a
+    172:172:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder.build():23586:23586 -> a
+    172:172:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):164 -> a
+    172:172:java.lang.Object invoke(java.lang.Object):145 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.F:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
+    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
+    2:170:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:168 -> a
+    2:170:java.lang.Object invoke(java.lang.Object):145 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitReceiverParameterType$1 -> com.android.tools.r8.w.b.a.w0.G:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
+    2:154:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:152 -> a
+    2:154:java.lang.Object invoke(java.lang.Object):145 -> a
+    155:155:java.lang.Object invoke(java.lang.Object):145:145 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitReturnType$1 -> com.android.tools.r8.w.b.a.w0.H:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
+    2:160:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:158 -> a
+    2:160:java.lang.Object invoke(java.lang.Object):145 -> a
+    161:161:java.lang.Object invoke(java.lang.Object):145:145 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.I:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
+    2:151:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):0:149 -> a
+    2:151:java.lang.Object invoke(java.lang.Object):145 -> a
+    152:152:java.lang.Object invoke(java.lang.Object):145:145 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitValueParameter$1 -> com.android.tools.r8.w.b.a.w0.J:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
+    2:157:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder):0:155 -> a
+    2:157:java.lang.Object invoke(java.lang.Object):145 -> a
+    158:158:java.lang.Object invoke(java.lang.Object):145:145 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.K:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
+    2:2:void invoke(int):161:161 -> a
+    2:2:java.lang.Object invoke(java.lang.Object):145 -> a
+    3:3:java.lang.Object invoke(java.lang.Object):145:145 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 -> com.android.tools.r8.w.b.a.w0.T:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder t -> b
+    int $getterFlags -> f
+    int $setterFlags -> g
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> h
+    int $flags -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    java.lang.String $name -> d
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,java.lang.String,int,int,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):182:183 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):186:186 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:29 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):186 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):189:189 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):189 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):192:192 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):220:220 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):192 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):201:201 -> a
+    8:15:void visitEnd():206:213 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):195:195 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):195 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():198:198 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():198 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder getT():183:183 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.M:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
+    2:204:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:202 -> a
+    2:204:java.lang.Object invoke(java.lang.Object):182 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitReceiverParameterType$1 -> com.android.tools.r8.w.b.a.w0.N:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
+    2:191:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:189 -> a
+    2:191:java.lang.Object invoke(java.lang.Object):182 -> a
+    192:192:java.lang.Object invoke(java.lang.Object):182:182 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitReturnType$1 -> com.android.tools.r8.w.b.a.w0.O:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
+    2:197:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:195 -> a
+    2:197:java.lang.Object invoke(java.lang.Object):182 -> a
+    198:198:java.lang.Object invoke(java.lang.Object):182:182 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitSetterParameter$1 -> com.android.tools.r8.w.b.a.w0.P:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
+    2:194:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder):0:192 -> a
+    2:194:java.lang.Object invoke(java.lang.Object):182 -> a
+    195:195:java.lang.Object invoke(java.lang.Object):182:182 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.Q:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
+    2:188:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):0:186 -> a
+    2:188:java.lang.Object invoke(java.lang.Object):182 -> a
+    189:189:java.lang.Object invoke(java.lang.Object):182:182 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.S:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
+    2:2:void invoke(int):198:198 -> a
+    2:2:java.lang.Object invoke(java.lang.Object):182 -> a
+    3:3:java.lang.Object invoke(java.lang.Object):182:182 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 -> com.android.tools.r8.w.b.a.w0.Z:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder t -> b
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> e
+    int $flags -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:58 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder access$getT$p(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1):57:57 -> a
+    2:2:void visitClass(java.lang.String):61:61 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitArgument(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):75:75 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitArgument(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):75 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitAbbreviatedType(int):91:91 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitAbbreviatedType(int):91 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitFlexibleTypeUpperBound(int,java.lang.String):97:97 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitFlexibleTypeUpperBound(int,java.lang.String):97 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):105:105 -> a
+    10:17:void visitEnd():110:117 -> a
+    1:1:void visitTypeAlias(java.lang.String):65:65 -> b
+    2:4:void visitStarProjection():69:69 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitOuterType(int):94:94 -> b
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitOuterType(int):94 -> b
+    1:1:void visitTypeParameter(int):87:87 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitAbbreviatedType$1 -> com.android.tools.r8.w.b.a.w0.U:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
+    2:93:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:91 -> a
+    2:93:java.lang.Object invoke(java.lang.Object):57 -> a
+    94:94:java.lang.Object invoke(java.lang.Object):57:57 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitArgument$1 -> com.android.tools.r8.w.b.a.w0.V:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance $variance -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
+    2:84:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:82 -> a
+    2:84:java.lang.Object invoke(java.lang.Object):57 -> a
+    85:85:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):76:76 -> a
+    85:85:java.lang.Object invoke(java.lang.Object):57 -> a
+    86:86:java.lang.Object invoke(java.lang.Object):57:57 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.W:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
+    2:108:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:106 -> a
+    2:108:java.lang.Object invoke(java.lang.Object):57 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitFlexibleTypeUpperBound$1 -> com.android.tools.r8.w.b.a.w0.X:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
+    java.lang.String $typeFlexibilityId -> b
+    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
+    2:103:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:101 -> a
+    2:103:java.lang.Object invoke(java.lang.Object):57 -> a
+    104:104:java.lang.Object invoke(java.lang.Object):57:57 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitOuterType$1 -> com.android.tools.r8.w.b.a.w0.Y:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
+    2:96:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:94 -> a
+    2:96:java.lang.Object invoke(java.lang.Object):57 -> a
+    97:97:java.lang.Object invoke(java.lang.Object):57:57 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 -> com.android.tools.r8.w.b.a.w0.e0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder t -> b
+    int $flags -> d
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    java.lang.String $name -> e
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):241:242 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):245:245 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:29 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):245 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitExpandedType(int):251:251 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitExpandedType(int):251 -> a
+    5:5:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):254:254 -> a
+    6:10:void visitEnd():261:265 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUnderlyingType(int):248:248 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUnderlyingType(int):248 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():258:258 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():258 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder getT():242:242 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1$visitExpandedType$1 -> com.android.tools.r8.w.b.a.w0.a0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):241:241 -> a
+    2:253:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:251 -> a
+    2:253:java.lang.Object invoke(java.lang.Object):241 -> a
+    254:254:java.lang.Object invoke(java.lang.Object):241:241 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1$visitTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.b0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):241:241 -> a
+    2:247:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):0:245 -> a
+    2:247:java.lang.Object invoke(java.lang.Object):241 -> a
+    248:248:java.lang.Object invoke(java.lang.Object):241:241 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1$visitUnderlyingType$1 -> com.android.tools.r8.w.b.a.w0.c0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):241:241 -> a
+    2:250:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:248 -> a
+    2:250:java.lang.Object invoke(java.lang.Object):241 -> a
+    251:251:java.lang.Object invoke(java.lang.Object):241:241 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.d0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):241:241 -> a
+    2:2:void invoke(int):258:258 -> a
+    2:2:java.lang.Object invoke(java.lang.Object):241 -> a
+    3:3:java.lang.Object invoke(java.lang.Object):241:241 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.h0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder t -> b
+    int $flags -> f
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> h
+    int $id -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    java.lang.String $name -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance $variance -> g
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,java.lang.String,int,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:30 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder access$getT$p(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1):29:29 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUpperBound(int):33:33 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUpperBound(int):33 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):36:36 -> a
+    5:16:void visitEnd():41:52 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.f0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1 this$0 -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
+    1:1:java.lang.Object invoke(java.lang.Object):29:29 -> a
+    2:39:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:37 -> a
+    2:39:java.lang.Object invoke(java.lang.Object):29 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1$visitUpperBound$1 -> com.android.tools.r8.w.b.a.w0.g0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):29:29 -> a
+    2:35:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:33 -> a
+    2:35:java.lang.Object invoke(java.lang.Object):29 -> a
+    36:36:java.lang.Object invoke(java.lang.Object):29:29 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1 -> com.android.tools.r8.w.b.a.w0.k0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder t -> b
+    int $flags -> d
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    java.lang.String $name -> e
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):220:221 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int):224:224 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int):224 -> a
+    3:7:void visitEnd():230:234 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder getT():221:221 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int):227:227 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int):227 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1$visitType$1 -> com.android.tools.r8.w.b.a.w0.i0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):220:220 -> a
+    2:226:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:224 -> a
+    2:226:java.lang.Object invoke(java.lang.Object):220 -> a
+    227:227:java.lang.Object invoke(java.lang.Object):220:220 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1$visitVarargElementType$1 -> com.android.tools.r8.w.b.a.w0.j0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):220:220 -> a
+    2:229:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:227 -> a
+    2:229:java.lang.Object invoke(java.lang.Object):220 -> a
+    230:230:java.lang.Object invoke(java.lang.Object):220:220 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.n0:
+    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder t -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> <init>
+    1:5:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):275:279 -> a
+    6:6:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):278:278 -> a
+    7:7:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):277:277 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.getDefaultInstanceForType():21511:21511 -> a
+    8:8:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):281 -> a
+    9:15:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):281:287 -> a
+    16:16:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):286:286 -> a
+    17:17:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):285:285 -> a
+    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.getDefaultInstanceForType():21511:21511 -> a
+    18:18:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):289 -> a
+    19:26:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):289:296 -> a
+    27:27:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):275:275 -> a
+    28:33:void visitVersion(int,int,int):302:307 -> a
+    34:34:void visitVersion(int,int,int):305:305 -> a
+    35:35:void visitVersion(int,int,int):303:303 -> a
+    36:39:void visitEnd():312:315 -> a
+    40:40:void visitEnd():313:313 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder getT():272:272 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1$visitVersion$1 -> com.android.tools.r8.w.b.a.w0.l0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):271:271 -> a
+    2:2:void invoke(int):306:306 -> a
+    2:2:java.lang.Object invoke(java.lang.Object):271 -> a
+    3:3:java.lang.Object invoke(java.lang.Object):271:271 -> a
+    4:4:void invoke(int):306:306 -> a
+    4:4:java.lang.Object invoke(java.lang.Object):271 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1$visitVersion$2 -> com.android.tools.r8.w.b.a.w0.m0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):271:271 -> a
+    2:2:void invoke(int):307:307 -> a
+    2:2:java.lang.Object invoke(java.lang.Object):271 -> a
+    3:3:java.lang.Object invoke(java.lang.Object):271:271 -> a
+    4:4:void invoke(int):307:307 -> a
+    4:4:java.lang.Object invoke(java.lang.Object):271 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmClassExtension -> com.android.tools.r8.w.b.a.w0.o0.a:
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmConstructorExtension -> com.android.tools.r8.w.b.a.w0.o0.b:
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmExtension -> com.android.tools.r8.w.b.a.w0.o0.c:
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmFunctionExtension -> com.android.tools.r8.w.b.a.w0.o0.d:
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmPackageExtension -> com.android.tools.r8.w.b.a.w0.o0.e:
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmPropertyExtension -> com.android.tools.r8.w.b.a.w0.o0.f:
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeExtension -> com.android.tools.r8.w.b.a.w0.o0.g:
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeParameterExtension -> com.android.tools.r8.w.b.a.w0.o0.h:
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions -> com.android.tools.r8.w.b.a.w0.o0.k:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion Companion -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion -> com.android.tools.r8.w.b.a.w0.o0.j:
+    com.android.tools.r8.jetbrains.kotlin.Lazy INSTANCES$delegate -> b
+    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion $$INSTANCE -> c
+    1:2:void <clinit>():61:62 -> <clinit>
+    1:1:void <init>():61:61 -> <init>
+    java.util.List getINSTANCES() -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion$INSTANCES$2 -> com.android.tools.r8.w.b.a.w0.o0.i:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion$INSTANCES$2 INSTANCE -> a
+    1:2:java.util.List invoke():63:64 -> a
+    1:2:java.lang.Object invoke():61 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1 -> com.android.tools.r8.w.b.a.x0.a.a:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation -> com.android.tools.r8.w.b.a.x0.a.k:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    java.util.List argument_ -> d
+    int memoizedSerializedSize -> f
+    int bitField0_ -> b
+    int id_ -> c
+    byte memoizedIsInitialized -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation defaultInstance -> g
+    1:2652:void <clinit>():1956:4607 -> <clinit>
+    2653:2654:void initFields():4210:4211 -> <clinit>
+    2653:2654:void <clinit>():4608 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875:1875 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875:1875 -> <init>
+    3:2367:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):1881:4245 -> <init>
+    2368:2368:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):1882:1882 -> <init>
+    2369:4731:void <init>(boolean):1884:1884 -> <init>
+    4732:7078:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1899:4245 -> <init>
+    7079:7111:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1900:1932 -> <init>
+    7112:7129:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1923:1940 -> <init>
+    7130:7145:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1938:1953 -> <init>
+    7146:7153:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1944:1951 -> <init>
+    1:1:int access$4402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,int):1875:1875 -> a
+    2:2:java.util.List access$4500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):1875:1875 -> a
+    3:3:java.util.List access$4502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,java.util.List):1875:1875 -> a
+    4:4:boolean isInitialized():4215:4215 -> a
+    5:5:boolean hasId():4165:4165 -> a
+    5:5:boolean isInitialized():4219 -> a
+    6:6:boolean isInitialized():4220:4220 -> a
+    7:7:int getArgumentCount():4193:4193 -> a
+    7:7:boolean isInitialized():4223 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getArgument(int):4199:4199 -> a
+    8:8:boolean isInitialized():4224 -> a
+    9:14:boolean isInitialized():4224:4229 -> a
+    15:22:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):4235:4242 -> a
+    1:1:int access$4602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,int):1875:1875 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$4700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):1875:1875 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstanceForType():1892:1892 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():1875 -> b
+    1:14:int getSerializedSize():4247:4260 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilderForType():4325 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():1875 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1875 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327:4327 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1875 -> e
+    1:1:java.util.List getArgumentList():4180:4180 -> g
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstance():1888:1888 -> h
+    1:1:int getId():4171:4171 -> i
+    1:1:boolean hasId():4165:4165 -> j
+    1:2:void initFields():4210:4211 -> k
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> m
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327 -> m
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> m
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327:4327 -> m
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> m
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$1 -> com.android.tools.r8.w.b.a.x0.a.b:
+    1:1:void <init>():1957:1957 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1962:1962 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1957 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument -> com.android.tools.r8.w.b.a.x0.a.i:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument defaultInstance -> g
+    int memoizedSerializedSize -> f
+    int bitField0_ -> b
+    int nameId_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value value_ -> d
+    byte memoizedIsInitialized -> e
+    1:2073:void <clinit>():2079:4151 -> <clinit>
+    2074:2075:void initFields():3823:3824 -> <clinit>
+    2074:2075:void <clinit>():4152 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996:1996 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996:1996 -> <init>
+    3:1861:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2002:3860 -> <init>
+    1862:1862:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2003:2003 -> <init>
+    1863:3719:void <init>(boolean):2005:2005 -> <init>
+    3720:5560:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2020:3860 -> <init>
+    5561:5598:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2021:2058 -> <init>
+    5599:5621:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2044:2066 -> <init>
+    5622:5634:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2064:2076 -> <init>
+    5635:5639:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2070:2074 -> <init>
+    1:1:int access$3802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,int):1996:1996 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value access$3902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):1996:1996 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$4100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):1996:1996 -> a
+    4:4:boolean isInitialized():3828:3828 -> a
+    5:5:boolean hasNameId():3798:3798 -> a
+    5:5:boolean isInitialized():3832 -> a
+    6:6:boolean isInitialized():3833:3833 -> a
+    7:7:boolean hasValue():3813:3813 -> a
+    7:7:boolean isInitialized():3836 -> a
+    8:8:boolean isInitialized():3837:3837 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():3819:3819 -> a
+    9:9:boolean isInitialized():3840 -> a
+    10:14:boolean isInitialized():3840:3844 -> a
+    15:22:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):3850:3857 -> a
+    1:1:int access$4002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,int):1996:1996 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstanceForType():2013:2013 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():1996 -> b
+    1:14:int getSerializedSize():3862:3875 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder():3939:3939 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilderForType():3940 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():1996 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder():3939:3939 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3942 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder toBuilder():3944 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1996 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3942:3942 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder toBuilder():3944 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1996 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstance():2009:2009 -> g
+    1:1:int getNameId():3804:3804 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():3819:3819 -> i
+    1:1:boolean hasNameId():3798:3798 -> j
+    1:1:boolean hasValue():3813:3813 -> k
+    1:2:void initFields():3823:3824 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder():3939:3939 -> m
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$1 -> com.android.tools.r8.w.b.a.x0.a.c:
+    1:1:void <init>():2080:2080 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2085:2085 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2080 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder -> com.android.tools.r8.w.b.a.x0.a.d:
+    int bitField0_ -> b
+    int nameId_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value value_ -> d
+    1:132:void <init>():3956:4087 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):3949:3949 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4008:4010 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder setNameId(int):4072:4073 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4010 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4012:4013 -> a
+    9:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4126:4128 -> a
+    9:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4013 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value.newBuilder():2995:2995 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4128 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4013 -> a
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998:2998 -> a
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4128 -> a
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4013 -> a
+    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4128:4134 -> a
+    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4013 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4015:4015 -> a
+    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4042:4048 -> a
+    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3949 -> a
+    29:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4044:4048 -> a
+    29:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3949 -> a
+    34:34:boolean hasNameId():4060:4060 -> a
+    34:34:boolean isInitialized():4021 -> a
+    35:35:boolean hasValue():4092:4092 -> a
+    35:35:boolean isInitialized():4025 -> a
+    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():4098:4098 -> a
+    36:36:boolean isInitialized():4029 -> a
+    37:37:boolean isInitialized():4029:4029 -> a
+    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder setNameId(int):4072:4073 -> a
+    40:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder setValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4107:4109 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstanceForType():3980:3980 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():3949 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument build():3984:3985 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3949 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument build():3986 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3949 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument build():3986:3986 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3949 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder create():3963:3963 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder clone():3976 -> clone
+    1:1:java.lang.Object clone():3949 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder clone():3976:3976 -> clone
+    2:2:java.lang.Object clone():3949 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstanceForType():3980:3980 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():3949 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder create():3963:3963 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder access$3600():3949 -> f
+    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument buildPartial():3992:4003 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value -> com.android.tools.r8.w.b.a.x0.a.h:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value defaultInstance -> p
+    int memoizedSerializedSize -> o
+    int arrayDimensionCount_ -> l
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    int flags_ -> m
+    int classId_ -> h
+    float floatValue_ -> e
+    int enumValueId_ -> i
+    int stringValue_ -> g
+    long intValue_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation annotation_ -> j
+    int bitField0_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type type_ -> c
+    byte memoizedIsInitialized -> n
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> q
+    double doubleValue_ -> f
+    java.util.List arrayElement_ -> k
+    1:1388:void <clinit>():2398:3785 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2257:2257 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2257:2257 -> <init>
+    3:620:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2263:2880 -> <init>
+    621:621:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2264:2264 -> <init>
+    622:1237:void <init>(boolean):2266:2266 -> <init>
+    1238:1837:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2281:2880 -> <init>
+    1838:1930:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2282:2374 -> <init>
+    1931:1932:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2368:2369 -> <init>
+    1933:1936:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2361:2364 -> <init>
+    1937:1945:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2348:2356 -> <init>
+    1946:1947:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2342:2343 -> <init>
+    1948:1949:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2337:2338 -> <init>
+    1950:1951:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2332:2333 -> <init>
+    1952:1953:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2327:2328 -> <init>
+    1954:1955:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2322:2323 -> <init>
+    1956:1957:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2317:2318 -> <init>
+    1958:2035:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2305:2382 -> <init>
+    2036:2051:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2380:2395 -> <init>
+    2052:2059:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2386:2393 -> <init>
+    1:1:boolean hasStringValue():2647:2647 -> A
+    1:1:boolean hasType():2581:2581 -> B
+    1:11:void initFields():2807:2817 -> C
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> D
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> E
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998 -> E
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> E
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998:2998 -> E
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> E
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type access$2302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):2257:2257 -> a
+    2:2:long access$2402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,long):2257:2257 -> a
+    3:3:float access$2502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,float):2257:2257 -> a
+    4:4:double access$2602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,double):2257:2257 -> a
+    5:5:int access$2702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation access$3002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):2257:2257 -> a
+    7:7:java.util.List access$3100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2257:2257 -> a
+    8:8:java.util.List access$3102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,java.util.List):2257:2257 -> a
+    9:9:boolean isInitialized():2821:2821 -> a
+    10:10:boolean hasAnnotation():2700:2700 -> a
+    10:10:boolean isInitialized():2825 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():2706:2706 -> a
+    11:11:boolean isInitialized():2826 -> a
+    12:13:boolean isInitialized():2826:2827 -> a
+    14:14:int getArrayElementCount():2728:2728 -> a
+    14:14:boolean isInitialized():2831 -> a
+    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getArrayElement(int):2734:2734 -> a
+    15:15:boolean isInitialized():2832 -> a
+    16:21:boolean isInitialized():2832:2837 -> a
+    22:56:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):2843:2877 -> a
+    1:1:int access$2802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2257:2257 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstanceForType():2274:2274 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2257 -> b
+    1:1:int access$2902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> c
+    2:11:int getSerializedSize():2882:2891 -> c
+    12:12:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt64Size(int,long):715:715 -> c
+    12:12:int getSerializedSize():2891 -> c
+    13:13:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt64SizeNoTag(long):948:948 -> c
+    13:13:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt64Size(int,long):715 -> c
+    13:13:int getSerializedSize():2891 -> c
+    14:14:int getSerializedSize():2894:2894 -> c
+    15:15:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeFloatSize(int,float):536:536 -> c
+    15:15:int getSerializedSize():2895 -> c
+    16:16:int getSerializedSize():2898:2898 -> c
+    17:17:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeDoubleSize(int,double):528:528 -> c
+    17:17:int getSerializedSize():2899 -> c
+    18:47:int getSerializedSize():2902:2931 -> c
+    1:1:int access$3202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilderForType():2996 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2257 -> d
+    1:1:int access$3302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2257 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998:2998 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2257 -> e
+    1:1:int access$3402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():2706:2706 -> g
+    1:1:int getArrayDimensionCount():2780:2780 -> h
+    1:1:java.util.List getArrayElementList():2715:2715 -> i
+    1:1:int getClassId():2676:2676 -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstance():2270:2270 -> k
+    1:1:double getDoubleValue():2638:2638 -> l
+    1:1:int getEnumValueId():2691:2691 -> m
+    1:1:int getFlags():2803:2803 -> n
+    1:1:float getFloatValue():2623:2623 -> o
+    1:1:long getIntValue():2608:2608 -> p
+    1:1:int getStringValue():2653:2653 -> q
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type getType():2593:2593 -> r
+    1:1:boolean hasAnnotation():2700:2700 -> s
+    1:1:boolean hasArrayDimensionCount():2762:2762 -> t
+    1:1:boolean hasClassId():2666:2666 -> u
+    1:1:boolean hasDoubleValue():2632:2632 -> v
+    1:1:boolean hasEnumValueId():2685:2685 -> w
+    1:1:boolean hasFlags():2793:2793 -> x
+    1:1:boolean hasFloatValue():2617:2617 -> y
+    1:1:boolean hasIntValue():2602:2602 -> z
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$1 -> com.android.tools.r8.w.b.a.x0.a.e:
+    1:1:void <init>():2399:2399 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2404:2404 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2399 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder -> com.android.tools.r8.w.b.a.x0.a.f:
+    int arrayDimensionCount_ -> l
+    int flags_ -> m
+    int classId_ -> h
+    float floatValue_ -> e
+    int enumValueId_ -> i
+    int stringValue_ -> g
+    long intValue_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation annotation_ -> j
+    int bitField0_ -> b
+    double doubleValue_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type type_ -> c
+    java.util.List arrayElement_ -> k
+    1:516:void <init>():3012:3527 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):3005:3005 -> a
+    2:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3119:3127 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFloatValue(float):3308:3309 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3127 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3129:3130 -> a
+    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setDoubleValue(double):3340:3341 -> a
+    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3130 -> a
+    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3132:3133 -> a
+    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setStringValue(int):3372:3373 -> a
+    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3133 -> a
+    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3135:3139 -> a
+    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setEnumValueId(int):3452:3453 -> a
+    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3139 -> a
+    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3141:3142 -> a
+    30:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3506:3508 -> a
+    30:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3142 -> a
+    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation.newBuilder():4324:4324 -> a
+    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327 -> a
+    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3508 -> a
+    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3142 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327:4327 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3508 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3142 -> a
+    35:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3508:3514 -> a
+    35:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3142 -> a
+    42:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3144:3155 -> a
+    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setArrayDimensionCount(int):3705:3706 -> a
+    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3155 -> a
+    56:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3157:3160 -> a
+    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3187:3193 -> a
+    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3005 -> a
+    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3189:3193 -> a
+    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3005 -> a
+    72:73:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):3238:3239 -> a
+    74:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):3236:3236 -> a
+    75:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setIntValue(long):3276:3277 -> a
+    77:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFloatValue(float):3308:3309 -> a
+    79:80:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setDoubleValue(double):3340:3341 -> a
+    81:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setClassId(int):3416:3417 -> a
+    83:83:boolean hasAnnotation():3472:3472 -> a
+    83:83:boolean isInitialized():3166 -> a
+    84:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():3478:3478 -> a
+    84:84:boolean isInitialized():3167 -> a
+    85:85:boolean isInitialized():3167:3167 -> a
+    86:86:int getArrayElementCount():3546:3546 -> a
+    86:86:boolean isInitialized():3172 -> a
+    87:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getArrayElement(int):3552:3552 -> a
+    87:87:boolean isInitialized():3173 -> a
+    88:88:boolean isInitialized():3173:3173 -> a
+    89:91:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3487:3489 -> a
+    92:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder addArrayElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder):3607:3608 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstanceForType():3054:3054 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():3005 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setEnumValueId(int):3452:3453 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3005:3005 -> c
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFlags(int):3761:3762 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder create():3019:3019 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder clone():3050 -> clone
+    1:1:java.lang.Object clone():3005 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder clone():3050:3050 -> clone
+    2:2:java.lang.Object clone():3005 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstanceForType():3054:3054 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():3005 -> d
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setStringValue(int):3372:3373 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder create():3019:3019 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder access$2100():3005 -> f
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():3058:3059 -> g
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> g
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():3060 -> g
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():3060:3060 -> g
+    1:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value buildPartial():3066:3114 -> h
+    1:3:void ensureArrayElementIsMutable():3530:3532 -> i
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type -> com.android.tools.r8.w.b.a.x0.a.g:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type[] $VALUES -> o
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type BYTE -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type CHAR -> c
+    int value -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type SHORT -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type INT -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type LONG -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type FLOAT -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type DOUBLE -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type BOOLEAN -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type STRING -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type CLASS -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ENUM -> l
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ANNOTATION -> m
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ARRAY -> n
+    1:49:void <clinit>():2421:2469 -> <clinit>
+    50:50:void <clinit>():2416:2416 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):2561:2562 -> <init>
+    1:1:int getNumber():2526:2526 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2542:2542 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2541:2541 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2540:2540 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2539:2539 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2538:2538 -> b
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2537:2537 -> b
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2536:2536 -> b
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2535:2535 -> b
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2534:2534 -> b
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2533:2533 -> b
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2532:2532 -> b
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2531:2531 -> b
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2530:2530 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder -> com.android.tools.r8.w.b.a.x0.a.j:
+    java.util.List argument_ -> d
+    int bitField0_ -> b
+    int id_ -> c
+    1:138:void <init>():4341:4478 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):4334:4334 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4394:4396 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder setId(int):4463:4464 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4396 -> a
+    7:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4398:4408 -> a
+    18:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4433:4439 -> a
+    18:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4334 -> a
+    25:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4435:4439 -> a
+    25:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4334 -> a
+    30:30:boolean hasId():4451:4451 -> a
+    30:30:boolean isInitialized():4414 -> a
+    31:31:int getArgumentCount():4497:4497 -> a
+    31:31:boolean isInitialized():4418 -> a
+    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getArgument(int):4503:4503 -> a
+    32:32:boolean isInitialized():4419 -> a
+    33:33:boolean isInitialized():4419:4419 -> a
+    34:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder setId(int):4463:4464 -> a
+    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4558:4559 -> a
+    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder.build():3984:3985 -> a
+    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4559 -> a
+    40:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4559:4559 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder.build():3986 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4559 -> a
+    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder.build():3986:3986 -> a
+    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4559 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstanceForType():4365:4365 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():4334 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():4334:4334 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder create():4348:4348 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder clone():4361 -> clone
+    1:1:java.lang.Object clone():4334 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder clone():4361:4361 -> clone
+    2:2:java.lang.Object clone():4334 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstanceForType():4365:4365 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():4334 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder create():4348:4348 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder access$4200():4334 -> f
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4369:4370 -> g
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> g
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4371 -> g
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4371:4371 -> g
+    1:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation buildPartial():4377:4389 -> h
+    1:3:void ensureArgumentIsMutable():4481:4483 -> i
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class -> com.android.tools.r8.w.b.a.x0.a.o:
+    java.util.List sealedSubclassFqName_ -> r
+    int nestedClassNameMemoizedSerializedSize -> l
+    java.util.List typeAlias_ -> p
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class defaultInstance -> y
+    int supertypeIdMemoizedSerializedSize -> j
+    int companionObjectName_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> t
+    int flags_ -> d
+    java.util.List supertype_ -> h
+    java.util.List function_ -> n
+    int sealedSubclassFqNameMemoizedSerializedSize -> s
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> v
+    byte memoizedIsInitialized -> w
+    java.util.List enumEntry_ -> q
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    java.util.List property_ -> o
+    java.util.List versionRequirement_ -> u
+    int fqName_ -> e
+    int bitField0_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> z
+    int memoizedSerializedSize -> x
+    java.util.List supertypeId_ -> i
+    java.util.List typeParameter_ -> g
+    java.util.List constructor_ -> m
+    java.util.List nestedClassName_ -> k
+    1:2708:void <clinit>():8777:11484 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):8497:8497 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):8497:8497 -> <init>
+    3:1002:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):8504:9503 -> <init>
+    1003:1003:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):8505:8505 -> <init>
+    1004:2001:void <init>(boolean):8507:8507 -> <init>
+    2002:2983:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8522:9503 -> <init>
+    2984:3184:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8523:8723 -> <init>
+    3185:3194:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8701:8710 -> <init>
+    3195:3198:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8694:8697 -> <init>
+    3199:3207:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8681:8689 -> <init>
+    3208:3217:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8667:8676 -> <init>
+    3218:3221:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8660:8663 -> <init>
+    3222:3225:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8652:8655 -> <init>
+    3226:3229:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8644:8647 -> <init>
+    3230:3233:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8636:8639 -> <init>
+    3234:3237:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8628:8631 -> <init>
+    3238:3241:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8620:8623 -> <init>
+    3242:3251:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8606:8615 -> <init>
+    3252:3255:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8599:8602 -> <init>
+    3256:3259:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8591:8594 -> <init>
+    3260:3263:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8583:8586 -> <init>
+    3264:3265:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8577:8578 -> <init>
+    3266:3267:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8572:8573 -> <init>
+    3268:3277:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8559:8568 -> <init>
+    3278:3281:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8552:8555 -> <init>
+    3282:3467:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8546:8731 -> <init>
+    3468:3513:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8729:8774 -> <init>
+    3514:3553:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8735:8774 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getVersionRequirementTable():9346:9346 -> A
+    1:1:boolean hasCompanionObjectName():8962:8962 -> B
+    1:1:boolean hasFlags():8920:8920 -> C
+    1:1:boolean hasFqName():8947:8947 -> D
+    1:1:boolean hasTypeTable():9291:9291 -> E
+    1:1:boolean hasVersionRequirementTable():9340:9340 -> F
+    1:16:void initFields():9350:9365 -> G
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder():9674:9674 -> H
+    1:1:java.util.List access$10000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> a
+    2:2:java.util.List access$10002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$10202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):8497:8497 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable access$10402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):8497:8497 -> a
+    5:5:int access$10502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8497:8497 -> a
+    6:6:boolean isInitialized():9369:9369 -> a
+    7:7:boolean hasFqName():8947:8947 -> a
+    7:7:boolean isInitialized():9373 -> a
+    8:8:boolean isInitialized():9374:9374 -> a
+    9:9:int getTypeParameterCount():8990:8990 -> a
+    9:9:boolean isInitialized():9377 -> a
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):8996:8996 -> a
+    10:10:boolean isInitialized():9378 -> a
+    11:12:boolean isInitialized():9378:9379 -> a
+    13:13:int getSupertypeCount():9025:9025 -> a
+    13:13:boolean isInitialized():9383 -> a
+    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getSupertype(int):9031:9031 -> a
+    14:14:boolean isInitialized():9384 -> a
+    15:16:boolean isInitialized():9384:9385 -> a
+    17:17:int getConstructorCount():9106:9106 -> a
+    17:17:boolean isInitialized():9389 -> a
+    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getConstructor(int):9112:9112 -> a
+    18:18:boolean isInitialized():9390 -> a
+    19:20:boolean isInitialized():9390:9391 -> a
+    21:21:int getFunctionCount():9141:9141 -> a
+    21:21:boolean isInitialized():9395 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):9147:9147 -> a
+    22:22:boolean isInitialized():9396 -> a
+    23:24:boolean isInitialized():9396:9397 -> a
+    25:25:int getPropertyCount():9176:9176 -> a
+    25:25:boolean isInitialized():9401 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):9182:9182 -> a
+    26:26:boolean isInitialized():9402 -> a
+    27:28:boolean isInitialized():9402:9403 -> a
+    29:29:int getTypeAliasCount():9211:9211 -> a
+    29:29:boolean isInitialized():9407 -> a
+    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):9217:9217 -> a
+    30:30:boolean isInitialized():9408 -> a
+    31:32:boolean isInitialized():9408:9409 -> a
+    33:33:int getEnumEntryCount():9246:9246 -> a
+    33:33:boolean isInitialized():9413 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getEnumEntry(int):9252:9252 -> a
+    34:34:boolean isInitialized():9414 -> a
+    35:36:boolean isInitialized():9414:9415 -> a
+    37:37:boolean hasTypeTable():9291:9291 -> a
+    37:37:boolean isInitialized():9419 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():9297:9297 -> a
+    38:38:boolean isInitialized():9420 -> a
+    39:48:boolean isInitialized():9420:9429 -> a
+    49:54:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9435:9440 -> a
+    55:55:java.util.List getSupertypeIdList():9048:9048 -> a
+    55:55:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9442 -> a
+    56:73:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9442:9459 -> a
+    74:74:java.util.List getNestedClassNameList():9071:9071 -> a
+    74:74:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9461 -> a
+    75:95:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9461:9481 -> a
+    96:96:java.util.List getSealedSubclassFqNameList():9269:9269 -> a
+    96:96:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9483 -> a
+    97:114:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9483:9500 -> a
+    1:1:java.util.List access$10100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> b
+    2:2:java.util.List access$10102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> b
+    3:3:int access$8902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8497:8497 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstanceForType():8515:8515 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():8497 -> b
+    1:1:java.util.List access$10300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> c
+    2:2:java.util.List access$10302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> c
+    3:3:int access$9002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8497:8497 -> c
+    4:15:int getSerializedSize():9505:9516 -> c
+    16:16:java.util.List getSupertypeIdList():9048:9048 -> c
+    16:16:int getSerializedSize():9520 -> c
+    17:43:int getSerializedSize():9520:9546 -> c
+    44:44:java.util.List getNestedClassNameList():9071:9071 -> c
+    44:44:int getSerializedSize():9550 -> c
+    45:75:int getSerializedSize():9550:9580 -> c
+    76:76:java.util.List getSealedSubclassFqNameList():9269:9269 -> c
+    76:76:int getSerializedSize():9584 -> c
+    77:91:int getSerializedSize():9584:9598 -> c
+    92:92:java.util.List getVersionRequirementList():9311:9311 -> c
+    92:92:int getSerializedSize():9602 -> c
+    93:101:int getSerializedSize():9602:9610 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$10600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> d
+    2:2:int access$9102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8497:8497 -> d
+    3:3:java.util.List access$9202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> d
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder():9674:9674 -> d
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilderForType():9675 -> d
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():8497 -> d
+    1:1:java.util.List access$9200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> e
+    2:2:java.util.List access$9302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder():9674:9674 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9677 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder toBuilder():9679 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():8497 -> e
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9677:9677 -> e
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder toBuilder():9679 -> e
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():8497 -> e
+    1:1:java.util.List access$9300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> f
+    2:2:java.util.List access$9402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> f
+    1:1:java.util.List access$9400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> g
+    2:2:java.util.List access$9502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> g
+    1:1:java.util.List access$9500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> h
+    2:2:java.util.List access$9602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> h
+    1:1:java.util.List access$9600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> i
+    2:2:java.util.List access$9702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> i
+    1:1:java.util.List access$9700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> j
+    2:2:java.util.List access$9802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> j
+    1:1:java.util.List access$9800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> k
+    2:2:java.util.List access$9902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> k
+    3:3:int getCompanionObjectName():8968:8968 -> k
+    1:1:java.util.List access$9900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> l
+    2:2:java.util.List getConstructorList():9093:9093 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstance():8511:8511 -> m
+    1:1:java.util.List getEnumEntryList():9233:9233 -> n
+    1:1:int getFlags():8938:8938 -> o
+    1:1:int getFqName():8953:8953 -> p
+    1:1:java.util.List getFunctionList():9128:9128 -> q
+    1:1:java.util.List getNestedClassNameList():9071:9071 -> r
+    1:1:java.util.List getPropertyList():9163:9163 -> s
+    1:1:java.util.List getSealedSubclassFqNameList():9269:9269 -> t
+    1:1:java.util.List getSupertypeIdList():9048:9048 -> u
+    1:1:java.util.List getSupertypeList():9012:9012 -> v
+    1:1:java.util.List getTypeAliasList():9198:9198 -> w
+    1:1:java.util.List getTypeParameterList():8977:8977 -> x
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():9297:9297 -> y
+    1:1:java.util.List getVersionRequirementList():9311:9311 -> z
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$1 -> com.android.tools.r8.w.b.a.x0.a.l:
+    1:1:void <init>():8778:8778 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8783:8783 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8778 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder -> com.android.tools.r8.w.b.a.x0.a.m:
+    java.util.List sealedSubclassFqName_ -> q
+    java.util.List enumEntry_ -> p
+    java.util.List typeAlias_ -> o
+    java.util.List versionRequirement_ -> s
+    int fqName_ -> f
+    int companionObjectName_ -> g
+    int bitField0_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> r
+    int flags_ -> e
+    java.util.List supertypeId_ -> j
+    java.util.List supertype_ -> i
+    java.util.List typeParameter_ -> h
+    java.util.List property_ -> n
+    java.util.List function_ -> m
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> t
+    java.util.List constructor_ -> l
+    java.util.List nestedClassName_ -> k
+    1:1730:void <init>():9690:11419 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):9684:9684 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9837:9839 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFlags(int):10101:10102 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9839 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9841:9842 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFqName(int):10145:10146 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9842 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9844:9845 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setCompanionObjectName(int):10177:10178 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9845 -> a
+    15:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9847:9870 -> a
+    39:41:void ensureSupertypeIdIsMutable():10444:10446 -> a
+    39:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9872 -> a
+    42:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9873:9948 -> a
+    118:120:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11304:11306 -> a
+    118:120:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9948 -> a
+    121:121:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder():12993:12993 -> a
+    121:121:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> a
+    121:121:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11306 -> a
+    121:121:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9948 -> a
+    122:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> a
+    122:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11306 -> a
+    122:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9948 -> a
+    123:129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11306:11312 -> a
+    123:129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9948 -> a
+    130:141:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9950:9961 -> a
+    142:144:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11458:11460 -> a
+    142:144:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9961 -> a
+    145:145:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder():22167:22167 -> a
+    145:145:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> a
+    145:145:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11460 -> a
+    145:145:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9961 -> a
+    146:146:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170:22170 -> a
+    146:146:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11460 -> a
+    146:146:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9961 -> a
+    147:153:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11460:11466 -> a
+    147:153:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9961 -> a
+    154:155:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9963:9964 -> a
+    156:162:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):10035:10041 -> a
+    156:162:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9684 -> a
+    163:167:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):10037:10041 -> a
+    163:167:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9684 -> a
+    168:168:boolean hasFqName():10133:10133 -> a
+    168:168:boolean isInitialized():9970 -> a
+    169:169:int getTypeParameterCount():10211:10211 -> a
+    169:169:boolean isInitialized():9974 -> a
+    170:170:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):10217:10217 -> a
+    170:170:boolean isInitialized():9975 -> a
+    171:171:boolean isInitialized():9975:9975 -> a
+    172:172:int getSupertypeCount():10336:10336 -> a
+    172:172:boolean isInitialized():9980 -> a
+    173:173:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getSupertype(int):10342:10342 -> a
+    173:173:boolean isInitialized():9981 -> a
+    174:174:boolean isInitialized():9981:9981 -> a
+    175:175:int getConstructorCount():10593:10593 -> a
+    175:175:boolean isInitialized():9986 -> a
+    176:176:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getConstructor(int):10599:10599 -> a
+    176:176:boolean isInitialized():9987 -> a
+    177:177:boolean isInitialized():9987:9987 -> a
+    178:178:int getFunctionCount():10718:10718 -> a
+    178:178:boolean isInitialized():9992 -> a
+    179:179:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):10724:10724 -> a
+    179:179:boolean isInitialized():9993 -> a
+    180:180:boolean isInitialized():9993:9993 -> a
+    181:181:int getPropertyCount():10843:10843 -> a
+    181:181:boolean isInitialized():9998 -> a
+    182:182:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):10849:10849 -> a
+    182:182:boolean isInitialized():9999 -> a
+    183:183:boolean isInitialized():9999:9999 -> a
+    184:184:int getTypeAliasCount():10968:10968 -> a
+    184:184:boolean isInitialized():10004 -> a
+    185:185:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):10974:10974 -> a
+    185:185:boolean isInitialized():10005 -> a
+    186:186:boolean isInitialized():10005:10005 -> a
+    187:187:int getEnumEntryCount():11093:11093 -> a
+    187:187:boolean isInitialized():10010 -> a
+    188:188:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getEnumEntry(int):11099:11099 -> a
+    188:188:boolean isInitialized():10011 -> a
+    189:189:boolean isInitialized():10011:10011 -> a
+    190:190:boolean hasTypeTable():11270:11270 -> a
+    190:190:boolean isInitialized():10016 -> a
+    191:191:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11276:11276 -> a
+    191:191:boolean isInitialized():10017 -> a
+    192:197:boolean isInitialized():10017:10022 -> a
+    198:199:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):10272:10273 -> a
+    200:201:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addSupertype(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):10397:10398 -> a
+    202:203:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addNestedClassName(int):10548:10549 -> a
+    204:205:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10654:10655 -> a
+    206:207:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder.build():13764:13765 -> a
+    206:207:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10655 -> a
+    208:208:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10655:10655 -> a
+    209:209:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    209:209:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder.build():13766 -> a
+    209:209:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10655 -> a
+    210:210:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder.build():13766:13766 -> a
+    210:210:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10655 -> a
+    211:212:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder):10779:10780 -> a
+    213:214:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addProperty(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):10904:10905 -> a
+    215:216:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder):11029:11030 -> a
+    217:218:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11154:11155 -> a
+    219:220:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder.build():20707:20708 -> a
+    219:220:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11155 -> a
+    221:221:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11155:11155 -> a
+    222:222:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    222:222:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder.build():20709 -> a
+    222:222:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11155 -> a
+    223:223:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder.build():20709:20709 -> a
+    223:223:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11155 -> a
+    224:226:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11439:11441 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstanceForType():9742:9742 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():9684 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addSealedSubclassFqName(int):11239:11240 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class build():9746:9747 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():9684 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class build():9748 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():9684 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class build():9748:9748 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():9684 -> c
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addVersionRequirement(int):11385:11386 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder create():9697:9697 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder clone():9738 -> clone
+    1:1:java.lang.Object clone():9684 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder clone():9738:9738 -> clone
+    2:2:java.lang.Object clone():9684 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstanceForType():9742:9742 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():9684 -> d
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setCompanionObjectName(int):10177:10178 -> d
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFlags(int):10101:10102 -> e
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFqName(int):10145:10146 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder create():9697:9697 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder access$8700():9684 -> h
+    1:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class buildPartial():9754:9832 -> i
+    1:3:void ensureConstructorIsMutable():10577:10579 -> j
+    1:3:void ensureEnumEntryIsMutable():11077:11079 -> k
+    1:3:void ensureFunctionIsMutable():10702:10704 -> l
+    1:3:void ensureNestedClassNameIsMutable():10510:10512 -> m
+    1:3:void ensurePropertyIsMutable():10827:10829 -> n
+    1:3:void ensureSealedSubclassFqNameIsMutable():11201:11203 -> o
+    1:3:void ensureSupertypeIsMutable():10320:10322 -> p
+    1:3:void ensureTypeAliasIsMutable():10952:10954 -> q
+    1:3:void ensureTypeParameterIsMutable():10195:10197 -> r
+    1:3:void ensureVersionRequirementIsMutable():11327:11329 -> s
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind -> com.android.tools.r8.w.b.a.x0.a.n:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind CLASS -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ENUM_CLASS -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind INTERFACE -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ANNOTATION_CLASS -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ENUM_ENTRY -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind COMPANION_OBJECT -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind OBJECT -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind[] $VALUES -> i
+    int value -> a
+    1:25:void <clinit>():8804:8828 -> <clinit>
+    26:26:void <clinit>():8795:8795 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):8894:8895 -> <init>
+    1:1:int getNumber():8865:8865 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind[] values():8795:8795 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor -> com.android.tools.r8.w.b.a.x0.a.r:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    java.util.List versionRequirement_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor defaultInstance -> i
+    java.util.List valueParameter_ -> e
+    int memoizedSerializedSize -> h
+    int flags_ -> d
+    int bitField0_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> j
+    byte memoizedIsInitialized -> g
+    1:664:void <clinit>():13473:14136 -> <clinit>
+    665:667:void initFields():13586:13588 -> <clinit>
+    665:667:void <clinit>():14137 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13367:13367 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13367:13367 -> <init>
+    3:258:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):13374:13629 -> <init>
+    259:259:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):13375:13375 -> <init>
+    260:513:void <init>(boolean):13377:13377 -> <init>
+    514:751:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13392:13629 -> <init>
+    752:805:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13393:13446 -> <init>
+    806:809:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13430:13433 -> <init>
+    810:813:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13422:13425 -> <init>
+    814:852:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13416:13454 -> <init>
+    853:871:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13452:13470 -> <init>
+    872:884:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13458:13470 -> <init>
+    1:1:int access$12702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,int):13367:13367 -> a
+    2:2:java.util.List access$12800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13367:13367 -> a
+    3:3:java.util.List access$12802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,java.util.List):13367:13367 -> a
+    4:4:boolean isInitialized():13592:13592 -> a
+    5:5:int getValueParameterCount():13535:13535 -> a
+    5:5:boolean isInitialized():13596 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):13541:13541 -> a
+    6:6:boolean isInitialized():13597 -> a
+    7:16:boolean isInitialized():13597:13606 -> a
+    17:31:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):13612:13626 -> a
+    1:1:java.util.List access$12900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13367:13367 -> b
+    2:2:java.util.List access$12902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,java.util.List):13367:13367 -> b
+    3:3:int access$13002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,int):13367:13367 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstanceForType():13385:13385 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():13367 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$13100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13367:13367 -> c
+    2:17:int getSerializedSize():13631:13646 -> c
+    18:18:java.util.List getVersionRequirementList():13562:13562 -> c
+    18:18:int getSerializedSize():13650 -> c
+    19:23:int getSerializedSize():13650:13654 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder():13718:13718 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilderForType():13719 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():13367 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder():13718:13718 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13721 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder toBuilder():13723 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():13367 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13721:13721 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder toBuilder():13723 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():13367 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstance():13381:13381 -> k
+    1:1:int getFlags():13513:13513 -> l
+    1:1:java.util.List getValueParameterList():13522:13522 -> m
+    1:1:java.util.List getVersionRequirementList():13562:13562 -> n
+    1:1:boolean hasFlags():13501:13501 -> o
+    1:3:void initFields():13586:13588 -> p
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder():13718:13718 -> q
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$1 -> com.android.tools.r8.w.b.a.x0.a.p:
+    1:1:void <init>():13474:13474 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13479:13479 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13474 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder -> com.android.tools.r8.w.b.a.x0.a.q:
+    java.util.List valueParameter_ -> f
+    int bitField0_ -> d
+    int flags_ -> e
+    java.util.List versionRequirement_ -> g
+    1:305:void <init>():13734:14038 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):13728:13728 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13794:13796 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder setFlags(int):13892:13893 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13796 -> a
+    7:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13798:13819 -> a
+    29:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13844:13850 -> a
+    29:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13728 -> a
+    36:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13846:13850 -> a
+    36:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13728 -> a
+    41:41:int getValueParameterCount():13932:13932 -> a
+    41:41:boolean isInitialized():13825 -> a
+    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):13938:13938 -> a
+    42:42:boolean isInitialized():13826 -> a
+    43:48:boolean isInitialized():13826:13831 -> a
+    49:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder addValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):13970:13971 -> a
+    51:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder addVersionRequirement(int):14098:14099 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstanceForType():13760:13760 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():13728 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder setFlags(int):13892:13893 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor build():13764:13765 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13728 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor build():13766 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13728 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor build():13766:13766 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13728 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder create():13741:13741 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder clone():13756 -> clone
+    1:1:java.lang.Object clone():13728 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder clone():13756:13756 -> clone
+    2:2:java.lang.Object clone():13728 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstanceForType():13760:13760 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():13728 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder create():13741:13741 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder access$12500():13728 -> h
+    1:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor buildPartial():13772:13789 -> i
+    1:3:void ensureValueParameterIsMutable():13916:13918 -> j
+    1:3:void ensureVersionRequirementIsMutable():14040:14042 -> k
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract -> com.android.tools.r8.w.b.a.x0.a.u:
+    java.util.List effect_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract defaultInstance -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    int memoizedSerializedSize -> d
+    byte memoizedIsInitialized -> c
+    1:390:void <clinit>():23388:23777 -> <clinit>
+    391:23830:void initFields():0:23439 -> <clinit>
+    391:23830:void <clinit>():23778 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23312:23312 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23312:23312 -> <init>
+    3:151:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23318:23466 -> <init>
+    152:152:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23319:23319 -> <init>
+    153:299:void <init>(boolean):23321:23321 -> <init>
+    300:430:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23336:23466 -> <init>
+    431:466:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23337:23372 -> <init>
+    467:482:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23370:23385 -> <init>
+    483:490:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23376:23383 -> <init>
+    1:1:java.util.List access$22500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23312:23312 -> a
+    2:2:java.util.List access$22502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,java.util.List):23312:23312 -> a
+    3:3:boolean isInitialized():23443:23443 -> a
+    4:4:int getEffectCount():23422:23422 -> a
+    4:4:boolean isInitialized():23447 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getEffect(int):23428:23428 -> a
+    5:5:boolean isInitialized():23448 -> a
+    6:11:boolean isInitialized():23448:23453 -> a
+    12:16:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):23459:23463 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$22600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23312:23312 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstanceForType():23329:23329 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():23312 -> b
+    1:10:int getSerializedSize():23468:23477 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilderForType():23542 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():23312 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23312 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544:23544 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23312 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstance():23325:23325 -> g
+    1:1:java.util.List getEffectList():23409:23409 -> h
+    1:1:void initFields():23439:23439 -> i
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> k
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544 -> k
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> k
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544:23544 -> k
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> k
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$1 -> com.android.tools.r8.w.b.a.x0.a.s:
+    1:1:void <init>():23389:23389 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23394:23394 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23389 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder -> com.android.tools.r8.w.b.a.x0.a.t:
+    java.util.List effect_ -> c
+    int bitField0_ -> b
+    1:91:void <init>():23558:23648 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):23551:23551 -> a
+    2:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23603:23614 -> a
+    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23635:23641 -> a
+    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23551 -> a
+    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23637:23641 -> a
+    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23551 -> a
+    26:26:int getEffectCount():23667:23667 -> a
+    26:26:boolean isInitialized():23620 -> a
+    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getEffect(int):23673:23673 -> a
+    27:27:boolean isInitialized():23621 -> a
+    28:28:boolean isInitialized():23621:23621 -> a
+    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23728:23729 -> a
+    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder.build():24407:24408 -> a
+    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23729 -> a
+    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23729:23729 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder.build():24409 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23729 -> a
+    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder.build():24409:24409 -> a
+    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23729 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstanceForType():23580:23580 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():23551 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract build():23584:23585 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():23551 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract build():23586 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():23551 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract build():23586:23586 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():23551 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder create():23565:23565 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder clone():23576 -> clone
+    1:1:java.lang.Object clone():23551 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder clone():23576:23576 -> clone
+    2:2:java.lang.Object clone():23551 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstanceForType():23580:23580 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():23551 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder create():23565:23565 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder access$22300():23551 -> f
+    1:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract buildPartial():23592:23598 -> g
+    1:3:void ensureEffectIsMutable():23651:23653 -> h
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect -> com.android.tools.r8.w.b.a.x0.a.z:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType effectType_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    java.util.List effectConstructorArgument_ -> d
+    int memoizedSerializedSize -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect defaultInstance -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression conclusionOfConditionalEffect_ -> e
+    int bitField0_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind kind_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> j
+    byte memoizedIsInitialized -> g
+    1:835:void <clinit>():23955:24789 -> <clinit>
+    836:839:void initFields():24226:24229 -> <clinit>
+    836:839:void <clinit>():24790 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23842:23842 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23842:23842 -> <init>
+    3:426:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23848:24271 -> <init>
+    427:427:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23849:23849 -> <init>
+    428:849:void <init>(boolean):23851:23851 -> <init>
+    850:1255:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23866:24271 -> <init>
+    1256:1319:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23867:23930 -> <init>
+    1320:1328:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23911:23919 -> <init>
+    1329:1332:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23903:23906 -> <init>
+    1333:1382:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23890:23939 -> <init>
+    1383:1398:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23937:23952 -> <init>
+    1399:1406:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23943:23950 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType access$23002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):23842:23842 -> a
+    2:2:java.util.List access$23100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):23842:23842 -> a
+    3:3:java.util.List access$23102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,java.util.List):23842:23842 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression access$23202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):23842:23842 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind access$23302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):23842:23842 -> a
+    6:6:int access$23402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,int):23842:23842 -> a
+    7:7:boolean isInitialized():24233:24233 -> a
+    8:8:int getEffectConstructorArgumentCount():24169:24169 -> a
+    8:8:boolean isInitialized():24237 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getEffectConstructorArgument(int):24175:24175 -> a
+    9:9:boolean isInitialized():24238 -> a
+    10:15:boolean isInitialized():24238:24243 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24207:24207 -> a
+    16:16:boolean isInitialized():24244 -> a
+    17:22:boolean isInitialized():24244:24249 -> a
+    23:36:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):24255:24268 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$23500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):23842:23842 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstanceForType():23859:23859 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():23842 -> b
+    1:22:int getSerializedSize():24273:24294 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder():24358:24358 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilderForType():24359 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():23842 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder():24358:24358 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24361 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder toBuilder():24363 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23842 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24361:24361 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder toBuilder():24363 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23842 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24207:24207 -> g
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstance():23855:23855 -> h
+    1:1:java.util.List getEffectConstructorArgumentList():24156:24156 -> i
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType getEffectType():24147:24147 -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind getKind():24222:24222 -> k
+    1:1:boolean hasConclusionOfConditionalEffect():24196:24196 -> l
+    1:1:boolean hasEffectType():24141:24141 -> m
+    1:1:boolean hasKind():24216:24216 -> n
+    1:4:void initFields():24226:24229 -> o
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder():24358:24358 -> p
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$1 -> com.android.tools.r8.w.b.a.x0.a.v:
+    1:1:void <init>():23956:23956 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23961:23961 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23956 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder -> com.android.tools.r8.w.b.a.x0.a.w:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType effectType_ -> c
+    java.util.List effectConstructorArgument_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression conclusionOfConditionalEffect_ -> e
+    int bitField0_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind kind_ -> f
+    1:376:void <init>():24375:24750 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):24368:24368 -> a
+    2:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24440:24455 -> a
+    18:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24724:24726 -> a
+    18:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24455 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression.newBuilder():25553:25553 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24726 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24455 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556:25556 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24726 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24455 -> a
+    23:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24726:24732 -> a
+    23:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24455 -> a
+    30:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24457:24460 -> a
+    34:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24487:24493 -> a
+    34:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24368 -> a
+    41:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24489:24493 -> a
+    41:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24368 -> a
+    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setEffectType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):24520:24521 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setEffectType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):24518:24518 -> a
+    49:49:int getEffectConstructorArgumentCount():24554:24554 -> a
+    49:49:boolean isInitialized():24466 -> a
+    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getEffectConstructorArgument(int):24560:24560 -> a
+    50:50:boolean isInitialized():24467 -> a
+    51:51:boolean isInitialized():24467:24467 -> a
+    52:52:boolean hasConclusionOfConditionalEffect():24670:24670 -> a
+    52:52:boolean isInitialized():24472 -> a
+    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24681:24681 -> a
+    53:53:boolean isInitialized():24473 -> a
+    54:54:boolean isInitialized():24473:24473 -> a
+    55:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder addEffectConstructorArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):24615:24616 -> a
+    57:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24695:24697 -> a
+    60:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):24770:24771 -> a
+    62:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):24768:24768 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstanceForType():24403:24403 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():24368 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect build():24407:24408 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():24368 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect build():24409 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():24368 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect build():24409:24409 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():24368 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder create():24382:24382 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder clone():24399 -> clone
+    1:1:java.lang.Object clone():24368 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder clone():24399:24399 -> clone
+    2:2:java.lang.Object clone():24368 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstanceForType():24403:24403 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():24368 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder create():24382:24382 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder access$22800():24368 -> f
+    1:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect buildPartial():24415:24435 -> g
+    1:3:void ensureEffectConstructorArgumentIsMutable():24538:24540 -> h
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType -> com.android.tools.r8.w.b.a.x0.a.x:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType CALLS -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType RETURNS_NOT_NULL -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType[] $VALUES -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType RETURNS_CONSTANT -> b
+    int value -> a
+    1:18:void <clinit>():23990:24007 -> <clinit>
+    19:19:void <clinit>():23981:23981 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):24062:24063 -> <init>
+    1:1:int getNumber():24037:24037 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):24043:24043 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):24042:24042 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):24041:24041 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind -> com.android.tools.r8.w.b.a.x0.a.y:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind AT_MOST_ONCE -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind EXACTLY_ONCE -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind[] $VALUES -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind AT_LEAST_ONCE -> d
+    int value -> a
+    1:9:void <clinit>():24077:24085 -> <clinit>
+    10:10:void <clinit>():24072:24072 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):24127:24128 -> <init>
+    1:1:int getNumber():24102:24102 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):24108:24108 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):24107:24107 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):24106:24106 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry -> com.android.tools.r8.w.b.a.x0.a.C:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry defaultInstance -> g
+    int memoizedSerializedSize -> f
+    int name_ -> d
+    int bitField0_ -> c
+    byte memoizedIsInitialized -> e
+    1:273:void <clinit>():20528:20800 -> <clinit>
+    274:274:void initFields():20560:20560 -> <clinit>
+    274:274:void <clinit>():20801 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20457:20457 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20457:20457 -> <init>
+    3:128:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):20464:20589 -> <init>
+    129:129:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):20465:20465 -> <init>
+    130:253:void <init>(boolean):20467:20467 -> <init>
+    254:361:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20482:20589 -> <init>
+    362:394:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20483:20515 -> <init>
+    395:407:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20513:20525 -> <init>
+    408:414:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20519:20525 -> <init>
+    1:1:int access$19402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry,int):20457:20457 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$19600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20457:20457 -> a
+    3:11:boolean isInitialized():20564:20572 -> a
+    12:20:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):20578:20586 -> a
+    1:1:int access$19502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry,int):20457:20457 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstanceForType():20475:20475 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():20457 -> b
+    1:11:int getSerializedSize():20591:20601 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder():20665:20665 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilderForType():20666 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():20457 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder():20665:20665 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20668 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder toBuilder():20670 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20457 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20668:20668 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder toBuilder():20670 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20457 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstance():20471:20471 -> k
+    1:1:int getName():20556:20556 -> l
+    1:1:boolean hasName():20550:20550 -> m
+    1:1:void initFields():20560:20560 -> n
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder():20665:20665 -> o
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$1 -> com.android.tools.r8.w.b.a.x0.a.A:
+    1:1:void <init>():20529:20529 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20534:20534 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20529 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder -> com.android.tools.r8.w.b.a.x0.a.B:
+    int bitField0_ -> d
+    int name_ -> e
+    1:1:void <init>():20681:20681 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):20675:20675 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20727:20729 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder setName(int):20781:20782 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20729 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20731:20732 -> a
+    9:9:boolean isInitialized():20738:20738 -> a
+    10:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20751:20757 -> a
+    10:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20675 -> a
+    17:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20753:20757 -> a
+    17:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20675 -> a
+    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder setName(int):20781:20782 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstanceForType():20703:20703 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():20675 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry build():20707:20708 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():20675 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry build():20709 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():20675 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry build():20709:20709 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():20675 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder create():20688:20688 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder clone():20699 -> clone
+    1:1:java.lang.Object clone():20675 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder clone():20699:20699 -> clone
+    2:2:java.lang.Object clone():20675 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstanceForType():20703:20703 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():20675 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder create():20688:20688 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder access$19200():20675 -> h
+    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry buildPartial():20715:20722 -> i
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression -> com.android.tools.r8.w.b.a.x0.a.G:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    int memoizedSerializedSize -> k
+    int isInstanceTypeId_ -> g
+    int valueParameterReference_ -> d
+    int bitField0_ -> b
+    int flags_ -> c
+    byte memoizedIsInitialized -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue constantValue_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type isInstanceType_ -> f
+    java.util.List orArgument_ -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> m
+    java.util.List andArgument_ -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression defaultInstance -> l
+    1:1328:void <clinit>():25074:26401 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24947:24947 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24947:24947 -> <init>
+    3:504:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):24953:25454 -> <init>
+    505:505:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):24954:24954 -> <init>
+    506:1005:void <init>(boolean):24956:24956 -> <init>
+    1006:1489:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24971:25454 -> <init>
+    1490:1565:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24972:25047 -> <init>
+    1566:1569:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25036:25039 -> <init>
+    1570:1571:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25030:25031 -> <init>
+    1572:1580:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25018:25026 -> <init>
+    1581:1588:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25005:25012 -> <init>
+    1589:1590:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25000:25001 -> <init>
+    1591:1651:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24995:25055 -> <init>
+    1652:1670:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25053:25071 -> <init>
+    1671:1681:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25059:25069 -> <init>
+    1:1:int access$23902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24947:24947 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue access$24102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):24947:24947 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$24202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):24947:24947 -> a
+    4:4:java.util.List access$24400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24947:24947 -> a
+    5:5:java.util.List access$24402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,java.util.List):24947:24947 -> a
+    6:10:boolean isInitialized():25401:25405 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25242:25242 -> a
+    11:11:boolean isInitialized():25406 -> a
+    12:13:boolean isInitialized():25406:25407 -> a
+    14:14:int getAndArgumentCount():25297:25297 -> a
+    14:14:boolean isInitialized():25411 -> a
+    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getAndArgument(int):25309:25309 -> a
+    15:15:boolean isInitialized():25412 -> a
+    16:17:boolean isInitialized():25412:25413 -> a
+    18:18:int getOrArgumentCount():25362:25362 -> a
+    18:18:boolean isInitialized():25417 -> a
+    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getOrArgument(int):25374:25374 -> a
+    19:19:boolean isInitialized():25418 -> a
+    20:25:boolean isInitialized():25418:25423 -> a
+    26:48:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):25429:25451 -> a
+    1:1:int access$24002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24947:24947 -> b
+    2:2:java.util.List access$24500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24947:24947 -> b
+    3:3:java.util.List access$24502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,java.util.List):24947:24947 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstanceForType():24964:24964 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():24947 -> b
+    1:1:int access$24302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24947:24947 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$24700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24947:24947 -> c
+    3:36:int getSerializedSize():25456:25489 -> c
+    1:1:int access$24602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24947:24947 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilderForType():25554 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():24947 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():24947 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556:25556 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():24947 -> e
+    1:1:java.util.List getAndArgumentList():25272:25272 -> g
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue getConstantValue():25217:25217 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstance():24960:24960 -> i
+    1:1:int getFlags():25177:25177 -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25242:25242 -> k
+    1:1:int getIsInstanceTypeId():25257:25257 -> l
+    1:1:java.util.List getOrArgumentList():25337:25337 -> m
+    1:1:int getValueParameterReference():25202:25202 -> n
+    1:1:boolean hasConstantValue():25211:25211 -> o
+    1:1:boolean hasFlags():25166:25166 -> p
+    1:1:boolean hasIsInstanceType():25231:25231 -> q
+    1:1:boolean hasIsInstanceTypeId():25251:25251 -> r
+    1:1:boolean hasValueParameterReference():25191:25191 -> s
+    1:7:void initFields():25391:25397 -> t
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> u
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> v
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556 -> v
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> v
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556:25556 -> v
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> v
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$1 -> com.android.tools.r8.w.b.a.x0.a.D:
+    1:1:void <init>():25075:25075 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25080:25080 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25075 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder -> com.android.tools.r8.w.b.a.x0.a.E:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue constantValue_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type isInstanceType_ -> f
+    int isInstanceTypeId_ -> g
+    java.util.List orArgument_ -> i
+    int valueParameterReference_ -> d
+    java.util.List andArgument_ -> h
+    int bitField0_ -> b
+    int flags_ -> c
+    1:625:void <init>():25575:26199 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):25568:25568 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25659:25661 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setFlags(int):25773:25774 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25661 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25663:25664 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setValueParameterReference(int):25825:25826 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25664 -> a
+    11:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25666:25670 -> a
+    16:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25944:25946 -> a
+    16:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25670 -> a
+    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25946 -> a
+    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25670 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25946 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25670 -> a
+    21:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25946:25952 -> a
+    21:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25670 -> a
+    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25672:25673 -> a
+    30:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setIsInstanceTypeId(int):25987:25988 -> a
+    30:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25673 -> a
+    32:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25675:25695 -> a
+    53:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25728:25734 -> a
+    53:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25568 -> a
+    60:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25730:25734 -> a
+    60:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25568 -> a
+    65:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setFlags(int):25773:25774 -> a
+    67:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setConstantValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):25865:25866 -> a
+    69:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setConstantValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):25863:25863 -> a
+    70:70:boolean hasIsInstanceType():25890:25890 -> a
+    70:70:boolean isInitialized():25701 -> a
+    71:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25901:25901 -> a
+    71:71:boolean isInitialized():25702 -> a
+    72:72:boolean isInitialized():25702:25702 -> a
+    73:73:int getAndArgumentCount():26033:26033 -> a
+    73:73:boolean isInitialized():25707 -> a
+    74:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getAndArgument(int):26045:26045 -> a
+    74:74:boolean isInitialized():25708 -> a
+    75:75:boolean isInitialized():25708:25708 -> a
+    76:76:int getOrArgumentCount():26230:26230 -> a
+    76:76:boolean isInitialized():25713 -> a
+    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getOrArgument(int):26242:26242 -> a
+    77:77:boolean isInitialized():25714 -> a
+    78:78:boolean isInitialized():25714:25714 -> a
+    79:81:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25915:25917 -> a
+    82:83:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder addAndArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):26130:26131 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstanceForType():25609:25609 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():25568 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setValueParameterReference(int):25825:25826 -> b
+    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder addOrArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):26327:26328 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():25568:25568 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder create():25582:25582 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder clone():25605 -> clone
+    1:1:java.lang.Object clone():25568 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder clone():25605:25605 -> clone
+    2:2:java.lang.Object clone():25568 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstanceForType():25609:25609 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():25568 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder create():25582:25582 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder access$23700():25568 -> f
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25613:25614 -> g
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> g
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25615 -> g
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25615:25615 -> g
+    1:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression buildPartial():25621:25654 -> h
+    1:3:void ensureAndArgumentIsMutable():26005:26007 -> i
+    1:3:void ensureOrArgumentIsMutable():26202:26204 -> j
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue -> com.android.tools.r8.w.b.a.x0.a.F:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue NULL -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue TRUE -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue[] $VALUES -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue FALSE -> c
+    int value -> a
+    1:9:void <clinit>():25097:25105 -> <clinit>
+    10:10:void <clinit>():25092:25092 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):25147:25148 -> <init>
+    1:1:int getNumber():25122:25122 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):25128:25128 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):25127:25127 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):25126:25126 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function -> com.android.tools.r8.w.b.a.x0.a.J:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function defaultInstance -> r
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    int receiverTypeId_ -> k
+    int returnTypeId_ -> h
+    int name_ -> f
+    int flags_ -> d
+    int oldFlags_ -> e
+    int bitField0_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> s
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> g
+    byte memoizedIsInitialized -> p
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> m
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract contract_ -> o
+    java.util.List typeParameter_ -> i
+    java.util.List versionRequirement_ -> n
+    java.util.List valueParameter_ -> l
+    int memoizedSerializedSize -> q
+    1:1590:void <clinit>():14502:16091 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14313:14313 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14313:14313 -> <init>
+    3:582:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):14320:14899 -> <init>
+    583:583:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):14321:14321 -> <init>
+    584:1161:void <init>(boolean):14323:14323 -> <init>
+    1162:1723:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14338:14899 -> <init>
+    1724:1857:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14339:14472 -> <init>
+    1858:1867:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14450:14459 -> <init>
+    1868:1871:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14443:14446 -> <init>
+    1872:1880:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14430:14438 -> <init>
+    1881:1882:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14424:14425 -> <init>
+    1883:1884:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14419:14420 -> <init>
+    1885:1886:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14414:14415 -> <init>
+    1887:1890:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14407:14410 -> <init>
+    1891:1899:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14394:14402 -> <init>
+    1900:1903:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14386:14389 -> <init>
+    1904:1912:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14373:14381 -> <init>
+    1913:1914:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14367:14368 -> <init>
+    1915:2033:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14362:14480 -> <init>
+    2034:2055:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14478:14499 -> <init>
+    2056:2071:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14484:14499 -> <init>
+    1:1:boolean hasOldFlags():14567:14567 -> A
+    1:1:boolean hasReceiverType():14662:14662 -> B
+    1:1:boolean hasReceiverTypeId():14677:14677 -> C
+    1:1:boolean hasReturnType():14597:14597 -> D
+    1:1:boolean hasReturnTypeId():14612:14612 -> E
+    1:1:boolean hasTypeTable():14727:14727 -> F
+    1:12:void initFields():14786:14797 -> G
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder():15024:15024 -> H
+    1:1:int access$13502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$13802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):14313:14313 -> a
+    3:3:java.util.List access$14000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14313:14313 -> a
+    4:4:java.util.List access$14002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14313:14313 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$14402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):14313:14313 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract access$14602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):14313:14313 -> a
+    7:7:boolean isInitialized():14801:14801 -> a
+    8:8:boolean hasName():14582:14582 -> a
+    8:8:boolean isInitialized():14805 -> a
+    9:12:boolean isInitialized():14806:14809 -> a
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():14603:14603 -> a
+    13:13:boolean isInitialized():14810 -> a
+    14:15:boolean isInitialized():14810:14811 -> a
+    16:16:int getTypeParameterCount():14640:14640 -> a
+    16:16:boolean isInitialized():14815 -> a
+    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):14646:14646 -> a
+    17:17:boolean isInitialized():14816 -> a
+    18:23:boolean isInitialized():14816:14821 -> a
+    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():14668:14668 -> a
+    24:24:boolean isInitialized():14822 -> a
+    25:26:boolean isInitialized():14822:14823 -> a
+    27:27:int getValueParameterCount():14705:14705 -> a
+    27:27:boolean isInitialized():14827 -> a
+    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):14711:14711 -> a
+    28:28:boolean isInitialized():14828 -> a
+    29:30:boolean isInitialized():14828:14829 -> a
+    31:31:boolean hasTypeTable():14727:14727 -> a
+    31:31:boolean isInitialized():14833 -> a
+    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():14733:14733 -> a
+    32:32:boolean isInitialized():14834 -> a
+    33:38:boolean isInitialized():14834:14839 -> a
+    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():14782:14782 -> a
+    39:39:boolean isInitialized():14840 -> a
+    40:49:boolean isInitialized():14840:14849 -> a
+    50:91:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):14855:14896 -> a
+    1:1:int access$13602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$14102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):14313:14313 -> b
+    3:3:java.util.List access$14300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14313:14313 -> b
+    4:4:java.util.List access$14302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14313:14313 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstanceForType():14331:14331 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():14313 -> b
+    1:1:int access$13702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> c
+    2:2:java.util.List access$14500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14313:14313 -> c
+    3:3:java.util.List access$14502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14313:14313 -> c
+    4:51:int getSerializedSize():14901:14948 -> c
+    52:52:java.util.List getVersionRequirementList():14747:14747 -> c
+    52:52:int getSerializedSize():14952 -> c
+    53:61:int getSerializedSize():14952:14960 -> c
+    1:1:int access$13902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$14800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14313:14313 -> d
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder():15024:15024 -> d
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilderForType():15025 -> d
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():14313 -> d
+    1:1:int access$14202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder():15024:15024 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15027 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder toBuilder():15029 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():14313 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15027:15027 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder toBuilder():15029 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():14313 -> e
+    1:1:int access$14702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():14782:14782 -> k
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstance():14327:14327 -> l
+    1:1:int getFlags():14558:14558 -> m
+    1:1:int getName():14588:14588 -> n
+    1:1:int getOldFlags():14573:14573 -> o
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():14668:14668 -> p
+    1:1:int getReceiverTypeId():14683:14683 -> q
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():14603:14603 -> r
+    1:1:int getReturnTypeId():14618:14618 -> s
+    1:1:java.util.List getTypeParameterList():14627:14627 -> t
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():14733:14733 -> u
+    1:1:java.util.List getValueParameterList():14692:14692 -> v
+    1:1:java.util.List getVersionRequirementList():14747:14747 -> w
+    1:1:boolean hasContract():14776:14776 -> x
+    1:1:boolean hasFlags():14538:14538 -> y
+    1:1:boolean hasName():14582:14582 -> z
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$1 -> com.android.tools.r8.w.b.a.x0.a.H:
+    1:1:void <init>():14503:14503 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14508:14508 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14503 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder -> com.android.tools.r8.w.b.a.x0.a.I:
+    int receiverTypeId_ -> l
+    java.util.List versionRequirement_ -> o
+    int returnTypeId_ -> i
+    int oldFlags_ -> f
+    int name_ -> g
+    int bitField0_ -> d
+    int flags_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> n
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract contract_ -> p
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> h
+    java.util.List typeParameter_ -> j
+    java.util.List valueParameter_ -> m
+    1:987:void <init>():15040:16026 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):15034:15034 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15155:15157 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setFlags(int):15345:15346 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15157 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15159:15160 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setOldFlags(int):15391:15392 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15160 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15162:15163 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setName(int):15423:15424 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15163 -> a
+    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15165:15166 -> a
+    17:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15477:15479 -> a
+    17:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15166 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15479 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15166 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15479 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15166 -> a
+    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15479:15485 -> a
+    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15166 -> a
+    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15168:15169 -> a
+    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReturnTypeId(int):15515:15516 -> a
+    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15169 -> a
+    33:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15171:15182 -> a
+    45:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15694:15696 -> a
+    45:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15182 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15696 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15182 -> a
+    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15696 -> a
+    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15182 -> a
+    50:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15696:15702 -> a
+    50:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15182 -> a
+    57:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15184:15185 -> a
+    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReceiverTypeId(int):15732:15733 -> a
+    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15185 -> a
+    61:72:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15187:15198 -> a
+    73:75:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15911:15913 -> a
+    73:75:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15198 -> a
+    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder():12993:12993 -> a
+    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> a
+    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15913 -> a
+    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15198 -> a
+    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> a
+    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15913 -> a
+    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15198 -> a
+    78:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15913:15919 -> a
+    78:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15198 -> a
+    85:96:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15200:15211 -> a
+    97:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16065:16067 -> a
+    97:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15211 -> a
+    100:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract.newBuilder():23541:23541 -> a
+    100:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544 -> a
+    100:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16067 -> a
+    100:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15211 -> a
+    101:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544:23544 -> a
+    101:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16067 -> a
+    101:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15211 -> a
+    102:108:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16067:16073 -> a
+    102:108:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15211 -> a
+    109:110:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15213:15214 -> a
+    111:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15273:15279 -> a
+    111:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15034 -> a
+    118:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15275:15279 -> a
+    118:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15034 -> a
+    123:123:boolean hasName():15411:15411 -> a
+    123:123:boolean isInitialized():15220 -> a
+    124:124:boolean hasReturnType():15443:15443 -> a
+    124:124:boolean isInitialized():15224 -> a
+    125:125:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():15449:15449 -> a
+    125:125:boolean isInitialized():15225 -> a
+    126:126:boolean isInitialized():15225:15225 -> a
+    127:127:int getTypeParameterCount():15549:15549 -> a
+    127:127:boolean isInitialized():15230 -> a
+    128:128:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):15555:15555 -> a
+    128:128:boolean isInitialized():15231 -> a
+    129:129:boolean isInitialized():15231:15231 -> a
+    130:130:boolean hasReceiverType():15660:15660 -> a
+    130:130:boolean isInitialized():15236 -> a
+    131:131:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():15666:15666 -> a
+    131:131:boolean isInitialized():15237 -> a
+    132:132:boolean isInitialized():15237:15237 -> a
+    133:133:int getValueParameterCount():15766:15766 -> a
+    133:133:boolean isInitialized():15242 -> a
+    134:134:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):15772:15772 -> a
+    134:134:boolean isInitialized():15243 -> a
+    135:135:boolean isInitialized():15243:15243 -> a
+    136:136:boolean hasTypeTable():15877:15877 -> a
+    136:136:boolean isInitialized():15248 -> a
+    137:137:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():15883:15883 -> a
+    137:137:boolean isInitialized():15249 -> a
+    138:138:boolean isInitialized():15249:15249 -> a
+    139:139:boolean hasContract():16031:16031 -> a
+    139:139:boolean isInitialized():15254 -> a
+    140:140:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():16037:16037 -> a
+    140:140:boolean isInitialized():15255 -> a
+    141:146:boolean isInitialized():15255:15260 -> a
+    147:148:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder addTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):15610:15611 -> a
+    149:151:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15675:15677 -> a
+    152:153:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder addValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder):15827:15828 -> a
+    154:155:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder addVersionRequirement(int):15992:15993 -> a
+    156:158:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16046:16048 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstanceForType():15084:15084 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():15034 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setFlags(int):15345:15346 -> b
+    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15458:15460 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():15034:15034 -> c
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setName(int):15423:15424 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder create():15047:15047 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder clone():15080 -> clone
+    1:1:java.lang.Object clone():15034 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder clone():15080:15080 -> clone
+    2:2:java.lang.Object clone():15034 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstanceForType():15084:15084 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():15034 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder create():15047:15047 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder access$13300():15034 -> h
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():15088:15089 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():15090 -> i
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():15090:15090 -> i
+    1:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function buildPartial():15096:15150 -> j
+    1:3:void ensureTypeParameterIsMutable():15533:15535 -> k
+    1:3:void ensureValueParameterIsMutable():15750:15752 -> l
+    1:3:void ensureVersionRequirementIsMutable():15934:15936 -> m
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind -> com.android.tools.r8.w.b.a.x0.a.K:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind SYNTHESIZED -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind FAKE_OVERRIDE -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind DELEGATION -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind[] $VALUES -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind DECLARATION -> b
+    int value -> a
+    1:13:void <clinit>():205:217 -> <clinit>
+    14:14:void <clinit>():196:196 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):268:269 -> <init>
+    1:1:int getNumber():242:242 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind[] values():196:196 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality -> com.android.tools.r8.w.b.a.x0.a.L:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality ABSTRACT -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality SEALED -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality FINAL -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality[] $VALUES -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality OPEN -> c
+    int value -> a
+    1:13:void <clinit>():23:35 -> <clinit>
+    14:14:void <clinit>() -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):86:87 -> <init>
+    1:1:int getNumber():60:60 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality[] values():14:14 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package -> com.android.tools.r8.w.b.a.x0.a.O:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> h
+    byte memoizedIsInitialized -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package defaultInstance -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    java.util.List typeAlias_ -> f
+    int memoizedSerializedSize -> j
+    java.util.List property_ -> e
+    java.util.List function_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
+    int bitField0_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> g
+    1:997:void <clinit>():11683:12679 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11558:11558 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11558:11558 -> <init>
+    3:342:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):11565:11904 -> <init>
+    343:343:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):11566:11566 -> <init>
+    344:681:void <init>(boolean):11568:11568 -> <init>
+    682:1003:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11583:11904 -> <init>
+    1004:1073:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11584:11653 -> <init>
+    1074:1082:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11632:11640 -> <init>
+    1083:1086:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11624:11627 -> <init>
+    1087:1090:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11616:11619 -> <init>
+    1091:1144:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11608:11661 -> <init>
+    1145:1166:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11659:11680 -> <init>
+    1167:1182:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11665:11680 -> <init>
+    1:1:java.util.List access$11000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11558:11558 -> a
+    2:2:java.util.List access$11002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11558:11558 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$11302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11558:11558 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable access$11402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11558:11558 -> a
+    5:5:int access$11502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,int):11558:11558 -> a
+    6:6:boolean isInitialized():11843:11843 -> a
+    7:7:int getFunctionCount():11718:11718 -> a
+    7:7:boolean isInitialized():11847 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):11724:11724 -> a
+    8:8:boolean isInitialized():11848 -> a
+    9:10:boolean isInitialized():11848:11849 -> a
+    11:11:int getPropertyCount():11753:11753 -> a
+    11:11:boolean isInitialized():11853 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):11759:11759 -> a
+    12:12:boolean isInitialized():11854 -> a
+    13:14:boolean isInitialized():11854:11855 -> a
+    15:15:int getTypeAliasCount():11788:11788 -> a
+    15:15:boolean isInitialized():11859 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):11794:11794 -> a
+    16:16:boolean isInitialized():11860 -> a
+    17:18:boolean isInitialized():11860:11861 -> a
+    19:19:boolean hasTypeTable():11810:11810 -> a
+    19:19:boolean isInitialized():11865 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11816:11816 -> a
+    20:20:boolean isInitialized():11866 -> a
+    21:30:boolean isInitialized():11866:11875 -> a
+    31:51:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):11881:11901 -> a
+    1:1:java.util.List access$11100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11558:11558 -> b
+    2:2:java.util.List access$11102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11558:11558 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstanceForType():11576:11576 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():11558 -> b
+    1:1:java.util.List access$11200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11558:11558 -> c
+    2:2:java.util.List access$11202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11558:11558 -> c
+    3:29:int getSerializedSize():11906:11932 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$11600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11558:11558 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder():11996:11996 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilderForType():11997 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():11558 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder():11996:11996 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11999 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder toBuilder():12001 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():11558 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11999:11999 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder toBuilder():12001 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():11558 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstance():11572:11572 -> k
+    1:1:java.util.List getFunctionList():11705:11705 -> l
+    1:1:java.util.List getPropertyList():11740:11740 -> m
+    1:1:java.util.List getTypeAliasList():11775:11775 -> n
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11816:11816 -> o
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getVersionRequirementTable():11831:11831 -> p
+    1:1:boolean hasTypeTable():11810:11810 -> q
+    1:1:boolean hasVersionRequirementTable():11825:11825 -> r
+    1:5:void initFields():11835:11839 -> s
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder():11996:11996 -> t
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$1 -> com.android.tools.r8.w.b.a.x0.a.M:
+    1:1:void <init>():11684:11684 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11689:11689 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11684 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder -> com.android.tools.r8.w.b.a.x0.a.N:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> i
+    java.util.List property_ -> f
+    java.util.List function_ -> e
+    int bitField0_ -> d
+    java.util.List typeAlias_ -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> h
+    1:603:void <init>():12012:12614 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):12006:12006 -> a
+    2:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12085:12117 -> a
+    35:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12593:12595 -> a
+    35:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12117 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder():12993:12993 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12595 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12117 -> a
+    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> a
+    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12595 -> a
+    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12117 -> a
+    40:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12595:12601 -> a
+    40:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12117 -> a
+    47:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12119:12120 -> a
+    49:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12653:12655 -> a
+    49:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12120 -> a
+    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder():22167:22167 -> a
+    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> a
+    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12655 -> a
+    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12120 -> a
+    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170:22170 -> a
+    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12655 -> a
+    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12120 -> a
+    54:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12655:12661 -> a
+    54:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12120 -> a
+    61:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12122:12123 -> a
+    63:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12166:12172 -> a
+    63:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12006 -> a
+    70:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12168:12172 -> a
+    70:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12006 -> a
+    75:75:int getFunctionCount():12198:12198 -> a
+    75:75:boolean isInitialized():12129 -> a
+    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):12204:12204 -> a
+    76:76:boolean isInitialized():12130 -> a
+    77:77:boolean isInitialized():12130:12130 -> a
+    78:78:int getPropertyCount():12323:12323 -> a
+    78:78:boolean isInitialized():12135 -> a
+    79:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):12329:12329 -> a
+    79:79:boolean isInitialized():12136 -> a
+    80:80:boolean isInitialized():12136:12136 -> a
+    81:81:int getTypeAliasCount():12448:12448 -> a
+    81:81:boolean isInitialized():12141 -> a
+    82:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):12454:12454 -> a
+    82:82:boolean isInitialized():12142 -> a
+    83:83:boolean isInitialized():12142:12142 -> a
+    84:84:boolean hasTypeTable():12559:12559 -> a
+    84:84:boolean isInitialized():12147 -> a
+    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():12565:12565 -> a
+    85:85:boolean isInitialized():12148 -> a
+    86:91:boolean isInitialized():12148:12153 -> a
+    92:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder addFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder):12259:12260 -> a
+    94:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder addProperty(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):12384:12385 -> a
+    96:97:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder addTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder):12509:12510 -> a
+    98:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder setVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12634:12636 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstanceForType():12042:12042 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():12006 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():12006:12006 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder create():12019:12019 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder clone():12038 -> clone
+    1:1:java.lang.Object clone():12006 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder clone():12038:12038 -> clone
+    2:2:java.lang.Object clone():12006 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstanceForType():12042:12042 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():12006 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder create():12019:12019 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder access$10800():12006 -> h
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():12046:12047 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():12048 -> i
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():12048:12048 -> i
+    1:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package buildPartial():12054:12080 -> j
+    1:3:void ensureFunctionIsMutable():12182:12184 -> k
+    1:3:void ensurePropertyIsMutable():12307:12309 -> l
+    1:3:void ensureTypeAliasIsMutable():12432:12434 -> m
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property -> com.android.tools.r8.w.b.a.x0.a.S:
+    int setterFlags_ -> n
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter setterValueParameter_ -> l
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    int getterFlags_ -> m
+    java.util.List versionRequirement_ -> o
+    int receiverTypeId_ -> k
+    int returnTypeId_ -> h
+    int name_ -> f
+    int flags_ -> d
+    int oldFlags_ -> e
+    int bitField0_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property defaultInstance -> r
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> s
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> g
+    byte memoizedIsInitialized -> p
+    java.util.List typeParameter_ -> i
+    int memoizedSerializedSize -> q
+    1:1501:void <clinit>():16465:17965 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16290:16290 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16290:16290 -> <init>
+    3:564:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):16297:16858 -> <init>
+    565:565:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):16298:16298 -> <init>
+    566:1125:void <init>(boolean):16300:16300 -> <init>
+    1126:1669:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16315:16858 -> <init>
+    1670:1792:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16316:16438 -> <init>
+    1793:1796:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16422:16425 -> <init>
+    1797:1798:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16416:16417 -> <init>
+    1799:1800:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16411:16412 -> <init>
+    1801:1802:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16406:16407 -> <init>
+    1803:1804:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16401:16402 -> <init>
+    1805:1806:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16396:16397 -> <init>
+    1807:1815:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16384:16392 -> <init>
+    1816:1824:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16371:16379 -> <init>
+    1825:1828:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16363:16366 -> <init>
+    1829:1837:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16350:16358 -> <init>
+    1838:1839:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16344:16345 -> <init>
+    1840:1947:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16339:16446 -> <init>
+    1948:1966:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16444:16462 -> <init>
+    1967:1979:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16450:16462 -> <init>
+    1:1:boolean hasOldFlags():16534:16534 -> A
+    1:1:boolean hasReceiverType():16629:16629 -> B
+    1:1:boolean hasReceiverTypeId():16644:16644 -> C
+    1:1:boolean hasReturnType():16564:16564 -> D
+    1:1:boolean hasReturnTypeId():16579:16579 -> E
+    1:1:boolean hasSetterFlags():16713:16713 -> F
+    1:1:boolean hasSetterValueParameter():16659:16659 -> G
+    1:12:void initFields():16757:16768 -> H
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder():16983:16983 -> I
+    1:1:int access$15202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$15502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):16290:16290 -> a
+    3:3:java.util.List access$15700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16290:16290 -> a
+    4:4:java.util.List access$15702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,java.util.List):16290:16290 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter access$16002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):16290:16290 -> a
+    6:6:boolean isInitialized():16772:16772 -> a
+    7:7:boolean hasName():16549:16549 -> a
+    7:7:boolean isInitialized():16776 -> a
+    8:11:boolean isInitialized():16777:16780 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():16570:16570 -> a
+    12:12:boolean isInitialized():16781 -> a
+    13:14:boolean isInitialized():16781:16782 -> a
+    15:15:int getTypeParameterCount():16607:16607 -> a
+    15:15:boolean isInitialized():16786 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):16613:16613 -> a
+    16:16:boolean isInitialized():16787 -> a
+    17:22:boolean isInitialized():16787:16792 -> a
+    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():16635:16635 -> a
+    23:23:boolean isInitialized():16793 -> a
+    24:29:boolean isInitialized():16793:16798 -> a
+    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():16665:16665 -> a
+    30:30:boolean isInitialized():16799 -> a
+    31:40:boolean isInitialized():16799:16808 -> a
+    41:82:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):16814:16855 -> a
+    1:1:int access$15302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$15802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):16290:16290 -> b
+    3:3:java.util.List access$16300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16290:16290 -> b
+    4:4:java.util.List access$16302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,java.util.List):16290:16290 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstanceForType():16308:16308 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():16290 -> b
+    1:1:int access$15402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$16500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16290:16290 -> c
+    3:54:int getSerializedSize():16860:16911 -> c
+    55:55:java.util.List getVersionRequirementList():16733:16733 -> c
+    55:55:int getSerializedSize():16915 -> c
+    56:60:int getSerializedSize():16915:16919 -> c
+    1:1:int access$15602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder():16983:16983 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilderForType():16984 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():16290 -> d
+    1:1:int access$15902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder():16983:16983 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16986 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder toBuilder():16988 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():16290 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16986:16986 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder toBuilder():16988 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():16290 -> e
+    1:1:int access$16102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> f
+    1:1:int access$16202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> g
+    1:1:int access$16402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstance():16304:16304 -> k
+    1:1:int getFlags():16525:16525 -> l
+    1:1:int getGetterFlags():16704:16704 -> m
+    1:1:int getName():16555:16555 -> n
+    1:1:int getOldFlags():16540:16540 -> o
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():16635:16635 -> p
+    1:1:int getReceiverTypeId():16650:16650 -> q
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():16570:16570 -> r
+    1:1:int getReturnTypeId():16585:16585 -> s
+    1:1:int getSetterFlags():16719:16719 -> t
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():16665:16665 -> u
+    1:1:java.util.List getTypeParameterList():16594:16594 -> v
+    1:1:java.util.List getVersionRequirementList():16733:16733 -> w
+    1:1:boolean hasFlags():16503:16503 -> x
+    1:1:boolean hasGetterFlags():16686:16686 -> y
+    1:1:boolean hasName():16549:16549 -> z
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$1 -> com.android.tools.r8.w.b.a.x0.a.P:
+    1:1:void <init>():16466:16466 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16471:16471 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16466 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder -> com.android.tools.r8.w.b.a.x0.a.Q:
+    int getterFlags_ -> n
+    int setterFlags_ -> o
+    int receiverTypeId_ -> l
+    java.util.List versionRequirement_ -> p
+    int returnTypeId_ -> i
+    int oldFlags_ -> f
+    int name_ -> g
+    int bitField0_ -> d
+    int flags_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> h
+    java.util.List typeParameter_ -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter setterValueParameter_ -> m
+    1:868:void <init>():16999:17866 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):16993:16993 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17113:17115 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setFlags(int):17290:17291 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17115 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17117:17118 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setOldFlags(int):17338:17339 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17118 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17120:17121 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setName(int):17370:17371 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17121 -> a
+    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17123:17124 -> a
+    17:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17424:17426 -> a
+    17:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17124 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17426 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17124 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17426 -> a
+    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17124 -> a
+    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17426:17432 -> a
+    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17124 -> a
+    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17126:17127 -> a
+    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReturnTypeId(int):17462:17463 -> a
+    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17127 -> a
+    33:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17129:17140 -> a
+    45:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17641:17643 -> a
+    45:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17140 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17643 -> a
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17140 -> a
+    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17643 -> a
+    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17140 -> a
+    50:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17643:17649 -> a
+    50:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17140 -> a
+    57:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17142:17143 -> a
+    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReceiverTypeId(int):17679:17680 -> a
+    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17143 -> a
+    61:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17145:17146 -> a
+    63:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17733:17735 -> a
+    63:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17146 -> a
+    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter.newBuilder():18441:18441 -> a
+    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444 -> a
+    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17735 -> a
+    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17146 -> a
+    67:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444:18444 -> a
+    67:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17735 -> a
+    67:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17146 -> a
+    68:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17735:17741 -> a
+    68:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17146 -> a
+    75:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17148:17149 -> a
+    77:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setGetterFlags(int):17807:17808 -> a
+    77:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17149 -> a
+    79:80:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17151:17152 -> a
+    81:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setSetterFlags(int):17851:17852 -> a
+    81:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17152 -> a
+    83:94:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17154:17165 -> a
+    95:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17212:17218 -> a
+    95:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16993 -> a
+    102:106:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17214:17218 -> a
+    102:106:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16993 -> a
+    107:107:boolean hasName():17358:17358 -> a
+    107:107:boolean isInitialized():17171 -> a
+    108:108:boolean hasReturnType():17390:17390 -> a
+    108:108:boolean isInitialized():17175 -> a
+    109:109:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():17396:17396 -> a
+    109:109:boolean isInitialized():17176 -> a
+    110:110:boolean isInitialized():17176:17176 -> a
+    111:111:int getTypeParameterCount():17496:17496 -> a
+    111:111:boolean isInitialized():17181 -> a
+    112:112:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):17502:17502 -> a
+    112:112:boolean isInitialized():17182 -> a
+    113:113:boolean isInitialized():17182:17182 -> a
+    114:114:boolean hasReceiverType():17607:17607 -> a
+    114:114:boolean isInitialized():17187 -> a
+    115:115:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():17613:17613 -> a
+    115:115:boolean isInitialized():17188 -> a
+    116:116:boolean isInitialized():17188:17188 -> a
+    117:117:boolean hasSetterValueParameter():17699:17699 -> a
+    117:117:boolean isInitialized():17193 -> a
+    118:118:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():17705:17705 -> a
+    118:118:boolean isInitialized():17194 -> a
+    119:124:boolean isInitialized():17194:17199 -> a
+    125:126:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder addTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):17557:17558 -> a
+    127:129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17622:17624 -> a
+    130:132:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17714:17716 -> a
+    133:134:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder addVersionRequirement(int):17926:17927 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstanceForType():17043:17043 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():16993 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setFlags(int):17290:17291 -> b
+    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17405:17407 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():16993:16993 -> c
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setGetterFlags(int):17807:17808 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder create():17006:17006 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder clone():17039 -> clone
+    1:1:java.lang.Object clone():16993 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder clone():17039:17039 -> clone
+    2:2:java.lang.Object clone():16993 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstanceForType():17043:17043 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():16993 -> d
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setName(int):17370:17371 -> d
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setSetterFlags(int):17851:17852 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder create():17006:17006 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder access$15000():16993 -> h
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():17047:17048 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():17049 -> i
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():17049:17049 -> i
+    1:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property buildPartial():17055:17108 -> j
+    1:3:void ensureTypeParameterIsMutable():17480:17482 -> k
+    1:3:void ensureVersionRequirementIsMutable():17868:17870 -> l
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type -> com.android.tools.r8.w.b.a.x0.a.Z:
+    int outerTypeId_ -> n
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    int typeAliasName_ -> l
+    int typeParameter_ -> j
+    int typeParameterName_ -> k
+    int flexibleUpperBoundId_ -> h
+    int className_ -> i
+    int flexibleTypeCapabilitiesId_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type defaultInstance -> t
+    int bitField0_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type abbreviatedType_ -> o
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type outerType_ -> m
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> u
+    java.util.List argument_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type flexibleUpperBound_ -> g
+    boolean nullable_ -> e
+    byte memoizedIsInitialized -> r
+    int memoizedSerializedSize -> s
+    int abbreviatedTypeId_ -> p
+    int flags_ -> q
+    1:2203:void <clinit>():4971:7173 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4805:4805 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4805:4805 -> <init>
+    3:1246:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):4812:6055 -> <init>
+    1247:1247:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):4813:4813 -> <init>
+    1248:2489:void <init>(boolean):4815:4815 -> <init>
+    2490:3715:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4830:6055 -> <init>
+    3716:3832:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4831:4947 -> <init>
+    3833:3841:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4934:4942 -> <init>
+    3842:3843:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4928:4929 -> <init>
+    3844:3845:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4923:4924 -> <init>
+    3846:3854:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4911:4919 -> <init>
+    3855:3856:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4905:4906 -> <init>
+    3857:3858:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4900:4901 -> <init>
+    3859:3860:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4895:4896 -> <init>
+    3861:3862:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4890:4891 -> <init>
+    3863:3871:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4878:4886 -> <init>
+    3872:3873:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4872:4873 -> <init>
+    3874:3875:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4867:4868 -> <init>
+    3876:3879:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4860:4863 -> <init>
+    3880:3981:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4854:4955 -> <init>
+    3982:3997:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4953:4968 -> <init>
+    3998:4007:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4959:4968 -> <init>
+    1:1:boolean hasAbbreviatedTypeId():5917:5917 -> A
+    1:1:boolean hasClassName():5778:5778 -> B
+    1:1:boolean hasFlags():5936:5936 -> C
+    1:1:boolean hasFlexibleTypeCapabilitiesId():5728:5728 -> D
+    1:1:boolean hasFlexibleUpperBound():5748:5748 -> E
+    1:1:boolean hasFlexibleUpperBoundId():5763:5763 -> F
+    1:1:boolean hasNullable():5708:5708 -> G
+    1:1:boolean hasOuterType():5868:5868 -> H
+    1:1:boolean hasOuterTypeId():5887:5887 -> I
+    1:1:boolean hasTypeAliasName():5844:5844 -> J
+    1:1:boolean hasTypeParameter():5797:5797 -> K
+    1:1:boolean hasTypeParameterName():5820:5820 -> L
+    1:3:void initFields():5950:5952 -> M
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstance():4819:4819 -> M
+    4:4:void initFields():5953 -> M
+    5:15:void initFields():5953:5963 -> M
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> N
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> O
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> O
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> O
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> O
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> O
+    1:1:java.util.List access$5900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> a
+    2:2:java.util.List access$5902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,java.util.List):4805:4805 -> a
+    3:3:boolean access$6002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,boolean):4805:4805 -> a
+    4:4:int access$6102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$6202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> a
+    6:6:boolean isInitialized():5967:5967 -> a
+    7:7:int getArgumentCount():5686:5686 -> a
+    7:7:boolean isInitialized():5971 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getArgument(int):5692:5692 -> a
+    8:8:boolean isInitialized():5972 -> a
+    9:14:boolean isInitialized():5972:5977 -> a
+    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():5754:5754 -> a
+    15:15:boolean isInitialized():5978 -> a
+    16:21:boolean isInitialized():5978:5983 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():5878:5878 -> a
+    22:22:boolean isInitialized():5984 -> a
+    23:28:boolean isInitialized():5984:5989 -> a
+    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():5908:5908 -> a
+    29:29:boolean isInitialized():5990 -> a
+    30:39:boolean isInitialized():5990:5999 -> a
+    40:87:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):6005:6052 -> a
+    1:1:int access$6302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$6802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$7400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstanceForType():4823:4823 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():4805 -> b
+    1:1:int access$6402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$7002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> c
+    3:15:int getSerializedSize():6057:6069 -> c
+    16:16:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBoolSize(int,boolean):587:587 -> c
+    16:16:int getSerializedSize():6070 -> c
+    17:63:int getSerializedSize():6073:6119 -> c
+    1:1:int access$6502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilderForType():6184 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():4805 -> d
+    1:1:int access$6602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():4805 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():4805 -> e
+    1:1:int access$6702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> f
+    1:1:int access$6902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> g
+    1:1:int access$7102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> h
+    1:1:int access$7202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> i
+    1:1:int access$7302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():5908:5908 -> k
+    1:1:int getAbbreviatedTypeId():5923:5923 -> l
+    1:1:java.util.List getArgumentList():5673:5673 -> m
+    1:1:int getClassName():5784:5784 -> n
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstance():4819:4819 -> o
+    1:1:int getFlags():5946:5946 -> p
+    1:1:int getFlexibleTypeCapabilitiesId():5739:5739 -> q
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():5754:5754 -> r
+    1:1:int getFlexibleUpperBoundId():5769:5769 -> s
+    1:1:boolean getNullable():5714:5714 -> t
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():5878:5878 -> u
+    1:1:int getOuterTypeId():5893:5893 -> v
+    1:1:int getTypeAliasName():5855:5855 -> w
+    1:1:int getTypeParameter():5807:5807 -> x
+    1:1:int getTypeParameterName():5830:5830 -> y
+    1:1:boolean hasAbbreviatedType():5902:5902 -> z
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$1 -> com.android.tools.r8.w.b.a.x0.a.T:
+    1:1:void <init>():4972:4972 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4977:4977 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4972 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument -> com.android.tools.r8.w.b.a.x0.a.X:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument defaultInstance -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection projection_ -> c
+    int memoizedSerializedSize -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> d
+    int typeId_ -> e
+    int bitField0_ -> b
+    byte memoizedIsInitialized -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> i
+    1:537:void <clinit>():5123:5659 -> <clinit>
+    538:540:void initFields():5267:5269 -> <clinit>
+    538:540:void <clinit>():5660 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):5028:5028 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):5028:5028 -> <init>
+    3:271:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):5034:5302 -> <init>
+    272:272:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):5035:5035 -> <init>
+    273:539:void <init>(boolean):5037:5037 -> <init>
+    540:790:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5052:5302 -> <init>
+    791:840:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5053:5102 -> <init>
+    841:849:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5089:5097 -> <init>
+    850:884:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5076:5110 -> <init>
+    885:897:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5108:5120 -> <init>
+    898:902:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5114:5118 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection access$5202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):5028:5028 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$5302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5028:5028 -> a
+    3:3:int access$5402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,int):5028:5028 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$5600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5028:5028 -> a
+    5:9:boolean isInitialized():5273:5277 -> a
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5248:5248 -> a
+    10:10:boolean isInitialized():5278 -> a
+    11:16:boolean isInitialized():5278:5283 -> a
+    17:27:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):5289:5299 -> a
+    1:1:int access$5502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,int):5028:5028 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstanceForType():5045:5045 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():5028 -> b
+    1:18:int getSerializedSize():5304:5321 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder():5385:5385 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilderForType():5386 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():5028 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder():5385:5385 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5388 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder toBuilder():5390 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():5028 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5388:5388 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder toBuilder():5390 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():5028 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstance():5041:5041 -> g
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection getProjection():5225:5225 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5248:5248 -> i
+    1:1:int getTypeId():5263:5263 -> j
+    1:1:boolean hasProjection():5219:5219 -> k
+    1:1:boolean hasType():5238:5238 -> l
+    1:1:boolean hasTypeId():5257:5257 -> m
+    1:3:void initFields():5267:5269 -> n
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder():5385:5385 -> o
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$1 -> com.android.tools.r8.w.b.a.x0.a.U:
+    1:1:void <init>():5124:5124 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5129:5129 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5124 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder -> com.android.tools.r8.w.b.a.x0.a.V:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection projection_ -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> d
+    int typeId_ -> e
+    int bitField0_ -> b
+    1:138:void <init>():5402:5539 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):5395:5395 -> a
+    2:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5460:5465 -> a
+    8:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5598:5600 -> a
+    8:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5465 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5600 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5465 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5600 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5465 -> a
+    13:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5600:5606 -> a
+    13:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5465 -> a
+    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5467:5468 -> a
+    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setTypeId(int):5640:5641 -> a
+    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5468 -> a
+    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5470:5470 -> a
+    25:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5491:5497 -> a
+    25:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5395 -> a
+    32:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5493:5497 -> a
+    32:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5395 -> a
+    37:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setProjection(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):5524:5525 -> a
+    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setProjection(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):5522:5522 -> a
+    40:40:boolean hasType():5548:5548 -> a
+    40:40:boolean isInitialized():5476 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5558:5558 -> a
+    41:41:boolean isInitialized():5477 -> a
+    42:42:boolean isInitialized():5477:5477 -> a
+    43:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5571:5573 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstanceForType():5428:5428 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():5395 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument build():5432:5433 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():5395 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument build():5434 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():5395 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument build():5434:5434 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():5395 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder create():5409:5409 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder clone():5424 -> clone
+    1:1:java.lang.Object clone():5395 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder clone():5424:5424 -> clone
+    2:2:java.lang.Object clone():5395 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstanceForType():5428:5428 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():5395 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder create():5409:5409 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder access$5000():5395 -> f
+    1:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument buildPartial():5440:5455 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection -> com.android.tools.r8.w.b.a.x0.a.W:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection STAR -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection IN -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection OUT -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection INV -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection[] $VALUES -> f
+    int value -> a
+    1:13:void <clinit>():5146:5158 -> <clinit>
+    14:14:void <clinit>():5141:5141 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):5205:5206 -> <init>
+    1:1:int getNumber():5179:5179 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5186:5186 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5185:5185 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5184:5184 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5183:5183 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder -> com.android.tools.r8.w.b.a.x0.a.Y:
+    int outerTypeId_ -> o
+    int typeParameterName_ -> l
+    int typeAliasName_ -> m
+    int className_ -> j
+    int typeParameter_ -> k
+    int flexibleUpperBoundId_ -> i
+    int flexibleTypeCapabilitiesId_ -> g
+    int bitField0_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type abbreviatedType_ -> p
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type outerType_ -> n
+    java.util.List argument_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type flexibleUpperBound_ -> h
+    boolean nullable_ -> f
+    int flags_ -> r
+    int abbreviatedTypeId_ -> q
+    1:830:void <init>():6199:7028 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):6193:6193 -> a
+    2:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6324:6339 -> a
+    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleTypeCapabilitiesId(int):6620:6621 -> a
+    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6339 -> a
+    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6341:6342 -> a
+    22:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6679:6681 -> a
+    22:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6342 -> a
+    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6681 -> a
+    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6342 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6681 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6342 -> a
+    27:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6681:6687 -> a
+    27:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6342 -> a
+    34:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6344:6345 -> a
+    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleUpperBoundId(int):6717:6718 -> a
+    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6345 -> a
+    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6347:6348 -> a
+    40:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setClassName(int):6749:6750 -> a
+    40:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6348 -> a
+    42:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6350:6351 -> a
+    44:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameter(int):6793:6794 -> a
+    44:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6351 -> a
+    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6353:6354 -> a
+    48:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameterName(int):6841:6842 -> a
+    48:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6354 -> a
+    50:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6356:6357 -> a
+    52:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeAliasName(int):6892:6893 -> a
+    52:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6357 -> a
+    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6359:6360 -> a
+    56:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6971:6973 -> a
+    56:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6360 -> a
+    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6973 -> a
+    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6360 -> a
+    60:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    60:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6973 -> a
+    60:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6360 -> a
+    61:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6973:6979 -> a
+    61:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6360 -> a
+    68:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6362:6363 -> a
+    70:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setOuterTypeId(int):7013:7014 -> a
+    70:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6363 -> a
+    72:73:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6365:6366 -> a
+    74:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7067:7069 -> a
+    74:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6366 -> a
+    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7069 -> a
+    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6366 -> a
+    78:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    78:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7069 -> a
+    78:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6366 -> a
+    79:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7069:7075 -> a
+    79:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6366 -> a
+    86:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6368:6369 -> a
+    88:89:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setAbbreviatedTypeId(int):7105:7106 -> a
+    88:89:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6369 -> a
+    90:91:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6371:6372 -> a
+    92:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlags(int):7149:7150 -> a
+    92:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6372 -> a
+    94:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6374:6375 -> a
+    96:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6418:6424 -> a
+    96:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6193 -> a
+    103:107:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6420:6424 -> a
+    103:107:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6193 -> a
+    108:108:int getArgumentCount():6450:6450 -> a
+    108:108:boolean isInitialized():6381 -> a
+    109:109:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getArgument(int):6456:6456 -> a
+    109:109:boolean isInitialized():6382 -> a
+    110:110:boolean isInitialized():6382:6382 -> a
+    111:111:boolean hasFlexibleUpperBound():6645:6645 -> a
+    111:111:boolean isInitialized():6387 -> a
+    112:112:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():6651:6651 -> a
+    112:112:boolean isInitialized():6388 -> a
+    113:113:boolean isInitialized():6388:6388 -> a
+    114:114:boolean hasOuterType():6921:6921 -> a
+    114:114:boolean isInitialized():6393 -> a
+    115:115:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():6931:6931 -> a
+    115:115:boolean isInitialized():6394 -> a
+    116:116:boolean isInitialized():6394:6394 -> a
+    117:117:boolean hasAbbreviatedType():7033:7033 -> a
+    117:117:boolean isInitialized():6399 -> a
+    118:118:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():7039:7039 -> a
+    118:118:boolean isInitialized():6400 -> a
+    119:124:boolean isInitialized():6400:6405 -> a
+    125:126:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6511:6512 -> a
+    127:128:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder.build():5432:5433 -> a
+    127:128:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6512 -> a
+    129:129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6512:6512 -> a
+    130:130:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    130:130:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder.build():5434 -> a
+    130:130:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6512 -> a
+    131:131:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder.build():5434:5434 -> a
+    131:131:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6512 -> a
+    132:133:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setNullable(boolean):6573:6574 -> a
+    134:135:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setClassName(int):6749:6750 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstanceForType():6247:6247 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():6193 -> b
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7048:7050 -> b
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlags(int):7149:7150 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():6193:6193 -> c
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleTypeCapabilitiesId(int):6620:6621 -> c
+    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6660:6662 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder create():6206:6206 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder clone():6243 -> clone
+    1:1:java.lang.Object clone():6193 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder clone():6243:6243 -> clone
+    2:2:java.lang.Object clone():6193 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstanceForType():6247:6247 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():6193 -> d
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeAliasName(int):6892:6893 -> d
+    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6944:6946 -> d
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameter(int):6793:6794 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder create():6206:6206 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder access$5700():6193 -> h
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6251:6252 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6253 -> i
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6253:6253 -> i
+    1:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type buildPartial():6259:6319 -> j
+    1:3:void ensureArgumentIsMutable():6434:6436 -> k
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias -> com.android.tools.r8.w.b.a.x0.a.c0:
+    int memoizedSerializedSize -> n
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    int expandedTypeId_ -> j
+    int underlyingTypeId_ -> h
+    int flags_ -> d
+    int name_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias defaultInstance -> o
+    int bitField0_ -> c
+    java.util.List typeParameter_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type expandedType_ -> i
+    byte memoizedIsInitialized -> m
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type underlyingType_ -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> p
+    java.util.List versionRequirement_ -> l
+    java.util.List annotation_ -> k
+    1:1264:void <clinit>():19171:20434 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):19013:19013 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):19013:19013 -> <init>
+    3:464:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):19020:19481 -> <init>
+    465:465:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):19021:19021 -> <init>
+    466:925:void <init>(boolean):19023:19023 -> <init>
+    926:1369:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19038:19481 -> <init>
+    1370:1472:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19039:19141 -> <init>
+    1473:1476:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19125:19128 -> <init>
+    1477:1480:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19117:19120 -> <init>
+    1481:1482:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19111:19112 -> <init>
+    1483:1491:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19099:19107 -> <init>
+    1492:1493:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19093:19094 -> <init>
+    1494:1502:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19081:19089 -> <init>
+    1503:1506:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19073:19076 -> <init>
+    1507:1508:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19067:19068 -> <init>
+    1509:1596:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19062:19149 -> <init>
+    1597:1618:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19147:19168 -> <init>
+    1619:1634:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19153:19168 -> <init>
+    1:9:void initFields():19392:19400 -> A
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder():19594:19594 -> B
+    1:1:int access$18002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> a
+    2:2:java.util.List access$18200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19013:19013 -> a
+    3:3:java.util.List access$18202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):19013:19013 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$18302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):19013:19013 -> a
+    5:5:boolean isInitialized():19404:19404 -> a
+    6:6:boolean hasName():19218:19218 -> a
+    6:6:boolean isInitialized():19408 -> a
+    7:7:boolean isInitialized():19409:19409 -> a
+    8:8:int getTypeParameterCount():19246:19246 -> a
+    8:8:boolean isInitialized():19412 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):19252:19252 -> a
+    9:9:boolean isInitialized():19413 -> a
+    10:15:boolean isInitialized():19413:19418 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():19274:19274 -> a
+    16:16:boolean isInitialized():19419 -> a
+    17:22:boolean isInitialized():19419:19424 -> a
+    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():19304:19304 -> a
+    23:23:boolean isInitialized():19425 -> a
+    24:25:boolean isInitialized():19425:19426 -> a
+    26:26:int getAnnotationCount():19341:19341 -> a
+    26:26:boolean isInitialized():19430 -> a
+    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation(int):19347:19347 -> a
+    27:27:boolean isInitialized():19431 -> a
+    28:37:boolean isInitialized():19431:19440 -> a
+    38:70:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):19446:19478 -> a
+    1:1:int access$18102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$18502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):19013:19013 -> b
+    3:3:java.util.List access$18700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19013:19013 -> b
+    4:4:java.util.List access$18702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):19013:19013 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstanceForType():19031:19031 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():19013 -> b
+    1:1:int access$18402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> c
+    2:2:java.util.List access$18800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19013:19013 -> c
+    3:3:java.util.List access$18802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):19013:19013 -> c
+    4:43:int getSerializedSize():19483:19522 -> c
+    44:44:java.util.List getVersionRequirementList():19368:19368 -> c
+    44:44:int getSerializedSize():19526 -> c
+    45:49:int getSerializedSize():19526:19530 -> c
+    1:1:int access$18602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$19000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19013:19013 -> d
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder():19594:19594 -> d
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilderForType():19595 -> d
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():19013 -> d
+    1:1:int access$18902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder():19594:19594 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19597 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder toBuilder():19599 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():19013 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19597:19597 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder toBuilder():19599 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():19013 -> e
+    1:1:java.util.List getAnnotationList():19328:19328 -> k
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstance():19027:19027 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():19304:19304 -> m
+    1:1:int getExpandedTypeId():19319:19319 -> n
+    1:1:int getFlags():19209:19209 -> o
+    1:1:int getName():19224:19224 -> p
+    1:1:java.util.List getTypeParameterList():19233:19233 -> q
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():19274:19274 -> r
+    1:1:int getUnderlyingTypeId():19289:19289 -> s
+    1:1:java.util.List getVersionRequirementList():19368:19368 -> t
+    1:1:boolean hasExpandedType():19298:19298 -> u
+    1:1:boolean hasExpandedTypeId():19313:19313 -> v
+    1:1:boolean hasFlags():19198:19198 -> w
+    1:1:boolean hasName():19218:19218 -> x
+    1:1:boolean hasUnderlyingType():19268:19268 -> y
+    1:1:boolean hasUnderlyingTypeId():19283:19283 -> z
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$1 -> com.android.tools.r8.w.b.a.x0.a.a0:
+    1:1:void <init>():19172:19172 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19177:19177 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19172 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder -> com.android.tools.r8.w.b.a.x0.a.b0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type expandedType_ -> j
+    int expandedTypeId_ -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type underlyingType_ -> h
+    int underlyingTypeId_ -> i
+    int name_ -> f
+    int bitField0_ -> d
+    int flags_ -> e
+    java.util.List typeParameter_ -> g
+    java.util.List versionRequirement_ -> m
+    java.util.List annotation_ -> l
+    1:726:void <init>():19610:20335 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):19604:19604 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19707:19709 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setFlags(int):19849:19850 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19709 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19711:19712 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setName(int):19886:19887 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19712 -> a
+    11:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19714:19725 -> a
+    23:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20065:20067 -> a
+    23:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19725 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20067 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19725 -> a
+    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20067 -> a
+    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19725 -> a
+    28:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20067:20073 -> a
+    28:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19725 -> a
+    35:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19727:19728 -> a
+    37:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setUnderlyingTypeId(int):20103:20104 -> a
+    37:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19728 -> a
+    39:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19730:19731 -> a
+    41:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20157:20159 -> a
+    41:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19731 -> a
+    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20159 -> a
+    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19731 -> a
+    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20159 -> a
+    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19731 -> a
+    46:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20159:20165 -> a
+    46:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19731 -> a
+    53:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19733:19734 -> a
+    55:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setExpandedTypeId(int):20195:20196 -> a
+    55:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19734 -> a
+    57:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19736:19757 -> a
+    79:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19804:19810 -> a
+    79:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19604 -> a
+    86:90:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19806:19810 -> a
+    86:90:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19604 -> a
+    91:91:boolean hasName():19874:19874 -> a
+    91:91:boolean isInitialized():19763 -> a
+    92:92:int getTypeParameterCount():19920:19920 -> a
+    92:92:boolean isInitialized():19767 -> a
+    93:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):19926:19926 -> a
+    93:93:boolean isInitialized():19768 -> a
+    94:94:boolean isInitialized():19768:19768 -> a
+    95:95:boolean hasUnderlyingType():20031:20031 -> a
+    95:95:boolean isInitialized():19773 -> a
+    96:96:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():20037:20037 -> a
+    96:96:boolean isInitialized():19774 -> a
+    97:97:boolean isInitialized():19774:19774 -> a
+    98:98:boolean hasExpandedType():20123:20123 -> a
+    98:98:boolean isInitialized():19779 -> a
+    99:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():20129:20129 -> a
+    99:99:boolean isInitialized():19780 -> a
+    100:100:boolean isInitialized():19780:19780 -> a
+    101:101:int getAnnotationCount():20229:20229 -> a
+    101:101:boolean isInitialized():19785 -> a
+    102:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation(int):20235:20235 -> a
+    102:102:boolean isInitialized():19786 -> a
+    103:108:boolean isInitialized():19786:19791 -> a
+    109:110:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder addTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):19981:19982 -> a
+    111:113:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20138:20140 -> a
+    114:115:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder addAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder):20290:20291 -> a
+    116:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder addVersionRequirement(int):20395:20396 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstanceForType():19648:19648 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():19604 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setFlags(int):19849:19850 -> b
+    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20046:20048 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():19604:19604 -> c
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setName(int):19886:19887 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder create():19617:19617 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder clone():19644 -> clone
+    1:1:java.lang.Object clone():19604 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder clone():19644:19644 -> clone
+    2:2:java.lang.Object clone():19604 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstanceForType():19648:19648 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():19604 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder create():19617:19617 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder access$17800():19604 -> h
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19652:19653 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19654 -> i
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19654:19654 -> i
+    1:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias buildPartial():19660:19702 -> j
+    1:3:void ensureAnnotationIsMutable():20213:20215 -> k
+    1:3:void ensureTypeParameterIsMutable():19904:19906 -> l
+    1:3:void ensureVersionRequirementIsMutable():20337:20339 -> m
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter -> com.android.tools.r8.w.b.a.x0.a.g0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    int memoizedSerializedSize -> l
+    int upperBoundIdMemoizedSerializedSize -> j
+    int id_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance variance_ -> g
+    int name_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter defaultInstance -> m
+    int bitField0_ -> c
+    byte memoizedIsInitialized -> k
+    boolean reified_ -> f
+    java.util.List upperBoundId_ -> i
+    java.util.List upperBound_ -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> n
+    1:875:void <clinit>():7378:8252 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7250:7250 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7250:7250 -> <init>
+    3:391:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):7257:7645 -> <init>
+    392:392:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):7258:7258 -> <init>
+    393:779:void <init>(boolean):7260:7260 -> <init>
+    780:1150:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7275:7645 -> <init>
+    1151:1226:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7276:7351 -> <init>
+    1227:1230:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7335:7338 -> <init>
+    1231:1234:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7327:7330 -> <init>
+    1235:1242:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7314:7321 -> <init>
+    1243:1244:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7309:7310 -> <init>
+    1245:1246:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7304:7305 -> <init>
+    1247:1307:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7299:7359 -> <init>
+    1308:1326:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7357:7375 -> <init>
+    1327:1339:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7363:7375 -> <init>
+    1:1:int access$7802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7250:7250 -> a
+    2:2:boolean access$8002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,boolean):7250:7250 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance access$8102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):7250:7250 -> a
+    4:4:java.util.List access$8200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7250:7250 -> a
+    5:5:java.util.List access$8202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,java.util.List):7250:7250 -> a
+    6:6:boolean isInitialized():7587:7587 -> a
+    7:7:boolean hasId():7465:7465 -> a
+    7:7:boolean isInitialized():7591 -> a
+    8:8:boolean isInitialized():7592:7592 -> a
+    9:9:boolean hasName():7480:7480 -> a
+    9:9:boolean isInitialized():7595 -> a
+    10:10:boolean isInitialized():7596:7596 -> a
+    11:11:int getUpperBoundCount():7538:7538 -> a
+    11:11:boolean isInitialized():7599 -> a
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUpperBound(int):7544:7544 -> a
+    12:12:boolean isInitialized():7600 -> a
+    13:22:boolean isInitialized():7600:7609 -> a
+    23:40:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):7615:7632 -> a
+    41:41:java.util.List getUpperBoundIdList():7561:7561 -> a
+    41:41:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):7634 -> a
+    42:50:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):7634:7642 -> a
+    1:1:int access$7902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7250:7250 -> b
+    2:2:java.util.List access$8300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7250:7250 -> b
+    3:3:java.util.List access$8302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,java.util.List):7250:7250 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstanceForType():7268:7268 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():7250 -> b
+    1:1:int access$8402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7250:7250 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$8500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7250:7250 -> c
+    3:15:int getSerializedSize():7647:7659 -> c
+    16:16:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBoolSize(int,boolean):587:587 -> c
+    16:16:int getSerializedSize():7660 -> c
+    17:28:int getSerializedSize():7663:7674 -> c
+    29:29:java.util.List getUpperBoundIdList():7561:7561 -> c
+    29:29:int getSerializedSize():7678 -> c
+    30:39:int getSerializedSize():7678:7687 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder():7751:7751 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilderForType():7752 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():7250 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder():7751:7751 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7754 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder toBuilder():7756 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():7250 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7754:7754 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder toBuilder():7756 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():7250 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstance():7264:7264 -> k
+    1:1:int getId():7471:7471 -> l
+    1:1:int getName():7486:7486 -> m
+    1:1:boolean getReified():7501:7501 -> n
+    1:1:java.util.List getUpperBoundIdList():7561:7561 -> o
+    1:1:java.util.List getUpperBoundList():7525:7525 -> p
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance getVariance():7516:7516 -> q
+    1:1:boolean hasId():7465:7465 -> r
+    1:1:boolean hasName():7480:7480 -> s
+    1:1:boolean hasReified():7495:7495 -> t
+    1:1:boolean hasVariance():7510:7510 -> u
+    1:6:void initFields():7578:7583 -> v
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder():7751:7751 -> w
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$1 -> com.android.tools.r8.w.b.a.x0.a.d0:
+    1:1:void <init>():7379:7379 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7384:7384 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7379 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder -> com.android.tools.r8.w.b.a.x0.a.e0:
+    int name_ -> f
+    java.util.List upperBoundId_ -> j
+    java.util.List upperBound_ -> i
+    int bitField0_ -> d
+    boolean reified_ -> g
+    int id_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance variance_ -> h
+    1:415:void <init>():7767:8181 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):7761:7761 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7845:7847 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setId(int):7942:7943 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7847 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7849:7850 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setName(int):7974:7975 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7850 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7852:7853 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setReified(boolean):8006:8007 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7853 -> a
+    15:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7855:7871 -> a
+    32:34:void ensureUpperBoundIdIsMutable():8183:8185 -> a
+    32:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7873 -> a
+    35:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7874:7879 -> a
+    41:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7912:7918 -> a
+    41:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7761 -> a
+    48:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7914:7918 -> a
+    48:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7761 -> a
+    53:53:boolean hasId():7930:7930 -> a
+    53:53:boolean isInitialized():7885 -> a
+    54:54:boolean hasName():7962:7962 -> a
+    54:54:boolean isInitialized():7889 -> a
+    55:55:int getUpperBoundCount():8075:8075 -> a
+    55:55:boolean isInitialized():7893 -> a
+    56:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUpperBound(int):8081:8081 -> a
+    56:56:boolean isInitialized():7894 -> a
+    57:62:boolean isInitialized():7894:7899 -> a
+    63:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setId(int):7942:7943 -> a
+    65:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setReified(boolean):8006:8007 -> a
+    67:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setVariance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):8041:8042 -> a
+    69:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setVariance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):8039:8039 -> a
+    70:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder addUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):8136:8137 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstanceForType():7799:7799 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():7761 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setName(int):7974:7975 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():7761:7761 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder create():7774:7774 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder clone():7795 -> clone
+    1:1:java.lang.Object clone():7761 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder clone():7795:7795 -> clone
+    2:2:java.lang.Object clone():7761 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstanceForType():7799:7799 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():7761 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder create():7774:7774 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder access$7600():7761 -> h
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7803:7804 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7805 -> i
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7805:7805 -> i
+    1:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter buildPartial():7811:7840 -> j
+    1:3:void ensureUpperBoundIsMutable():8059:8061 -> k
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance -> com.android.tools.r8.w.b.a.x0.a.f0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance IN -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance[] $VALUES -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance OUT -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance INV -> d
+    int value -> a
+    1:9:void <clinit>():7401:7409 -> <clinit>
+    10:10:void <clinit>():7396:7396 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):7451:7452 -> <init>
+    1:1:int getNumber():7426:7426 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7432:7432 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7431:7431 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7430:7430 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable -> com.android.tools.r8.w.b.a.x0.a.j0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    java.util.List type_ -> c
+    int memoizedSerializedSize -> f
+    int firstNullable_ -> d
+    int bitField0_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable defaultInstance -> g
+    byte memoizedIsInitialized -> e
+    1:487:void <clinit>():12806:13292 -> <clinit>
+    488:13372:void initFields():0:12884 -> <clinit>
+    488:13372:void <clinit>():13293 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12725:12725 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12725:12725 -> <init>
+    3:186:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):12731:12914 -> <init>
+    187:187:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):12732:12732 -> <init>
+    188:369:void <init>(boolean):12734:12734 -> <init>
+    370:535:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12749:12914 -> <init>
+    536:568:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12750:12782 -> <init>
+    569:585:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12774:12790 -> <init>
+    586:601:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12788:12803 -> <init>
+    602:609:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12794:12801 -> <init>
+    1:1:java.util.List access$12000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12725:12725 -> a
+    2:2:java.util.List access$12002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,java.util.List):12725:12725 -> a
+    3:3:int access$12102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,int):12725:12725 -> a
+    4:4:boolean isInitialized():12888:12888 -> a
+    5:5:int getTypeCount():12841:12841 -> a
+    5:5:boolean isInitialized():12892 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType(int):12847:12847 -> a
+    6:6:boolean isInitialized():12893 -> a
+    7:12:boolean isInitialized():12893:12898 -> a
+    13:20:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):12904:12911 -> a
+    1:1:int access$12202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,int):12725:12725 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$12300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12725:12725 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstanceForType():12742:12742 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():12725 -> b
+    1:14:int getSerializedSize():12916:12929 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12993:12993 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilderForType():12994 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():12725 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12993:12993 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():12725 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():12725 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstance():12738:12738 -> g
+    1:1:int getFirstNullable():12879:12879 -> h
+    1:1:java.util.List getTypeList():12828:12828 -> i
+    1:1:boolean hasFirstNullable():12868:12868 -> j
+    1:2:void initFields():12883:12884 -> k
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12993:12993 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> l
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> l
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> l
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$1 -> com.android.tools.r8.w.b.a.x0.a.h0:
+    1:1:void <init>():12807:12807 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12812:12812 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12807 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder -> com.android.tools.r8.w.b.a.x0.a.i0:
+    java.util.List type_ -> c
+    int firstNullable_ -> d
+    int bitField0_ -> b
+    1:227:void <init>():13010:13236 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):13003:13003 -> a
+    2:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13063:13067 -> a
+    7:9:void ensureTypeIsMutable():13114:13116 -> a
+    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13069 -> a
+    10:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13070:13075 -> a
+    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder setFirstNullable(int):13268:13269 -> a
+    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13075 -> a
+    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13077:13077 -> a
+    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13098:13104 -> a
+    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13003 -> a
+    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13100:13104 -> a
+    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13003 -> a
+    31:31:int getTypeCount():13130:13130 -> a
+    31:31:boolean isInitialized():13083 -> a
+    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType(int):13136:13136 -> a
+    32:32:boolean isInitialized():13084 -> a
+    33:33:boolean isInitialized():13084:13084 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstanceForType():13034:13034 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():13003 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable build():13038:13039 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13003 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable build():13040 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13003 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable build():13040:13040 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13003 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder create():13017:13017 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder clone():13030 -> clone
+    1:1:java.lang.Object clone():13003 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder clone():13030:13030 -> clone
+    2:2:java.lang.Object clone():13003 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstanceForType():13034:13034 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():13003 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder create():13017:13017 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder access$11800():13003 -> f
+    1:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable buildPartial():13046:13058 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter -> com.android.tools.r8.w.b.a.x0.a.m0:
+    byte memoizedIsInitialized -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter defaultInstance -> l
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
+    int memoizedSerializedSize -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type varargElementType_ -> h
+    int varargElementTypeId_ -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> f
+    int typeId_ -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> m
+    int flags_ -> d
+    int name_ -> e
+    int bitField0_ -> c
+    1:724:void <clinit>():18159:18882 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18047:18047 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18047:18047 -> <init>
+    3:294:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):18054:18345 -> <init>
+    295:295:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):18055:18055 -> <init>
+    296:585:void <init>(boolean):18057:18057 -> <init>
+    586:859:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18072:18345 -> <init>
+    860:925:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18073:18138 -> <init>
+    926:927:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18132:18133 -> <init>
+    928:936:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18120:18128 -> <init>
+    937:945:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18107:18115 -> <init>
+    946:947:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18101:18102 -> <init>
+    948:998:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18096:18146 -> <init>
+    999:1011:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18144:18156 -> <init>
+    1012:1018:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18150:18156 -> <init>
+    1:1:int access$16902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$17102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18047:18047 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$17600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18047:18047 -> a
+    4:4:boolean isInitialized():18289:18289 -> a
+    5:5:boolean hasName():18210:18210 -> a
+    5:5:boolean isInitialized():18293 -> a
+    6:9:boolean isInitialized():18294:18297 -> a
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18231:18231 -> a
+    10:10:boolean isInitialized():18298 -> a
+    11:16:boolean isInitialized():18298:18303 -> a
+    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18261:18261 -> a
+    17:17:boolean isInitialized():18304 -> a
+    18:27:boolean isInitialized():18304:18313 -> a
+    28:51:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):18319:18342 -> a
+    1:1:int access$17002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$17302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18047:18047 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstanceForType():18065:18065 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():18047 -> b
+    1:1:int access$17202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> c
+    2:32:int getSerializedSize():18347:18377 -> c
+    1:1:int access$17402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilderForType():18442 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():18047 -> d
+    1:1:int access$17502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():18047 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444:18444 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():18047 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstance():18061:18061 -> k
+    1:1:int getFlags():18201:18201 -> l
+    1:1:int getName():18216:18216 -> m
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18231:18231 -> n
+    1:1:int getTypeId():18246:18246 -> o
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18261:18261 -> p
+    1:1:int getVarargElementTypeId():18276:18276 -> q
+    1:1:boolean hasFlags():18188:18188 -> r
+    1:1:boolean hasName():18210:18210 -> s
+    1:1:boolean hasType():18225:18225 -> t
+    1:1:boolean hasTypeId():18240:18240 -> u
+    1:1:boolean hasVarargElementType():18255:18255 -> v
+    1:1:boolean hasVarargElementTypeId():18270:18270 -> w
+    1:6:void initFields():18280:18285 -> x
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> y
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> z
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444 -> z
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> z
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444:18444 -> z
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> z
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$1 -> com.android.tools.r8.w.b.a.x0.a.k0:
+    1:1:void <init>():18160:18160 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18165:18165 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18160 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder -> com.android.tools.r8.w.b.a.x0.a.l0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type varargElementType_ -> i
+    int varargElementTypeId_ -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> g
+    int typeId_ -> h
+    int name_ -> f
+    int bitField0_ -> d
+    int flags_ -> e
+    1:329:void <init>():18457:18785 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):18451:18451 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18533:18535 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setFlags(int):18639:18640 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18535 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18537:18538 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setName(int):18678:18679 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18538 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18540:18541 -> a
+    13:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18732:18734 -> a
+    13:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18541 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18734 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18541 -> a
+    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18734 -> a
+    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18541 -> a
+    18:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18734:18740 -> a
+    18:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18541 -> a
+    25:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18543:18544 -> a
+    27:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setTypeId(int):18770:18771 -> a
+    27:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18544 -> a
+    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18546:18547 -> a
+    31:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18824:18826 -> a
+    31:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18547 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18826 -> a
+    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18547 -> a
+    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
+    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18826 -> a
+    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18547 -> a
+    36:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18826:18832 -> a
+    36:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18547 -> a
+    43:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18549:18550 -> a
+    45:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setVarargElementTypeId(int):18862:18863 -> a
+    45:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18550 -> a
+    47:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18552:18553 -> a
+    49:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18588:18594 -> a
+    49:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18451 -> a
+    56:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18590:18594 -> a
+    56:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18451 -> a
+    61:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setFlags(int):18639:18640 -> a
+    63:63:boolean hasName():18666:18666 -> a
+    63:63:boolean isInitialized():18559 -> a
+    64:64:boolean hasType():18698:18698 -> a
+    64:64:boolean isInitialized():18563 -> a
+    65:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18704:18704 -> a
+    65:65:boolean isInitialized():18564 -> a
+    66:66:boolean isInitialized():18564:18564 -> a
+    67:67:boolean hasVarargElementType():18790:18790 -> a
+    67:67:boolean isInitialized():18569 -> a
+    68:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18796:18796 -> a
+    68:68:boolean isInitialized():18570 -> a
+    69:74:boolean isInitialized():18570:18575 -> a
+    75:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18713:18715 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstanceForType():18489:18489 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():18451 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setName(int):18678:18679 -> b
+    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18805:18807 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():18451:18451 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder create():18464:18464 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder clone():18485 -> clone
+    1:1:java.lang.Object clone():18451 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder clone():18485:18485 -> clone
+    2:2:java.lang.Object clone():18451 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstanceForType():18489:18489 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():18451 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder create():18464:18464 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder access$16700():18451 -> h
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18493:18494 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18495 -> i
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18495:18495 -> i
+    1:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter buildPartial():18501:18528 -> j
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement -> com.android.tools.r8.w.b.a.x0.a.r0:
+    byte memoizedIsInitialized -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level level_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    int memoizedSerializedSize -> j
+    int errorCode_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement defaultInstance -> k
+    int message_ -> g
+    int versionFull_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind versionKind_ -> h
+    int bitField0_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
+    int version_ -> c
+    1:885:void <clinit>():21033:21917 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20924:20924 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20924:20924 -> <init>
+    3:440:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):20930:21367 -> <init>
+    441:441:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):20931:20931 -> <init>
+    442:877:void <init>(boolean):20933:20933 -> <init>
+    878:1297:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20948:21367 -> <init>
+    1298:1360:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20949:21011 -> <init>
+    1361:1362:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20999:21000 -> <init>
+    1363:1364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20994:20995 -> <init>
+    1365:1372:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20982:20989 -> <init>
+    1373:1374:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20977:20978 -> <init>
+    1375:1423:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20972:21020 -> <init>
+    1424:1436:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21018:21030 -> <init>
+    1437:1441:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21024:21028 -> <init>
+    1:1:int access$20002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level access$20202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):20924:20924 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind access$20502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):20924:20924 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$20700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):20924:20924 -> a
+    5:9:boolean isInitialized():21335:21339 -> a
+    10:29:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):21345:21364 -> a
+    1:1:int access$20102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstanceForType():20941:20941 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():20924 -> b
+    1:1:int access$20302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> c
+    2:31:int getSerializedSize():21369:21398 -> c
+    1:1:int access$20402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder():21462:21462 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilderForType():21463 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():20924 -> d
+    1:1:int access$20602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder():21462:21462 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21465 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder toBuilder():21467 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20924 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21465:21465 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder toBuilder():21467 -> e
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20924 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstance():20937:20937 -> g
+    1:1:int getErrorCode():21274:21274 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level getLevel():21251:21251 -> i
+    1:1:int getMessage():21297:21297 -> j
+    1:1:int getVersion():21203:21203 -> k
+    1:1:int getVersionFull():21228:21228 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind getVersionKind():21322:21322 -> m
+    1:1:boolean hasErrorCode():21264:21264 -> n
+    1:1:boolean hasLevel():21241:21241 -> o
+    1:1:boolean hasMessage():21287:21287 -> p
+    1:1:boolean hasVersion():21191:21191 -> q
+    1:1:boolean hasVersionFull():21217:21217 -> r
+    1:1:boolean hasVersionKind():21311:21311 -> s
+    1:6:void initFields():21326:21331 -> t
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder():21462:21462 -> u
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$1 -> com.android.tools.r8.w.b.a.x0.a.n0:
+    1:1:void <init>():21034:21034 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21039:21039 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21034 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder -> com.android.tools.r8.w.b.a.x0.a.o0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level level_ -> e
+    int errorCode_ -> f
+    int message_ -> g
+    int versionFull_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind versionKind_ -> h
+    int bitField0_ -> b
+    int version_ -> c
+    1:379:void <init>():21479:21857 -> <init>
+    boolean isInitialized() -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):21472:21472 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21555:21557 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersion(int):21637:21638 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21557 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21559:21560 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionFull(int):21690:21691 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21560 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21562:21563 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setLevel(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):21742:21743 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21563 -> a
+    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setLevel(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):21740:21740 -> a
+    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21563 -> a
+    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21565:21566 -> a
+    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setErrorCode(int):21790:21791 -> a
+    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21566 -> a
+    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21568:21569 -> a
+    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setMessage(int):21838:21839 -> a
+    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21569 -> a
+    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21571:21572 -> a
+    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):21892:21893 -> a
+    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21572 -> a
+    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):21890:21890 -> a
+    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21572 -> a
+    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21574:21574 -> a
+    30:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21589:21595 -> a
+    30:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21472 -> a
+    37:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21591:21595 -> a
+    37:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21472 -> a
+    42:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setLevel(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):21742:21743 -> a
+    44:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setErrorCode(int):21790:21791 -> a
+    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):21892:21893 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstanceForType():21511:21511 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():21472 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setMessage(int):21838:21839 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement build():21515:21516 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():21472 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement build():21517 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():21472 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement build():21517:21517 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():21472 -> c
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersion(int):21637:21638 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder create():21486:21486 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder clone():21507 -> clone
+    1:1:java.lang.Object clone():21472 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder clone():21507:21507 -> clone
+    2:2:java.lang.Object clone():21472 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstanceForType():21511:21511 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():21472 -> d
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionFull(int):21690:21691 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder create():21486:21486 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder access$19800():21472 -> f
+    1:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement buildPartial():21523:21550 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level -> com.android.tools.r8.w.b.a.x0.a.p0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level[] $VALUES -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level HIDDEN -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level ERROR -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level WARNING -> b
+    int value -> a
+    1:9:void <clinit>():21056:21064 -> <clinit>
+    10:10:void <clinit>():21051:21051 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):21106:21107 -> <init>
+    1:1:int getNumber():21081:21081 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):21087:21087 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):21086:21086 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):21085:21085 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind -> com.android.tools.r8.w.b.a.x0.a.q0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind COMPILER_VERSION -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind LANGUAGE_VERSION -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind API_VERSION -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind[] $VALUES -> e
+    int value -> a
+    1:9:void <clinit>():21121:21129 -> <clinit>
+    10:10:void <clinit>():21116:21116 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):21171:21172 -> <init>
+    1:1:int getNumber():21146:21146 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):21152:21152 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):21151:21151 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):21150:21150 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable -> com.android.tools.r8.w.b.a.x0.a.u0:
+    java.util.List requirement_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    int memoizedSerializedSize -> d
+    byte memoizedIsInitialized -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable defaultInstance -> e
+    1:378:void <clinit>():22020:22397 -> <clinit>
+    379:22450:void initFields():0:22071 -> <clinit>
+    379:22450:void <clinit>():22398 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21944:21944 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21944:21944 -> <init>
+    3:145:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):21950:22092 -> <init>
+    146:146:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):21951:21951 -> <init>
+    147:287:void <init>(boolean):21953:21953 -> <init>
+    288:412:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21968:22092 -> <init>
+    413:448:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21969:22004 -> <init>
+    449:464:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22002:22017 -> <init>
+    465:472:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22008:22015 -> <init>
+    1:1:java.util.List access$21100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):21944:21944 -> a
+    2:2:java.util.List access$21102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable,java.util.List):21944:21944 -> a
+    3:7:boolean isInitialized():22075:22079 -> a
+    8:12:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):22085:22089 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$21200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):21944:21944 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstanceForType():21961:21961 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():21944 -> b
+    1:10:int getSerializedSize():22094:22103 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilderForType():22168 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():21944 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():21944 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170:22170 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():21944 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstance():21957:21957 -> g
+    1:1:int getRequirementCount():22054:22054 -> h
+    1:1:java.util.List getRequirementList():22041:22041 -> i
+    1:1:void initFields():22071:22071 -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> k
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> l
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170:22170 -> l
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> l
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$1 -> com.android.tools.r8.w.b.a.x0.a.s0:
+    1:1:void <init>():22021:22021 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22026:22026 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22021 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder -> com.android.tools.r8.w.b.a.x0.a.t0:
+    java.util.List requirement_ -> c
+    int bitField0_ -> b
+    1:85:void <init>():22184:22268 -> <init>
+    boolean isInitialized() -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):22177:22177 -> a
+    2:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22229:22240 -> a
+    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22255:22261 -> a
+    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22177 -> a
+    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22257:22261 -> a
+    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22177 -> a
+    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22348:22349 -> a
+    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.build():21515:21516 -> a
+    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22349 -> a
+    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22349:22349 -> a
+    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.build():21517 -> a
+    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22349 -> a
+    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.build():21517:21517 -> a
+    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22349 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstanceForType():22206:22206 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():22177 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable build():22210:22211 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():22177 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable build():22212 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():22177 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable build():22212:22212 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():22177 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder create():22191:22191 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder clone():22202 -> clone
+    1:1:java.lang.Object clone():22177 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder clone():22202:22202 -> clone
+    2:2:java.lang.Object clone():22177 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstanceForType():22206:22206 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():22177 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder create():22191:22191 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder access$20900():22177 -> f
+    1:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable buildPartial():22218:22224 -> g
+    1:3:void ensureRequirementIsMutable():22271:22273 -> h
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility -> com.android.tools.r8.w.b.a.x0.a.v0:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility LOCAL -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PRIVATE_TO_THIS -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PUBLIC -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PROTECTED -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PRIVATE -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility INTERNAL -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility[] $VALUES -> h
+    int value -> a
+    1:21:void <clinit>():105:125 -> <clinit>
+    22:22:void <clinit>():96:96 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):186:187 -> <init>
+    1:1:int getNumber():158:158 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility[] values():96:96 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.BinaryVersion -> com.android.tools.r8.w.b.a.x0.a.w0.a:
+    java.util.List rest -> d
+    int[] numbers -> e
+    int minor -> b
+    int patch -> c
+    int major -> a
+    1:5:void <init>(int[]):17:21 -> <init>
+    1:1:int getMajor():18:18 -> a
+    2:3:boolean isCompatibleTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.BinaryVersion):34:35 -> a
+    1:1:int getMinor():19:19 -> b
+    1:1:int[] toArray():25:25 -> c
+    1:1:boolean equals(java.lang.Object):58:58 -> equals
+    1:4:int hashCode():62:65 -> hashCode
+    1:1:int[] toArray():25:25 -> toString
+    1:1:java.lang.String toString():52 -> toString
+    2:6:java.lang.String toString():80:84 -> toString
+    7:7:java.lang.String toString():53:53 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags -> com.android.tools.r8.w.b.a.x0.a.w0.f:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField MEMBER_KIND -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_SUSPEND -> p
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_GETTER -> r
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_CONST -> t
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_CONSTANT -> v
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_CLASS -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField MODALITY -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INFIX -> l
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_TAILREC -> n
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_NOT_DEFAULT -> A
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INLINE_ACCESSOR -> C
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_ANNOTATIONS -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_UNSIGNED -> E
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INNER -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField DECLARES_DEFAULT_VALUE -> y
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_VAR -> q
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_SETTER -> s
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_LATEINIT -> u
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_PROPERTY -> w
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXPECT_CLASS -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField VISIBILITY -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_OPERATOR -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField CLASS_KIND -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INLINE -> m
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_FUNCTION -> o
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField SUSPEND_TYPE -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_ACCESSOR -> B
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_NEGATED -> D
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_DATA -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_DELEGATED -> x
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_CROSSINLINE -> z
+    1:65:void <clinit>():17:81 -> <clinit>
+    void $$$reportNull$$$0(int) -> a
+    1:1:int getAccessorFlags(boolean,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality,boolean,boolean,boolean):189:189 -> a
+    2:2:int getAccessorFlags(boolean,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality,boolean,boolean,boolean):0:0 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$1 -> com.android.tools.r8.w.b.a.x0.a.w0.b:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField -> com.android.tools.r8.w.b.a.x0.a.w0.c:
+    1:1:void <init>(int):259:259 -> <init>
+    1:1:java.lang.Object get(int):256:256 -> a
+    2:2:int toFlags(java.lang.Object):256:256 -> a
+    3:3:int toFlags(java.lang.Boolean):270:270 -> a
+    1:1:java.lang.Boolean get(int):265:265 -> b
+    2:2:void $$$reportNull$$$0(int):0:0 -> b
+    2:2:java.lang.Boolean get(int):265 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$EnumLiteFlagField -> com.android.tools.r8.w.b.a.x0.a.w0.d:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[] values -> c
+    1:2:void <init>(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[]):280:281 -> <init>
+    1:1:int toFlags(java.lang.Object):276:276 -> a
+    2:2:int toFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite):309:309 -> a
+    2:2:int toFlags(java.lang.Object):276 -> a
+    3:8:int bitWidth(java.lang.Object[]):285:290 -> a
+    9:9:void $$$reportNull$$$0(int):0:0 -> a
+    9:9:int bitWidth(java.lang.Object[]):0 -> a
+    10:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite get(int):296:300 -> a
+    10:14:java.lang.Object get(int):276 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField -> com.android.tools.r8.w.b.a.x0.a.w0.e:
+    int bitWidth -> b
+    int offset -> a
+    1:1:void <init>(int,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$1):224:224 -> <init>
+    2:4:void <init>(int,int):246:248 -> <init>
+    java.lang.Object get(int) -> a
+    int toFlags(java.lang.Object) -> a
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField after(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[]):226:227 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField booleanFirst():235:235 -> a
+    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField booleanAfter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField):239:240 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver -> com.android.tools.r8.w.b.a.x0.a.w0.g:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable -> com.android.tools.r8.w.b.a.x0.a.w0.h:
+    java.util.List types -> a
+    1:20:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):21:40 -> <init>
+    21:33:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):28:40 -> <init>
+    34:34:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):31:31 -> <init>
+    35:35:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):22:22 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type get(int):34:34 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement -> com.android.tools.r8.w.b.a.x0.a.w0.l:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version version -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind kind -> b
+    java.lang.Integer errorCode -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion Companion -> f
+    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel level -> c
+    java.lang.String message -> e
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind,com.android.tools.r8.jetbrains.kotlin.DeprecationLevel,java.lang.Integer,java.lang.String):24:24 -> <init>
+    1:1:java.lang.Integer getErrorCode():28:28 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind getKind():26:26 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlin.DeprecationLevel getLevel():27:27 -> c
+    1:1:java.lang.String getMessage():29:29 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version getVersion():25:25 -> e
+    1:1:java.lang.String toString():81:81 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion -> com.android.tools.r8.w.b.a.x0.a.w0.i:
+    1:1:void <init>():83:83 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):83:83 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version -> com.android.tools.r8.w.b.a.x0.a.w0.k:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion Companion -> e
+    int minor -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version INFINITY -> d
+    int patch -> c
+    int major -> a
+    1:1:void <clinit>():54:54 -> <clinit>
+    1:1:void <init>(int,int,int):31:31 -> <init>
+    int component1() -> a
+    1:8:void encode(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):39:46 -> a
+    9:9:void encode(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):43:43 -> a
+    int component2() -> b
+    int component3() -> c
+    1:1:java.lang.String asString():33:33 -> toString
+    1:1:java.lang.String toString():50 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion -> com.android.tools.r8.w.b.a.x0.a.w0.j:
+    1:1:void <init>():52:52 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):52:52 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable -> com.android.tools.r8.w.b.a.x0.a.w0.n:
+    java.util.List infos -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable$Companion Companion -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable EMPTY -> b
+    1:1:void <clinit>():15:15 -> <clinit>
+    2:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> <clinit>
+    2:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> <clinit>
+    2:2:void <clinit>():15 -> <clinit>
+    3:3:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(java.util.List):11:11 -> <init>
+    2:2:void <init>(java.util.List,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):11:11 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable access$getEMPTY$cp():11:11 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12:12 -> a
+    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.getOrNull(java.util.List,int):0:0 -> a
+    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getOrNull(java.util.List,int):0 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12 -> a
+    4:165:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.getLastIndex(java.util.List):0:161 -> a
+    4:165:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.getOrNull(java.util.List,int):254 -> a
+    4:165:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getOrNull(java.util.List,int):0 -> a
+    4:165:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12 -> a
+    166:166:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.getOrNull(java.util.List,int):254:254 -> a
+    166:166:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getOrNull(java.util.List,int):0 -> a
+    166:166:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12 -> a
+    167:167:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12:12 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable$Companion -> com.android.tools.r8.w.b.a.x0.a.w0.m:
+    1:1:void <init>():14:14 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):14:14 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18:18 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable getEMPTY():15:15 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18 -> a
+    3:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18:18 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf -> com.android.tools.r8.w.b.a.x0.a.x0.r:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension constructorSignature -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension propertySignature -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension flags -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension methodSignature -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension lambdaClassOriginName -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension typeParameterAnnotation -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension classModuleName -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension typeAnnotation -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension isRaw -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension packageModuleName -> l
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension packageLocalVariable -> m
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension classLocalVariable -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension anonymousObjectOriginName -> k
+    1:212:void <clinit>():3800:4011 -> <clinit>
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1 -> com.android.tools.r8.w.b.a.x0.a.x0.a:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature -> com.android.tools.r8.w.b.a.x0.a.x0.d:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature defaultInstance -> g
+    int memoizedSerializedSize -> f
+    int desc_ -> d
+    int bitField0_ -> b
+    int name_ -> c
+    byte memoizedIsInitialized -> e
+    1:348:void <clinit>():2669:3016 -> <clinit>
+    349:350:void initFields():2724:2725 -> <clinit>
+    349:350:void <clinit>():3017 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594:2594 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594:2594 -> <init>
+    3:152:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2600:2749 -> <init>
+    153:153:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2601:2601 -> <init>
+    154:301:void <init>(boolean):2603:2603 -> <init>
+    302:433:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2618:2749 -> <init>
+    434:463:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2619:2648 -> <init>
+    464:478:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2642:2656 -> <init>
+    479:491:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2654:2666 -> <init>
+    492:496:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2660:2664 -> <init>
+    1:1:int access$2702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2594:2594 -> a
+    3:7:boolean isInitialized():2729:2733 -> a
+    8:15:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):2739:2746 -> a
+    1:1:int access$2802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstanceForType():2611:2611 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2594 -> b
+    1:1:int access$2902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> c
+    2:15:int getSerializedSize():2751:2764 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilderForType():2829 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2594 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2594 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831:2831 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2594 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstance():2607:2607 -> g
+    1:1:int getDesc():2720:2720 -> h
+    1:1:int getName():2697:2697 -> i
+    1:1:boolean hasDesc():2710:2710 -> j
+    1:1:boolean hasName():2691:2691 -> k
+    1:2:void initFields():2724:2725 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> m
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> n
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831 -> n
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> n
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831:2831 -> n
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> n
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$1 -> com.android.tools.r8.w.b.a.x0.a.x0.b:
+    1:1:void <init>():2670:2670 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2675:2675 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2670 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.c:
+    int desc_ -> d
+    int bitField0_ -> b
+    int name_ -> c
+    1:1:void <init>():2845:2845 -> <init>
+    boolean isInitialized() -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):2838:2838 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2897:2899 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setName(int):2949:2950 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2899 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2901:2902 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setDesc(int):2993:2994 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2902 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2904:2904 -> a
+    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2919:2925 -> a
+    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2838 -> a
+    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2921:2925 -> a
+    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2838 -> a
+    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setDesc(int):2993:2994 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstanceForType():2869:2869 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2838 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setName(int):2949:2950 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature build():2873:2874 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2838 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature build():2875 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2838 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature build():2875:2875 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2838 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder create():2852:2852 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder clone():2865 -> clone
+    1:1:java.lang.Object clone():2838 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder clone():2865:2865 -> clone
+    2:2:java.lang.Object clone():2838 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstanceForType():2869:2869 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():2838 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder create():2852:2852 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder access$2500():2838 -> f
+    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature buildPartial():2881:2892 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature -> com.android.tools.r8.w.b.a.x0.a.x0.g:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature defaultInstance -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    int memoizedSerializedSize -> f
+    int desc_ -> d
+    int bitField0_ -> b
+    int name_ -> c
+    byte memoizedIsInitialized -> e
+    1:348:void <clinit>():2207:2554 -> <clinit>
+    349:350:void initFields():2262:2263 -> <clinit>
+    349:350:void <clinit>():2555 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132:2132 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132:2132 -> <init>
+    3:152:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2138:2287 -> <init>
+    153:153:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2139:2139 -> <init>
+    154:301:void <init>(boolean):2141:2141 -> <init>
+    302:433:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2156:2287 -> <init>
+    434:463:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2157:2186 -> <init>
+    464:478:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2180:2194 -> <init>
+    479:491:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2192:2204 -> <init>
+    492:496:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2198:2202 -> <init>
+    1:1:int access$2002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$2300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2132:2132 -> a
+    3:7:boolean isInitialized():2267:2271 -> a
+    8:15:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):2277:2284 -> a
+    1:1:int access$2102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstanceForType():2149:2149 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2132 -> b
+    1:1:int access$2202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> c
+    2:15:int getSerializedSize():2289:2302 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilderForType():2367 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2132 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2132 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2132 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstance():2145:2145 -> g
+    1:1:int getDesc():2258:2258 -> h
+    1:1:int getName():2235:2235 -> i
+    1:1:boolean hasDesc():2248:2248 -> j
+    1:1:boolean hasName():2229:2229 -> k
+    1:2:void initFields():2262:2263 -> l
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> m
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> n
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> n
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> n
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> n
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> n
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$1 -> com.android.tools.r8.w.b.a.x0.a.x0.e:
+    1:1:void <init>():2208:2208 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2213:2213 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2208 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.f:
+    int desc_ -> d
+    int bitField0_ -> b
+    int name_ -> c
+    1:1:void <init>():2383:2383 -> <init>
+    boolean isInitialized() -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):2376:2376 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2435:2437 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setName(int):2487:2488 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2437 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2439:2440 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setDesc(int):2531:2532 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2440 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2442:2442 -> a
+    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2457:2463 -> a
+    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2376 -> a
+    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2459:2463 -> a
+    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2376 -> a
+    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setDesc(int):2531:2532 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstanceForType():2407:2407 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2376 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setName(int):2487:2488 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature build():2411:2412 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2376 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature build():2413 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2376 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature build():2413:2413 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2376 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder create():2390:2390 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder clone():2403 -> clone
+    1:1:java.lang.Object clone():2376 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder clone():2403:2403 -> clone
+    2:2:java.lang.Object clone():2376 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstanceForType():2407:2407 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():2376 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder create():2390:2390 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder access$1800():2376 -> f
+    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature buildPartial():2419:2430 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature -> com.android.tools.r8.w.b.a.x0.a.x0.j:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getter_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature setter_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature defaultInstance -> i
+    int memoizedSerializedSize -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature syntheticMethod_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature field_ -> c
+    int bitField0_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> j
+    byte memoizedIsInitialized -> g
+    1:596:void <clinit>():3191:3786 -> <clinit>
+    597:3876:void initFields():0:3279 -> <clinit>
+    597:3876:void <clinit>():3787 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074:3074 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074:3074 -> <init>
+    3:232:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):3080:3309 -> <init>
+    233:233:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):3081:3081 -> <init>
+    234:461:void <init>(boolean):3083:3083 -> <init>
+    462:673:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3098:3309 -> <init>
+    674:745:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3099:3170 -> <init>
+    746:754:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3149:3157 -> <init>
+    755:763:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3136:3144 -> <init>
+    764:819:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3123:3178 -> <init>
+    820:832:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3176:3188 -> <init>
+    833:837:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3182:3186 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature access$3402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3074:3074 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> a
+    3:3:int access$3802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,int):3074:3074 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3074:3074 -> a
+    5:9:boolean isInitialized():3283:3287 -> a
+    10:23:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):3293:3306 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstanceForType():3091:3091 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():3074 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> c
+    2:23:int getSerializedSize():3311:3332 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder():3396:3396 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilderForType():3397 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():3074 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder():3396:3396 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3399 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder toBuilder():3401 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():3074 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3399:3399 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder toBuilder():3401 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():3074 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstance():3087:3087 -> g
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getField():3219:3219 -> h
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getGetter():3257:3257 -> i
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getSetter():3272:3272 -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getSyntheticMethod():3242:3242 -> k
+    1:1:boolean hasField():3213:3213 -> l
+    1:1:boolean hasGetter():3251:3251 -> m
+    1:1:boolean hasSetter():3266:3266 -> n
+    1:1:boolean hasSyntheticMethod():3232:3232 -> o
+    1:4:void initFields():3276:3279 -> p
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder():3396:3396 -> q
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$1 -> com.android.tools.r8.w.b.a.x0.a.x0.h:
+    1:1:void <init>():3192:3192 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3197:3197 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3192 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.i:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getter_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature setter_ -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature syntheticMethod_ -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature field_ -> c
+    int bitField0_ -> b
+    1:310:void <init>():3413:3722 -> <init>
+    boolean isInitialized() -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):3406:3406 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3477:3479 -> a
+    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3557:3559 -> a
+    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature.newBuilder():2828:2828 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3559 -> a
+    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831:2831 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3559 -> a
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
+    10:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3559:3565 -> a
+    10:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
+    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3481:3482 -> a
+    19:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3637:3639 -> a
+    19:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder():2366:2366 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3639 -> a
+    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
+    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> a
+    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3639 -> a
+    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
+    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3639:3645 -> a
+    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
+    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3484:3485 -> a
+    33:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3701:3703 -> a
+    33:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
+    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder():2366:2366 -> a
+    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> a
+    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3703 -> a
+    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
+    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> a
+    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3703 -> a
+    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
+    38:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3703:3709 -> a
+    38:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
+    45:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3487:3488 -> a
+    47:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3761:3763 -> a
+    47:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
+    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder():2366:2366 -> a
+    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> a
+    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3763 -> a
+    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
+    51:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> a
+    51:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3763 -> a
+    51:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
+    52:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3763:3769 -> a
+    52:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
+    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3490:3490 -> a
+    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3505:3511 -> a
+    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3406 -> a
+    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3507:3511 -> a
+    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3406 -> a
+    72:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3538:3540 -> a
+    75:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder setGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3682:3684 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstanceForType():3441:3441 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():3406 -> b
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder setSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3742:3744 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature build():3445:3446 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3406 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature build():3447 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3406 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature build():3447:3447 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3406 -> c
+    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder setSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3610:3612 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder create():3420:3420 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder clone():3437 -> clone
+    1:1:java.lang.Object clone():3406 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder clone():3437:3437 -> clone
+    2:2:java.lang.Object clone():3406 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstanceForType():3441:3441 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():3406 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder create():3420:3420 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder access$3200():3406 -> f
+    1:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature buildPartial():3453:3472 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes -> com.android.tools.r8.w.b.a.x0.a.x0.q:
+    java.util.List record_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes defaultInstance -> g
+    java.util.List localName_ -> c
+    int memoizedSerializedSize -> f
+    int localNameMemoizedSerializedSize -> d
+    byte memoizedIsInitialized -> e
+    1:1923:void <clinit>():170:2092 -> <clinit>
+    1924:3558:void initFields():0:1634 -> <clinit>
+    1924:3558:void <clinit>():2093 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70:70 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70:70 -> <init>
+    3:1589:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):76:1662 -> <init>
+    1590:1590:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):77:77 -> <init>
+    1591:3175:void <init>(boolean):79:79 -> <init>
+    3176:4744:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):94:1662 -> <init>
+    4745:4793:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):95:143 -> <init>
+    4794:4797:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):127:130 -> <init>
+    4798:4830:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):119:151 -> <init>
+    4831:4849:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):149:167 -> <init>
+    4850:4860:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):155:165 -> <init>
+    1:1:java.util.List access$1400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> a
+    2:2:java.util.List access$1402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.util.List):70:70 -> a
+    3:7:boolean isInitialized():1638:1642 -> a
+    8:10:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):1648:1650 -> a
+    11:11:java.util.List getLocalNameList():1608:1608 -> a
+    11:11:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):1652 -> a
+    12:19:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):1652:1659 -> a
+    1:1:java.util.List access$1500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> b
+    2:2:java.util.List access$1502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.util.List):70:70 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstanceForType():87:87 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():70 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$1600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> c
+    2:13:int getSerializedSize():1664:1675 -> c
+    14:14:java.util.List getLocalNameList():1608:1608 -> c
+    14:14:int getSerializedSize():1679 -> c
+    15:23:int getSerializedSize():1679:1687 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder():1751:1751 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilderForType():1752 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():70 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder():1751:1751 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1754 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder toBuilder():1756 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():70 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1754:1754 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder toBuilder():1756 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():70 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstance():83:83 -> g
+    1:1:java.util.List getLocalNameList():1608:1608 -> h
+    1:1:java.util.List getRecordList():1568:1568 -> i
+    1:2:void initFields():1633:1634 -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder():1751:1751 -> k
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$1 -> com.android.tools.r8.w.b.a.x0.a.x0.k:
+    1:1:void <init>():171:171 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):176:176 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):171 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.l:
+    java.util.List localName_ -> d
+    java.util.List record_ -> c
+    int bitField0_ -> b
+    1:227:void <init>():1768:1994 -> <init>
+    boolean isInitialized() -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):1761:1761 -> a
+    2:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1820:1841 -> a
+    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1856:1862 -> a
+    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1761 -> a
+    31:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1858:1862 -> a
+    31:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1761 -> a
+    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder addAllLocalName(java.lang.Iterable):2068:2069 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstanceForType():1792:1792 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():1761 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder addAllRecord(java.lang.Iterable):1969:1970 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes build():1796:1797 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():1761 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes build():1798 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():1761 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes build():1798:1798 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():1761 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder create():1775:1775 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder clone():1788 -> clone
+    1:1:java.lang.Object clone():1761 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder clone():1788:1788 -> clone
+    2:2:java.lang.Object clone():1761 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstanceForType():1792:1792 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():1761 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder create():1775:1775 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder access$1200():1761 -> f
+    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes buildPartial():1804:1815 -> g
+    1:3:void ensureLocalNameIsMutable():1996:1998 -> h
+    1:3:void ensureRecordIsMutable():1872:1874 -> i
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record -> com.android.tools.r8.w.b.a.x0.a.x0.p:
+    int memoizedSerializedSize -> l
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    int replaceCharMemoizedSerializedSize -> j
+    int substringIndexMemoizedSerializedSize -> h
+    java.lang.Object string_ -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record defaultInstance -> m
+    int predefinedIndex_ -> d
+    int bitField0_ -> b
+    int range_ -> c
+    byte memoizedIsInitialized -> k
+    java.util.List replaceChar_ -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> n
+    java.util.List substringIndex_ -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation operation_ -> f
+    1:1088:void <clinit>():469:1556 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328:328 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328:328 -> <init>
+    3:491:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):334:822 -> <init>
+    492:492:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):335:335 -> <init>
+    493:979:void <init>(boolean):337:337 -> <init>
+    980:1450:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):352:822 -> <init>
+    1451:1540:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):353:442 -> <init>
+    1541:1550:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):427:436 -> <init>
+    1551:1554:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):420:423 -> <init>
+    1555:1564:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):406:415 -> <init>
+    1565:1568:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):399:402 -> <init>
+    1569:1576:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):386:393 -> <init>
+    1577:1578:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):381:382 -> <init>
+    1579:1653:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):376:450 -> <init>
+    1654:1672:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):448:466 -> <init>
+    1673:1683:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):454:464 -> <init>
+    1:1:int access$1002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$1100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> a
+    3:3:java.lang.Object access$602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.lang.Object):328:328 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation access$702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):328:328 -> a
+    5:5:java.util.List access$802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.util.List):328:328 -> a
+    6:10:boolean isInitialized():782:786 -> a
+    11:19:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):792:800 -> a
+    20:20:java.util.List getSubstringIndexList():706:706 -> a
+    20:20:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):802 -> a
+    21:26:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):802:807 -> a
+    27:27:java.util.List getReplaceCharList():746:746 -> a
+    27:27:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):809 -> a
+    28:35:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):809:816 -> a
+    36:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString getStringBytes():658:666 -> a
+    36:44:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):817 -> a
+    45:47:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):817:819 -> a
+    1:1:int access$402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> b
+    2:2:java.lang.Object access$600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> b
+    3:3:java.util.List access$902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.util.List):328:328 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstanceForType():345:345 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():328 -> b
+    1:1:int access$502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> c
+    2:2:java.util.List access$800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> c
+    3:22:int getSerializedSize():824:843 -> c
+    23:23:java.util.List getSubstringIndexList():706:706 -> c
+    23:23:int getSerializedSize():847 -> c
+    24:34:int getSerializedSize():847:857 -> c
+    35:35:java.util.List getReplaceCharList():746:746 -> c
+    35:35:int getSerializedSize():861 -> c
+    36:43:int getSerializedSize():861:868 -> c
+    44:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString getStringBytes():658:666 -> c
+    44:52:int getSerializedSize():869 -> c
+    53:53:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBytesSize(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):637:637 -> c
+    53:53:int getSerializedSize():869 -> c
+    54:54:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBytesSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):883:883 -> c
+    54:54:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBytesSize(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):637 -> c
+    54:54:int getSerializedSize():869 -> c
+    55:56:int getSerializedSize():872:873 -> c
+    1:1:java.util.List access$900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilderForType():938 -> d
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():328 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():328 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940:940 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> e
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():328 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstance():341:341 -> g
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation getOperation():690:690 -> h
+    1:1:int getPredefinedIndex():613:613 -> i
+    1:1:int getRange():590:590 -> j
+    1:1:int getReplaceCharCount():757:757 -> k
+    1:1:java.util.List getReplaceCharList():746:746 -> l
+    1:5:java.lang.String getString():636:640 -> m
+    6:630:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toStringUtf8():0:624 -> m
+    6:630:java.lang.String getString():642 -> m
+    631:632:java.lang.String getString():643:644 -> m
+    633:633:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toStringUtf8():626:626 -> m
+    633:633:java.lang.String getString():642 -> m
+    1:1:int getSubstringIndexCount():718:718 -> n
+    1:1:java.util.List getSubstringIndexList():706:706 -> o
+    1:1:boolean hasOperation():680:680 -> p
+    1:1:boolean hasPredefinedIndex():603:603 -> q
+    1:1:boolean hasRange():580:580 -> r
+    1:1:boolean hasString():626:626 -> s
+    1:6:void initFields():773:778 -> t
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> u
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> v
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940 -> v
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> v
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940:940 -> v
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> v
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$1 -> com.android.tools.r8.w.b.a.x0.a.x0.m:
+    1:1:void <init>():470:470 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):475:475 -> a
+    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):470 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.n:
+    java.lang.Object string_ -> e
+    int predefinedIndex_ -> d
+    java.util.List replaceChar_ -> h
+    java.util.List substringIndex_ -> g
+    int bitField0_ -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation operation_ -> f
+    int range_ -> c
+    1:497:void <init>():954:1450 -> <init>
+    boolean isInitialized() -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):947:947 -> a
+    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1032:1034 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setRange(int):1124:1125 -> a
+    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1034 -> a
+    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1036:1037 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setPredefinedIndex(int):1172:1173 -> a
+    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1037 -> a
+    11:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1039:1045 -> a
+    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setOperation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):1323:1324 -> a
+    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1045 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setOperation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):1321:1321 -> a
+    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1045 -> a
+    21:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1047:1050 -> a
+    25:27:void ensureSubstringIndexIsMutable():1344:1346 -> a
+    25:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1052 -> a
+    28:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1053:1060 -> a
+    36:38:void ensureReplaceCharIsMutable():1452:1454 -> a
+    36:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1062 -> a
+    39:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1063:1067 -> a
+    44:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1082:1088 -> a
+    44:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):947 -> a
+    51:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1084:1088 -> a
+    51:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):947 -> a
+    56:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setPredefinedIndex(int):1172:1173 -> a
+    58:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setOperation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):1323:1324 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstanceForType():986:986 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():947 -> b
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setRange(int):1124:1125 -> b
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record build():990:991 -> c
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():947 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record build():992 -> c
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():947 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record build():992:992 -> c
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():947 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder create():961:961 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder clone():982 -> clone
+    1:1:java.lang.Object clone():947 -> clone
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder clone():982:982 -> clone
+    2:2:java.lang.Object clone():947 -> clone
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstanceForType():986:986 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():947 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder create():961:961 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder access$200():947 -> f
+    1:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record buildPartial():998:1027 -> g
+    1:1:int getRange():1114:1114 -> h
+    1:1:int getReplaceCharCount():1478:1478 -> i
+    1:1:int getSubstringIndexCount():1372:1372 -> j
+    1:1:boolean hasOperation():1300:1300 -> k
+    1:1:boolean hasPredefinedIndex():1152:1152 -> l
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation -> com.android.tools.r8.w.b.a.x0.a.x0.o:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation NONE -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation[] $VALUES -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation DESC_TO_CLASS_ID -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation INTERNAL_TO_CLASS_ID -> c
+    int value -> a
+    1:19:void <clinit>():492:510 -> <clinit>
+    20:20:void <clinit>():487:487 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int,int):562:563 -> <init>
+    1:1:int getNumber():537:537 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):543:543 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):542:542 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):541:541 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.BitEncoding -> com.android.tools.r8.w.b.a.x0.a.x0.s.a:
+    boolean FORCE_8TO7_ENCODING -> a
+    boolean $assertionsDisabled -> b
+    1:13:void <clinit>():15:27 -> <clinit>
+    void $$$reportNull$$$0(int) -> a
+    1:1:java.lang.String[] encodeBytes(byte[]):45:45 -> a
+    2:77:java.lang.String[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.bytesToStrings(byte[]):0:75 -> a
+    2:77:java.lang.String[] encodeBytes(byte[]):46 -> a
+    78:110:byte[] encode8to7(byte[]):75:107 -> a
+    78:110:java.lang.String[] encodeBytes(byte[]):48 -> a
+    111:111:java.lang.String[] encodeBytes(byte[]):51:51 -> a
+    112:153:java.lang.String[] splitBytesToStringArray(byte[]):130:171 -> a
+    112:153:java.lang.String[] encodeBytes(byte[]):52 -> a
+    154:154:byte[] encode8to7(byte[]):0:0 -> a
+    154:154:java.lang.String[] encodeBytes(byte[]):48 -> a
+    155:155:java.lang.String[] encodeBytes(byte[]):0:0 -> a
+    156:157:void addModuloByte(byte[],int):114:115 -> a
+    158:161:byte[] decodeBytes(java.lang.String[]):179:182 -> a
+    162:239:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.stringsToBytes(java.lang.String[]):0:77 -> a
+    162:239:byte[] decodeBytes(java.lang.String[]):182 -> a
+    240:250:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.stringsToBytes(java.lang.String[]):59:69 -> a
+    240:250:byte[] decodeBytes(java.lang.String[]):182 -> a
+    251:251:byte[] decodeBytes(java.lang.String[]):185:185 -> a
+    252:261:byte[] combineStringArrayIntoBytes(java.lang.String[]):210:219 -> a
+    252:261:byte[] decodeBytes(java.lang.String[]):189 -> a
+    262:262:byte[] decodeBytes(java.lang.String[]):191:191 -> a
+    263:279:byte[] decode7to8(byte[]):247:263 -> a
+    263:279:byte[] decodeBytes(java.lang.String[]):192 -> a
+    1:2:java.lang.String[] dropMarker(java.lang.String[]):199:200 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.ClassMapperLite -> com.android.tools.r8.w.b.a.x0.a.x0.s.c:
+    java.util.Map map -> a
+    1:10:void <clinit>():20:29 -> <clinit>
+    11:11:void <clinit>():21:21 -> <clinit>
+    12:165:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.getIndices(java.util.Collection):0:153 -> <clinit>
+    12:165:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getIndices(java.util.Collection):0 -> <clinit>
+    12:165:void <clinit>():32 -> <clinit>
+    166:743:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0:577 -> <clinit>
+    166:743:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
+    166:743:void <clinit>():32 -> <clinit>
+    744:744:void com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt__RangesKt.checkStepIsPositive(boolean,java.lang.Number):0:0 -> <clinit>
+    744:744:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):577 -> <clinit>
+    744:744:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
+    744:744:void <clinit>():32 -> <clinit>
+    745:745:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):578:578 -> <clinit>
+    745:745:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
+    745:745:void <clinit>():32 -> <clinit>
+    746:746:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression$Companion.fromClosedRange(int,int,int):122:122 -> <clinit>
+    746:746:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):578 -> <clinit>
+    746:746:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
+    746:746:void <clinit>():32 -> <clinit>
+    747:784:void <clinit>():32:69 -> <clinit>
+    785:785:void <clinit>():20:20 -> <clinit>
+    1:1:java.lang.String mapClass(java.lang.String):78:78 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.ClassMapperLite$map$1$1 -> com.android.tools.r8.w.b.a.x0.a.x0.s.b:
+    java.util.Map $this_apply -> a
+    1:1:java.lang.Object invoke(java.lang.Object,java.lang.Object):15:15 -> a
+    2:2:void invoke(java.lang.String,java.lang.String):40:40 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmBytecodeBinaryVersion -> com.android.tools.r8.w.b.a.x0.a.x0.s.d:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmBytecodeBinaryVersion INSTANCE -> f
+    1:4:void <clinit>():19:22 -> <clinit>
+    1:1:void <init>(int[]):14:14 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature -> com.android.tools.r8.w.b.a.x0.a.x0.s.g:
+    1:1:void <init>():14:14 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):14:14 -> <init>
+    java.lang.String asString() -> a
+    1:1:java.lang.String toString():27:27 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field -> com.android.tools.r8.w.b.a.x0.a.x0.s.e:
+    java.lang.String name -> a
+    java.lang.String desc -> b
+    1:1:void <init>(java.lang.String,java.lang.String):23:23 -> <init>
+    1:1:java.lang.String asString():24:24 -> a
+    2:2:java.lang.String getName():23:23 -> a
+    2:2:java.lang.String asString():24 -> a
+    3:3:java.lang.String asString():24:24 -> a
+    4:4:java.lang.String getDesc():23:23 -> a
+    4:4:java.lang.String asString():24 -> a
+    5:5:java.lang.String asString():24:24 -> a
+    1:1:java.lang.String getDesc():23:23 -> b
+    1:1:java.lang.String getName():23:23 -> c
+    1:2:java.lang.String getName():23:23 -> equals
+    1:2:boolean equals(java.lang.Object):0 -> equals
+    3:3:boolean equals(java.lang.Object):0:0 -> equals
+    4:5:java.lang.String getDesc():23:23 -> equals
+    4:5:boolean equals(java.lang.Object):0 -> equals
+    6:6:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.String getName():23:23 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    3:3:java.lang.String getDesc():23:23 -> hashCode
+    3:3:int hashCode():0 -> hashCode
+    4:4:int hashCode():0:0 -> hashCode
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method -> com.android.tools.r8.w.b.a.x0.a.x0.s.f:
+    java.lang.String name -> a
+    java.lang.String desc -> b
+    1:1:void <init>(java.lang.String,java.lang.String):19:19 -> <init>
+    1:1:java.lang.String asString():20:20 -> a
+    2:2:java.lang.String getName():19:19 -> a
+    2:2:java.lang.String asString():20 -> a
+    3:3:java.lang.String asString():20:20 -> a
+    4:4:java.lang.String getDesc():19:19 -> a
+    4:4:java.lang.String asString():20 -> a
+    5:5:java.lang.String asString():20:20 -> a
+    1:1:java.lang.String getDesc():19:19 -> b
+    1:1:java.lang.String getName():19:19 -> c
+    1:2:java.lang.String getName():19:19 -> equals
+    1:2:boolean equals(java.lang.Object):0 -> equals
+    3:3:boolean equals(java.lang.Object):0:0 -> equals
+    4:5:java.lang.String getDesc():19:19 -> equals
+    4:5:boolean equals(java.lang.Object):0 -> equals
+    6:6:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.String getName():19:19 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    3:3:java.lang.String getDesc():19:19 -> hashCode
+    3:3:int hashCode():0 -> hashCode
+    4:4:int hashCode():0:0 -> hashCode
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMetadataVersion -> com.android.tools.r8.w.b.a.x0.a.x0.s.h:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMetadataVersion INSTANCE -> g
+    boolean isStrictSemantics -> f
+    1:1:void <clinit>():30:30 -> <clinit>
+    2:17:void <init>(int[]):0:15 -> <clinit>
+    2:17:void <clinit>():30 -> <clinit>
+    18:21:void <clinit>():30:33 -> <clinit>
+    22:37:void <init>(int[]):0:15 -> <clinit>
+    22:37:void <clinit>():33 -> <clinit>
+    1:1:void <init>(int[],boolean):14:14 -> <init>
+    1:6:boolean isCompatible():20:25 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver -> com.android.tools.r8.w.b.a.x0.a.x0.s.j:
+    java.util.List records -> b
+    java.util.List PREDEFINED_STRINGS -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes types -> c
+    java.lang.String[] strings -> d
+    java.util.Set localNameIndices -> a
+    java.util.Map PREDEFINED_STRINGS_MAP -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver$Companion Companion -> g
+    1:32:void <clinit>():78:78 -> <clinit>
+    65:75:void <clinit>():111:111 -> <clinit>
+    86:86:void <clinit>():122:122 -> <clinit>
+    1:16:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):13:28 -> <init>
+    17:17:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):20:20 -> <init>
+    1:1:java.util.Map access$getPREDEFINED_STRINGS_MAP$cp():13:13 -> a
+    2:34:java.lang.String getString(int):32:64 -> a
+    35:45:java.lang.String getString(int):58:68 -> a
+    1:1:java.util.List getRecords():20:20 -> b
+    2:2:boolean isLocalClassName(int):75:75 -> b
+    1:1:java.lang.String[] getStrings():15:15 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getTypes():14:14 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver$Companion -> com.android.tools.r8.w.b.a.x0.a.x0.s.i:
+    1:1:void <init>():77:77 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):77:77 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil -> com.android.tools.r8.w.b.a.x0.a.x0.s.k:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite EXTENSION_REGISTRY -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil INSTANCE -> b
+    1:2:void <clinit>():18:19 -> <clinit>
+    3:15:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf.registerAllExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):10:22 -> <clinit>
+    3:15:void <clinit>():19 -> <clinit>
+    16:16:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>():18:18 -> <init>
+    1:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field getJvmFieldSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,boolean):0:121 -> a
+    1:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field getJvmFieldSignature$default(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,boolean,int,java.lang.Object):110 -> a
+    123:123:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27:27 -> a
+    124:156:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):0:32 -> a
+    124:156:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
+    157:157:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9650:9650 -> a
+    157:157:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):32 -> a
+    157:157:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
+    158:158:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):32:32 -> a
+    158:158:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
+    159:159:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52:52 -> a
+    160:160:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes.parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1737:1737 -> a
+    160:160:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52 -> a
+    161:161:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52:52 -> a
+    162:163:java.lang.String[] writeData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable):59:60 -> a
+    164:169:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite.writeTo(java.io.OutputStream):77:82 -> a
+    164:169:java.lang.String[] writeData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable):61 -> a
+    170:170:java.lang.String[] writeData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable):62:62 -> a
+    171:171:java.lang.String[] writeData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable):59:59 -> a
+    172:177:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):70:75 -> a
+    178:178:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOfNotNull(java.lang.Object):118:118 -> a
+    178:178:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOfNotNull(java.lang.Object):0 -> a
+    178:178:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75 -> a
+    179:179:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
+    179:179:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
+    179:179:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOfNotNull(java.lang.Object):118 -> a
+    179:179:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOfNotNull(java.lang.Object):0 -> a
+    179:179:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75 -> a
+    180:242:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75:75 -> a
+    243:2317:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.plus(java.util.Collection,java.lang.Iterable):0:2074 -> a
+    243:2317:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.plus(java.util.Collection,java.lang.Iterable):0 -> a
+    243:2317:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75 -> a
+    2318:2320:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):138:140 -> a
+    2321:2326:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):77:82 -> a
+    2327:2381:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmConstructorSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):90:144 -> a
+    2382:2385:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmConstructorSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):100:103 -> a
+    2386:2386:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):126:126 -> a
+    2387:2387:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver.getQualifiedClassName(int):72:72 -> a
+    2387:2387:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):126 -> a
+    2388:2388:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):126:126 -> a
+    1:2:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):47:48 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15000:15000 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):48 -> b
+    4:4:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):48:48 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):37:37 -> c
+    2:44:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):0:42 -> c
+    2:44:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):37 -> c
+    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11972:11972 -> c
+    45:45:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):42 -> c
+    45:45:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):37 -> c
+    46:46:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):42:42 -> c
+    46:46:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):37 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable -> com.android.tools.r8.w.b.a.x0.a.x0.t.a:
+    java.util.LinkedHashSet localNames -> d
+    java.util.ArrayList records -> b
+    java.util.ArrayList strings -> a
+    java.util.HashMap map -> c
+    1:101:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver):15:115 -> <init>
+    102:106:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver):24:28 -> <init>
+    107:107:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):15:15 -> <init>
+    1:1:java.util.ArrayList getStrings():16:16 -> a
+    2:72:int getStringIndex(java.lang.String):33:103 -> a
+    73:76:int getStringIndex(java.lang.String):34:37 -> a
+    77:518:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.lastOrNull(java.util.List):0:441 -> a
+    77:518:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.lastOrNull(java.util.List):0 -> a
+    77:518:int getStringIndex(java.lang.String):37 -> a
+    519:519:int getStringIndex(java.lang.String):37:37 -> a
+    520:520:boolean isTrivial(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder):45:45 -> a
+    520:520:int getStringIndex(java.lang.String):38 -> a
+    521:588:int getStringIndex(java.lang.String):39:106 -> a
+    589:589:int getStringIndex(java.lang.String):104:104 -> a
+    590:603:int getQualifiedClassNameIndex(java.lang.String,boolean):57:70 -> a
+    604:604:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt.contains$default(java.lang.CharSequence,char,boolean,int,java.lang.Object):0:0 -> a
+    604:604:int getQualifiedClassNameIndex(java.lang.String,boolean):73 -> a
+    605:605:int getQualifiedClassNameIndex(java.lang.String,boolean):76:76 -> a
+    606:719:java.lang.Integer com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver$Companion.getPredefinedStringIndex(java.lang.String):0:113 -> a
+    606:719:int getQualifiedClassNameIndex(java.lang.String,boolean):76 -> a
+    720:725:int getQualifiedClassNameIndex(java.lang.String,boolean):78:83 -> a
+    726:741:int getQualifiedClassNameIndex(java.lang.String,boolean):74:89 -> a
+    742:759:void serializeTo(java.io.OutputStream):95:112 -> a
+    760:761:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder.build():990:991 -> a
+    760:761:void serializeTo(java.io.OutputStream):96 -> a
+    762:762:void serializeTo(java.io.OutputStream):96:96 -> a
+    763:763:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    763:763:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder.build():992 -> a
+    763:763:void serializeTo(java.io.OutputStream):96 -> a
+    764:764:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder.build():992:992 -> a
+    764:764:void serializeTo(java.io.OutputStream):96 -> a
+    765:766:void serializeTo(java.io.OutputStream):96:97 -> a
+    767:768:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder.build():1796:1797 -> a
+    767:768:void serializeTo(java.io.OutputStream):98 -> a
+    769:776:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite.writeDelimitedTo(java.io.OutputStream):86:93 -> a
+    769:776:void serializeTo(java.io.OutputStream):98 -> a
+    777:777:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    777:777:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder.build():1798 -> a
+    777:777:void serializeTo(java.io.OutputStream):98 -> a
+    778:778:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder.build():1798:1798 -> a
+    778:778:void serializeTo(java.io.OutputStream):98 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner -> com.android.tools.r8.w.b.a.x0.a.y0.b:
+    java.util.HashMap interned -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner parent -> c
+    int firstIndex -> a
+    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner):8:10 -> <init>
+    1:19:java.util.List getAllInternedObjects():13:31 -> a
+    20:2547:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):0:2527 -> a
+    20:2547:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):0 -> a
+    20:2547:java.util.List getAllInternedObjects():31 -> a
+    2548:4410:void com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.sortWith(java.lang.Object[],java.util.Comparator):0:1862 -> a
+    2548:4410:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):947 -> a
+    2548:4410:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):0 -> a
+    2548:4410:java.util.List getAllInternedObjects():31 -> a
+    4411:5991:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):947:2527 -> a
+    4411:5991:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):0 -> a
+    4411:5991:java.util.List getAllInternedObjects():31 -> a
+    5992:5995:java.lang.Integer find(java.lang.Object):19:22 -> a
+    1:1:boolean isEmpty():16:16 -> b
+    2:3:int intern(java.lang.Object):26:27 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner$allInternedObjects$$inlined$sortedBy$1 -> com.android.tools.r8.w.b.a.x0.a.y0.a:
+    java.util.HashMap receiver$0$inlined -> a
+    1:220:int compare(java.lang.Object,java.lang.Object):102:321 -> compare
+    221:221:int com.android.tools.r8.jetbrains.kotlin.comparisons.ComparisonsKt__ComparisonsKt.compareValues(java.lang.Comparable,java.lang.Comparable):78:78 -> compare
+    221:221:int com.android.tools.r8.jetbrains.kotlin.comparisons.ComparisonsKt.compareValues(java.lang.Comparable,java.lang.Comparable):0 -> compare
+    221:221:int compare(java.lang.Object,java.lang.Object):321 -> compare
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableVersionRequirementTable -> com.android.tools.r8.w.b.a.x0.a.y0.c:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.interner -> a
+    1:6:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.<init>():23:28 -> <init>
+    1:6:void <init>():56 -> <init>
+    7:7:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> <init>
+    7:7:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.<init>():28 -> <init>
+    7:7:void <init>():56 -> <init>
+    8:8:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.<init>():28:28 -> <init>
+    8:8:void <init>():56 -> <init>
+    1:36:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.get(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):0:35 -> a
+    1:36:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.get(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):0 -> a
+    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():39:39 -> a
+    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder createTableBuilder():57:57 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder createTableBuilder():55 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():40 -> a
+    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
+    39:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():41:42 -> a
+    39:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
+    41:41:void addElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):55:55 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():42 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
+    42:102:void addElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):0:60 -> a
+    42:102:void addElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):55 -> a
+    42:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():42 -> a
+    42:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
+    103:103:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():44:44 -> a
+    103:103:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.TableElementWrapper -> com.android.tools.r8.w.b.a.x0.a.y0.d:
+    byte[] bytes -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder builder -> c
+    int hashCode -> b
+    1:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):13:16 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder getBuilder():13:13 -> a
+    1:1:boolean equals(java.lang.Object):20:20 -> equals
+    1:1:int hashCode():18:18 -> hashCode
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite -> com.android.tools.r8.w.b.a.x0.b.c:
+    1:1:void <init>():46:46 -> <init>
+    void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream) -> a
+    int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.getSerializedSize() -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.newBuilderForType() -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.toBuilder() -> e
+    1:7:byte[] toByteArray():64:70 -> f
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder -> com.android.tools.r8.w.b.a.x0.b.b:
+    1:1:void <init>():118:118 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder.mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite) -> a
+    1:1:void addAll(java.lang.Iterable,java.util.Collection):334:334 -> a
+    2:4:void checkForNullValues(java.lang.Iterable):348:350 -> a
+    2:4:void addAll(java.lang.Iterable,java.util.Collection):335 -> a
+    5:11:void addAll(java.lang.Iterable,java.util.Collection):336:342 -> a
+    12:12:void addAll(java.lang.Iterable,java.util.Collection):340:340 -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder.build() -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder$LimitedInputStream -> com.android.tools.r8.w.b.a.x0.b.a:
+    int limit -> a
+    1:2:void <init>(java.io.InputStream,int):245:246 -> <init>
+    1:1:int available():251:251 -> available
+    1:6:int read():256:261 -> read
+    7:13:int read(byte[],int,int):269:275 -> read
+    1:3:long skip(long):282:284 -> skip
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractParser -> com.android.tools.r8.w.b.a.x0.b.d:
+    1:1:void <clinit>():78:78 -> <clinit>
+    1:1:void <init>():49:49 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):70:70 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite.newUninitializedMessageException():102:102 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):57 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):71 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException.asInvalidProtocolBufferException():81:81 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):71 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):71:71 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):224:224 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    5:5:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    6:17:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):692:703 -> a
+    6:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
+    6:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    6:17:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):232:232 -> a
+    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    18:18:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    19:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):191:194 -> a
+    19:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):233 -> a
+    19:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    19:22:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245:245 -> a
+    23:23:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):196:196 -> a
+    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):233 -> a
+    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    24:24:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    25:25:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):705:705 -> a
+    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
+    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    25:25:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.malformedVarint():84:84 -> a
+    26:26:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):711 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    26:26:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    27:27:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):711:711 -> a
+    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
+    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    27:27:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):230:230 -> a
+    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
+    28:28:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
+    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):191:194 -> b
+    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):209 -> b
+    1:4:java.lang.Object parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):209:209 -> b
+    5:5:java.lang.Object parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> b
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):196:196 -> b
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):209 -> b
+    6:6:java.lang.Object parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString -> com.android.tools.r8.w.b.a.x0.b.g:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString EMPTY -> a
+    boolean $assertionsDisabled -> b
+    1:22:void <clinit>():60:81 -> <clinit>
+    1:1:void <init>():84:84 -> <init>
+    int partialHash(int,int,int) -> a
+    void writeToInternal(java.io.OutputStream,int,int) -> a
+    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFrom(byte[],int,int):206:208 -> a
+    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFromUtf8(java.lang.String):269:271 -> a
+    7:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concat(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):396:403 -> a
+    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concat(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):399:399 -> a
+    16:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFrom(java.lang.Iterable):420:432 -> a
+    29:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString balancedConcat(java.util.Iterator,int):442:450 -> a
+    38:47:void copyTo(byte[],int,int,int):490:499 -> a
+    48:48:void copyTo(byte[],int,int,int):495:495 -> a
+    49:49:void copyTo(byte[],int,int,int):491:491 -> a
+    50:50:void copyTo(byte[],int,int,int):488:488 -> a
+    51:51:void copyTo(byte[],int,int,int):485:485 -> a
+    52:52:void copyTo(byte[],int,int,int):482:482 -> a
+    void copyToInternal(byte[],int,int,int) -> b
+    int partialIsValidUtf8(int,int,int) -> b
+    java.lang.String toString(java.lang.String) -> b
+    int getTreeDepth() -> e
+    boolean isBalanced() -> f
+    boolean isValidUtf8() -> g
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$Output newOutput():751:751 -> h
+    int peekCachedHashCode() -> i
+    1:1:java.lang.String toString():1019:1019 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator -> com.android.tools.r8.w.b.a.x0.b.e:
+    byte nextByte() -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$Output -> com.android.tools.r8.w.b.a.x0.b.f:
+    int bufferPos -> e
+    byte[] buffer -> d
+    java.util.ArrayList flushedBuffers -> b
+    int flushedBuffersTotalBytes -> c
+    byte[] EMPTY_BYTE_ARRAY -> f
+    int initialCapacity -> a
+    1:1:void <clinit>():765:765 -> <clinit>
+    1:7:void <init>(int):783:789 -> <init>
+    8:8:void <init>(int):785:785 -> <init>
+    1:9:void flushFullBuffer(int):898:906 -> a
+    10:10:void flushLastBuffer():914:914 -> a
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
+    11:12:byte[] copyArray(byte[],int):835:836 -> a
+    11:12:void flushLastBuffer():916 -> a
+    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
+    13:27:void flushLastBuffer():917:931 -> a
+    13:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
+    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():828:828 -> a
+    1:1:java.lang.String toString():888:888 -> toString
+    2:2:int size():872:872 -> toString
+    2:2:java.lang.String toString():888 -> toString
+    3:3:java.lang.String toString():888:888 -> toString
+    1:4:void write(int):794:797 -> write
+    5:19:void write(byte[],int,int):802:816 -> write
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream -> com.android.tools.r8.w.b.a.x0.b.i:
+    int recursionLimit -> l
+    int sizeLimit -> m
+    int currentLimit -> j
+    int recursionDepth -> k
+    int totalBytesRetired -> i
+    int lastTag -> g
+    int bufferSizeAfterLimit -> d
+    int bufferPos -> e
+    int bufferSize -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream$RefillCallback refillCallback -> n
+    byte[] buffer -> a
+    java.io.InputStream input -> f
+    boolean enableAliasing -> h
+    boolean bufferIsImmutable -> b
+    1:1:void <init>(java.io.InputStream):898:898 -> <init>
+    2:194:void <init>(java.io.InputStream):864:1056 -> <init>
+    195:200:void <init>(java.io.InputStream):899:904 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream newInstance(java.io.InputStream):58:58 -> a
+    2:2:void checkLastTagWas(int):173:173 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidEndTag():94:94 -> a
+    3:3:void checkLastTagWas(int):174 -> a
+    4:4:void checkLastTagWas(int):174:174 -> a
+    5:6:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):256:257 -> a
+    7:7:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed32NoTag(int):410:410 -> a
+    7:7:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):258 -> a
+    8:8:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):244:244 -> a
+    9:10:void skipMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):286:287 -> a
+    9:10:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):245 -> a
+    11:14:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):246:249 -> a
+    15:17:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):238:240 -> a
+    18:19:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):232:233 -> a
+    20:20:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed64NoTag(long):405:405 -> a
+    20:20:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):234 -> a
+    21:21:long readInt64():343:343 -> a
+    21:21:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):226 -> a
+    22:22:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):227:227 -> a
+    23:23:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt64NoTag(long):385:385 -> a
+    23:23:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):228 -> a
+    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidWireType():99:99 -> a
+    24:24:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):262 -> a
+    25:25:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):262:262 -> a
+    26:33:void readGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):420:427 -> a
+    34:34:void readGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):421:421 -> a
+    35:43:void readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):471:479 -> a
+    44:45:void popLimit(int):1018:1019 -> a
+    44:45:void readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):480 -> a
+    46:46:void readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):473:473 -> a
+    47:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):489:497 -> a
+    56:57:void popLimit(int):1018:1019 -> a
+    56:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):498 -> a
+    58:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):491:491 -> a
+    59:63:int getBytesUntilLimit():1027:1031 -> a
+    1:1:boolean readBool():363:363 -> b
+    2:3:void popLimit(int):1018:1019 -> b
+    1:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString readBytes():504:517 -> c
+    15:22:int pushLimit(int):988:995 -> c
+    23:23:int pushLimit(int):991:991 -> c
+    24:24:int pushLimit(int):986:986 -> c
+    1:1:double readDouble():328:328 -> d
+    2:23:byte[] readRawBytesSlowPath(int):1177:1198 -> d
+    24:25:void refillBuffer(int):1081:1082 -> d
+    24:25:void ensureAvailable(int):1068 -> d
+    24:25:byte[] readRawBytesSlowPath(int):1203 -> d
+    26:62:byte[] readRawBytesSlowPath(int):1204:1240 -> d
+    63:82:byte[] readRawBytesSlowPath(int):1238:1257 -> d
+    83:85:byte[] readRawBytesSlowPath(int):1185:1187 -> d
+    1:1:int readEnum():570:570 -> e
+    2:3:void refillBuffer(int):1081:1082 -> e
+    1:1:float readFloat():333:333 -> f
+    2:4:void skipRawBytes(int):1272:1274 -> f
+    5:25:void skipRawBytesSlowPath(int):1289:1309 -> f
+    5:25:void skipRawBytes(int):1276 -> f
+    26:28:void skipRawBytesSlowPath(int):1291:1293 -> f
+    26:28:void skipRawBytes(int):1276 -> f
+    29:29:void skipRawBytesSlowPath(int):1286:1286 -> f
+    29:29:void skipRawBytes(int):1276 -> f
+    1:1:int readInt32():348:348 -> g
+    2:41:boolean tryRefillBuffer(int):1095:1134 -> g
+    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.sizeLimitExceeded():110:110 -> g
+    42:42:boolean tryRefillBuffer(int):1131 -> g
+    43:43:boolean tryRefillBuffer(int):1131:1131 -> g
+    44:44:boolean tryRefillBuffer(int):1123:1123 -> g
+    45:45:boolean tryRefillBuffer(int):1096:1096 -> g
+    1:11:int readRawLittleEndian32():789:799 -> h
+    1:11:long readRawLittleEndian64():807:817 -> i
+    1:36:int readRawVarint32():602:637 -> j
+    37:37:int readRawVarint32():634:634 -> j
+    1:43:long readRawVarint64():728:770 -> k
+    44:44:long readRawVarint64():767:767 -> k
+    1:4:byte readRawByte():1148:1151 -> l
+    1:4:long readRawVarint64SlowPath():778 -> l
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.malformedVarint():84:84 -> l
+    5:5:long readRawVarint64SlowPath():784 -> l
+    6:6:long readRawVarint64SlowPath():784:784 -> l
+    1:1:long readSInt64():590:590 -> m
+    1:12:java.lang.String readString():372:383 -> n
+    1:13:java.lang.String readStringRequireUtf8():393:405 -> o
+    14:14:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8.isValidUtf8(byte[],int,int):122:122 -> o
+    14:14:java.lang.String readStringRequireUtf8():409 -> o
+    15:15:java.lang.String readStringRequireUtf8():412:412 -> o
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidUtf8():120:120 -> o
+    16:16:java.lang.String readStringRequireUtf8():410 -> o
+    17:17:java.lang.String readStringRequireUtf8():410:410 -> o
+    1:1:boolean isAtEnd():1041:1041 -> p
+    1:1:int readTag():149 -> p
+    2:6:int readTag():150:154 -> p
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidTag():89:89 -> p
+    7:7:int readTag():158 -> p
+    8:8:int readTag():158:158 -> p
+    1:8:void recomputeBufferSizeAfterLimit():1001:1008 -> q
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream$RefillCallback -> com.android.tools.r8.w.b.a.x0.b.h:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream -> com.android.tools.r8.w.b.a.x0.b.k:
+    byte[] buffer -> a
+    java.io.OutputStream output -> e
+    int totalBytesWritten -> d
+    int limit -> b
+    int position -> c
+    1:1:void <init>(byte[],int,int):78:78 -> <init>
+    2:28:void <init>(byte[],int,int):56:82 -> <init>
+    29:29:void <init>(java.io.OutputStream,byte[]):85:85 -> <init>
+    30:63:void <init>(java.io.OutputStream,byte[]):56:89 -> <init>
+    int computeRawVarint64Size(long) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(java.io.OutputStream,int):106:106 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(byte[]):117:117 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(byte[],int,int):130:130 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(byte[]):117 -> a
+    4:5:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):455:456 -> a
+    6:6:int computeMessageSize(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):628:628 -> a
+    7:8:int computeMessageSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):865:866 -> a
+    7:8:int computeMessageSize(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):628 -> a
+    9:9:int computeEnumSize(int,int):681:681 -> a
+    10:10:int computeEnumSizeNoTag(int):916:916 -> a
+    10:10:int computeEnumSize(int,int):681 -> a
+    11:11:int computeInt32SizeNoTag(int):794:794 -> a
+    12:13:int computeMessageSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):865:866 -> a
+    14:15:int spaceLeft():984:985 -> a
+    14:15:void checkNoSpaceLeft():1001 -> a
+    16:16:void checkNoSpaceLeft():1002:1002 -> a
+    17:17:int spaceLeft():987:987 -> a
+    17:17:void checkNoSpaceLeft():1001 -> a
+    18:18:void writeTag(int,int):1180:1180 -> a
+    18:18:void writeBool(int,boolean):219 -> a
+    19:19:void writeBoolNoTag(boolean):415:415 -> a
+    19:19:void writeBool(int,boolean):220 -> a
+    20:20:void writeTag(int,int):1180:1180 -> a
+    20:20:void writeBytes(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):263 -> a
+    21:21:void writeBytes(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):264:264 -> a
+    22:22:void writeTag(int,int):1180:1180 -> a
+    22:22:void writeDouble(int,double):170 -> a
+    23:23:void writeDoubleNoTag(double):375:375 -> a
+    23:23:void writeDouble(int,double):171 -> a
+    24:24:void writeTag(int,int):1180:1180 -> a
+    24:24:void writeFloat(int,float):177 -> a
+    25:25:void writeFloatNoTag(float):380:380 -> a
+    25:25:void writeFloat(int,float):178 -> a
+    26:26:void writeTag(int,int):1180:1180 -> a
+    26:26:void writeSInt64(int,long):341 -> a
+    27:27:void writeSInt64NoTag(long):517:517 -> a
+    27:27:void writeSInt64(int,long):342 -> a
+    int computeRawVarint32Size(int) -> b
+    1:2:void writeMessageNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):448:449 -> b
+    3:3:int computeInt32Size(int,int):560:560 -> b
+    4:5:void flush():974:975 -> b
+    6:6:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047:1047 -> b
+    7:31:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1147:1171 -> b
+    7:31:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
+    32:37:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):564:569 -> b
+    32:37:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> b
+    32:37:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
+    38:38:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1173:1173 -> b
+    38:38:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
+    39:39:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):565:565 -> b
+    39:39:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> b
+    39:39:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
+    40:40:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):562:562 -> b
+    40:40:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> b
+    40:40:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
+    41:41:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):559:559 -> b
+    41:41:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> b
+    41:41:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
+    42:42:void writeRawBytes(byte[]):1052:1052 -> b
+    43:70:void writeRawBytes(byte[],int,int):1113:1140 -> b
+    43:70:void writeRawBytes(byte[]):1052 -> b
+    71:71:void writeTag(int,int):1180:1180 -> b
+    71:71:void writeMessage(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):255 -> b
+    72:73:void writeMessageNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):448:449 -> b
+    72:73:void writeMessage(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):256 -> b
+    74:81:void writeRawLittleEndian64(long):1256:1263 -> b
+    1:9:void refreshBuffer():958:966 -> c
+    10:10:void refreshBuffer():960:960 -> c
+    11:11:void writeTag(int,int):1180:1180 -> c
+    11:11:void writeEnum(int,int):313 -> c
+    12:15:void writeInt32NoTag(int):396:399 -> c
+    12:15:void writeEnumNoTag(int):497 -> c
+    12:15:void writeEnum(int,int):314 -> c
+    16:16:int computeTagSize(int):1185:1185 -> c
+    17:20:void writeRawVarint64(long):1221:1224 -> c
+    1:4:void writeInt32NoTag(int):396:399 -> d
+    1:4:void writeEnumNoTag(int):497 -> d
+    5:5:void writeTag(int,int):1180:1180 -> d
+    5:5:void writeInt32(int,int):198 -> d
+    6:9:void writeInt32NoTag(int):396:399 -> d
+    6:9:void writeInt32(int,int):199 -> d
+    1:4:void writeInt32NoTag(int):396:399 -> e
+    1:6:void writeRawByte(byte):1032:1037 -> f
+    1:6:void writeRawByte(int):1042 -> f
+    1:4:void writeRawLittleEndian32(int):1246:1249 -> g
+    1:4:void writeRawVarint32(int):1195:1198 -> h
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream$OutOfSpaceException -> com.android.tools.r8.w.b.a.x0.b.j:
+    1:1:void <init>():1016:1016 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite -> com.android.tools.r8.w.b.a.x0.b.m:
+    java.util.Map extensionsByNumber -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite EMPTY -> b
+    1:1:void <clinit>():159:159 -> <clinit>
+    1:2:void <init>():137:138 -> <init>
+    3:4:void <init>(boolean):156:157 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite getEmptyRegistry():97:97 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension findLiteExtensionByNumber(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,int):117:117 -> a
+    3:3:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125:125 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> a
+    4:4:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
+    5:5:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830:830 -> a
+    5:5:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
+    6:6:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
+    6:6:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830 -> a
+    6:6:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
+    7:7:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125:125 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite newInstance():92:92 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite$ObjectIntPair -> com.android.tools.r8.w.b.a.x0.b.l:
+    java.lang.Object object -> a
+    int number -> b
+    1:3:void <init>(java.lang.Object,int):167:169 -> <init>
+    1:5:boolean equals(java.lang.Object):178:182 -> equals
+    1:1:int hashCode():174:174 -> hashCode
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet -> com.android.tools.r8.w.b.a.x0.b.o:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet DEFAULT_INSTANCE -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap fields -> a
+    boolean isImmutable -> b
+    boolean hasLazyField -> c
+    1:1:void <clinit>():102:102 -> <clinit>
+    1:1:void <init>():76:76 -> <init>
+    2:6:void <init>():73:77 -> <init>
+    7:7:void <init>(boolean):84:84 -> <init>
+    8:21:void <init>(boolean):73:86 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet newFieldSet():92:92 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet clone():134 -> a
+    2:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet clone():135:145 -> a
+    13:13:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> a
+    14:14:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):340:340 -> a
+    15:15:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
+    15:15:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):340 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
+    16:16:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345 -> a
+    17:17:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345:345 -> a
+    18:18:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> a
+    18:18:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):347 -> a
+    19:25:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):350:356 -> a
+    26:26:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):341:341 -> a
+    27:28:boolean isInitialized(java.util.Map$Entry):435:436 -> a
+    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
+    29:29:boolean isInitialized(java.util.Map$Entry):436 -> a
+    30:31:boolean isInitialized(java.util.Map$Entry):436:437 -> a
+    32:32:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
+    32:32:boolean isInitialized(java.util.Map$Entry):437 -> a
+    33:47:boolean isInitialized(java.util.Map$Entry):439:453 -> a
+    48:48:int getWireFormatForFieldType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):472:472 -> a
+    49:54:void mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet):481:486 -> a
+    55:58:java.lang.Object cloneIfMutable(java.lang.Object):491:494 -> a
+    59:93:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):556:590 -> a
+    94:94:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSInt64():590:590 -> a
+    94:94:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):575 -> a
+    95:95:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):575:575 -> a
+    96:96:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSInt32():585:585 -> a
+    96:96:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):574 -> a
+    97:97:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):574:574 -> a
+    98:98:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSFixed64():580:580 -> a
+    98:98:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):573 -> a
+    99:99:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):573:573 -> a
+    100:100:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSFixed32():575:575 -> a
+    100:100:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):572 -> a
+    101:115:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):572:586 -> a
+    116:116:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readUInt32():562:562 -> a
+    116:116:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):571 -> a
+    117:117:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):571:571 -> a
+    118:129:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):570:581 -> a
+    130:130:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):578:578 -> a
+    131:133:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):566:568 -> a
+    134:134:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):564:564 -> a
+    135:135:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFixed32():358:358 -> a
+    135:135:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):563 -> a
+    136:136:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):563:563 -> a
+    137:137:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFixed64():353:353 -> a
+    137:137:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):562 -> a
+    138:138:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):562:562 -> a
+    139:139:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> a
+    139:139:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):561 -> a
+    140:140:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):561:561 -> a
+    141:141:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readUInt64():338:338 -> a
+    141:141:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):560 -> a
+    142:142:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):560:560 -> a
+    143:143:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt64():343:343 -> a
+    143:143:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):559 -> a
+    144:144:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):559:559 -> a
+    145:145:float com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFloat():333:333 -> a
+    145:145:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):558 -> a
+    146:146:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):558:558 -> a
+    147:147:double com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readDouble():328:328 -> a
+    147:147:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):557 -> a
+    148:148:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):557:557 -> a
+    149:150:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):657:658 -> a
+    151:151:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
+    151:151:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):233 -> a
+    151:151:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):658 -> a
+    152:152:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroupNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):430:430 -> a
+    152:152:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):234 -> a
+    152:152:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):658 -> a
+    153:153:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
+    153:153:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):235 -> a
+    153:153:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):658 -> a
+    154:154:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):660:660 -> a
+    155:155:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
+    155:155:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):660 -> a
+    156:156:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):661:661 -> a
+    157:180:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):679:702 -> a
+    181:181:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeSInt64NoTag(long):517:517 -> a
+    181:181:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):702 -> a
+    182:182:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):701:701 -> a
+    183:183:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeSInt32NoTag(int):512:512 -> a
+    183:183:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):701 -> a
+    184:184:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):700:700 -> a
+    185:185:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeSFixed64NoTag(long):507:507 -> a
+    185:185:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):700 -> a
+    186:186:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):699:699 -> a
+    187:187:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeSFixed32NoTag(int):502:502 -> a
+    187:187:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):699 -> a
+    188:191:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):705:708 -> a
+    192:192:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):698:698 -> a
+    193:193:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32NoTag(int):489:489 -> a
+    193:193:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):698 -> a
+    194:197:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):692:695 -> a
+    198:199:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeByteArrayNoTag(byte[]):461:462 -> a
+    198:199:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):695 -> a
+    200:200:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):690:690 -> a
+    201:201:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):689:689 -> a
+    202:202:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroupNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):430:430 -> a
+    202:202:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):689 -> a
+    203:203:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):688:688 -> a
+    204:206:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeStringNoTag(java.lang.String):423:425 -> a
+    204:206:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):688 -> a
+    207:207:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):687:687 -> a
+    208:208:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeBoolNoTag(boolean):415:415 -> a
+    208:208:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):687 -> a
+    209:209:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):686:686 -> a
+    210:210:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed32NoTag(int):410:410 -> a
+    210:210:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):686 -> a
+    211:211:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):685:685 -> a
+    212:212:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed64NoTag(long):405:405 -> a
+    212:212:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):685 -> a
+    213:213:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):684:684 -> a
+    214:214:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):683:683 -> a
+    215:215:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt64NoTag(long):385:385 -> a
+    215:215:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):683 -> a
+    216:216:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):682:682 -> a
+    217:217:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeInt64NoTag(long):390:390 -> a
+    217:217:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):682 -> a
+    218:218:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):681:681 -> a
+    219:219:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFloatNoTag(float):380:380 -> a
+    219:219:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):681 -> a
+    220:220:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):680:680 -> a
+    221:221:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeDoubleNoTag(double):375:375 -> a
+    221:221:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):680 -> a
+    222:222:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):719:719 -> a
+    223:223:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
+    223:223:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):719 -> a
+    224:224:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
+    224:224:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):720 -> a
+    225:225:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
+    225:225:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):721 -> a
+    226:226:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):722:722 -> a
+    227:227:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isPacked():710:710 -> a
+    227:227:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):723 -> a
+    228:228:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
+    228:228:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):724 -> a
+    229:246:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):727:744 -> a
+    247:288:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):835:876 -> a
+    289:289:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):858:858 -> a
+    290:290:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt64SizeNoTag(long):948:948 -> a
+    290:290:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):858 -> a
+    291:291:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):857:857 -> a
+    292:292:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt32SizeNoTag(int):940:940 -> a
+    292:292:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):857 -> a
+    293:293:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):856:856 -> a
+    294:308:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):855:869 -> a
+    309:309:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeEnumSizeNoTag(int):916:916 -> a
+    309:309:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):869 -> a
+    310:310:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):872:872 -> a
+    311:311:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeEnumSizeNoTag(int):916:916 -> a
+    311:311:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):872 -> a
+    312:312:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):854:854 -> a
+    313:313:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeUInt32SizeNoTag(int):908:908 -> a
+    313:313:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):854 -> a
+    314:315:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):849:850 -> a
+    316:316:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBytesSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):883:883 -> a
+    316:316:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):850 -> a
+    317:317:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):852:852 -> a
+    318:318:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeByteArraySizeNoTag(byte[]):892:892 -> a
+    318:318:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):852 -> a
+    319:319:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):864:864 -> a
+    320:320:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):847:847 -> a
+    321:321:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeGroupSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):844:844 -> a
+    321:321:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):847 -> a
+    322:322:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):846:846 -> a
+    323:327:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeStringSizeNoTag(java.lang.String):831:835 -> a
+    323:327:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):846 -> a
+    328:328:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):845:845 -> a
+    329:329:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):844:844 -> a
+    330:330:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):843:843 -> a
+    331:331:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):842:842 -> a
+    332:332:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):841:841 -> a
+    333:333:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeUInt64SizeNoTag(long):777:777 -> a
+    333:333:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):841 -> a
+    334:334:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):840:840 -> a
+    335:335:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeInt64SizeNoTag(long):785:785 -> a
+    335:335:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):840 -> a
+    336:336:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):839:839 -> a
+    337:337:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):838:838 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet emptySet():99:99 -> b
+    2:2:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):209:209 -> b
+    3:3:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
+    3:3:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):209 -> b
+    4:4:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):214:214 -> b
+    5:5:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):210:210 -> b
+    6:23:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):373:390 -> b
+    24:24:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):385:385 -> b
+    25:25:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):381:381 -> b
+    26:26:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):379:379 -> b
+    27:27:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):378:378 -> b
+    28:28:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):377:377 -> b
+    29:29:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):376:376 -> b
+    30:30:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):375:375 -> b
+    31:60:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):374:403 -> b
+    61:61:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):369:369 -> b
+    62:68:void mergeFromField(java.util.Map$Entry):504:510 -> b
+    69:69:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
+    69:69:void mergeFromField(java.util.Map$Entry):510 -> b
+    70:70:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> b
+    70:70:void mergeFromField(java.util.Map$Entry):511 -> b
+    71:77:void mergeFromField(java.util.Map$Entry):513:519 -> b
+    78:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> b
+    78:78:void mergeFromField(java.util.Map$Entry):519 -> b
+    79:79:void mergeFromField(java.util.Map$Entry):519:519 -> b
+    80:80:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> b
+    80:80:void mergeFromField(java.util.Map$Entry):520 -> b
+    81:84:void mergeFromField(java.util.Map$Entry):522:525 -> b
+    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.internalMergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):720:720 -> b
+    85:85:void mergeFromField(java.util.Map$Entry):525 -> b
+    86:93:void mergeFromField(java.util.Map$Entry):525:532 -> b
+    94:94:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):885:885 -> b
+    95:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> b
+    95:95:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):885 -> b
+    96:96:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> b
+    96:96:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):886 -> b
+    97:97:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
+    97:97:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):887 -> b
+    98:98:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isPacked():710:710 -> b
+    98:98:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):888 -> b
+    99:107:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):890:898 -> b
+    108:114:int computeElementSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):814:820 -> b
+    108:114:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):899 -> b
+    115:121:int computeElementSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):814:820 -> b
+    115:121:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):904 -> b
+    1:1:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):238:238 -> c
+    2:2:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> c
+    2:2:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):238 -> c
+    3:13:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):239:249 -> c
+    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> c
+    14:14:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):249 -> c
+    15:15:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):249:249 -> c
+    16:29:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):240:253 -> c
+    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> c
+    30:30:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):253 -> c
+    31:37:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):253:259 -> c
+    38:45:int getSerializedSize():755:762 -> c
+    1:1:java.lang.Object clone():50:50 -> clone
+    1:8:boolean isInitialized():418:425 -> d
+    1:5:java.util.Iterator iterator():197:201 -> e
+    1:5:void makeImmutable():107:111 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet newFieldSet():92:92 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite -> com.android.tools.r8.w.b.a.x0.b.n:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite -> com.android.tools.r8.w.b.a.x0.b.v:
+    1:1:void <init>():53:53 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):56:56 -> <init>
+    1:1:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> a
+    2:10:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):517:525 -> a
+    2:10:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
+    11:11:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):525 -> a
+    11:11:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    12:16:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):525:529 -> a
+    12:16:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
+    17:17:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):529 -> a
+    17:17:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    18:35:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):529:546 -> a
+    18:35:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
+    36:36:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):546 -> a
+    36:36:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    37:38:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):546:547 -> a
+    37:38:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    39:39:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> a
+    39:39:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):548 -> a
+    39:39:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    40:40:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):549:549 -> a
+    40:40:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getEnumType():714:714 -> a
+    41:41:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):549 -> a
+    41:41:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    42:54:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):549:561 -> a
+    42:54:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    55:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
+    55:55:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):561 -> a
+    55:55:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    56:66:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):561:571 -> a
+    56:66:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    67:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
+    67:67:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):571 -> a
+    67:67:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    68:105:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):571:608 -> a
+    68:105:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    106:106:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
+    106:106:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):608 -> a
+    106:106:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    107:107:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):608:608 -> a
+    107:107:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    108:108:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):574:574 -> a
+    108:108:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    109:109:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
+    109:109:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):574 -> a
+    109:109:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    110:113:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):575:578 -> a
+    110:113:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    114:114:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getMessageDefaultInstance():839:839 -> a
+    114:114:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):582 -> a
+    114:114:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    115:118:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):582:585 -> a
+    115:118:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    119:119:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
+    119:119:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):585 -> a
+    119:119:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    120:120:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):585:585 -> a
+    120:120:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    121:121:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
+    121:121:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830 -> a
+    121:121:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):587 -> a
+    121:121:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    122:127:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):587:592 -> a
+    122:127:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    128:128:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> a
+    128:128:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):596 -> a
+    128:128:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    129:129:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):597:597 -> a
+    129:129:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    130:130:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getEnumType():714:714 -> a
+    130:130:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):597 -> a
+    130:130:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    131:136:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):597:602 -> a
+    131:136:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    137:137:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32NoTag(int):489:489 -> a
+    137:137:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):603 -> a
+    137:137:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    138:138:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):614:614 -> a
+    138:138:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    139:139:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
+    139:139:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):614 -> a
+    139:139:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    140:143:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):615:618 -> a
+    140:143:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
+    144:144:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension newSingularGeneratedExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Class):639:639 -> a
+    145:146:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension newRepeatedGeneratedExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean,java.lang.Class):661:662 -> a
+    147:149:java.lang.reflect.Method getMethodOrDie(java.lang.Class,java.lang.String,java.lang.Class[]):735:737 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$1 -> com.android.tools.r8.w.b.a.x0.b.p:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder -> com.android.tools.r8.w.b.a.x0.b.q:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
+    1:45:void <init>():87:131 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder setUnknownFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):127:127 -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType() -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString getUnknownFields():123:123 -> e
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder -> com.android.tools.r8.w.b.a.x0.b.r:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet extensions -> b
+    boolean extensionsIsMutable -> c
+    1:3:void <init>():332:334 -> <init>
+    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet buildExtensions():361:363 -> a
+    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet access$000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):327 -> a
+    4:5:void mergeExtensionFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):495:496 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> a
+    6:6:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):368 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder addExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):453 -> a
+    7:7:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):368:368 -> a
+    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder addExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):453 -> a
+    8:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder addExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):454:455 -> a
+    10:10:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):371:371 -> a
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder addExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):453 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> b
+    1:1:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):368 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):431 -> b
+    2:2:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):368:368 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):431 -> b
+    3:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):432:433 -> b
+    5:5:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
+    5:5:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.toFieldSetType(java.lang.Object):869 -> b
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):433 -> b
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> b
+    6:6:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.toFieldSetType(java.lang.Object):870 -> b
+    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):433 -> b
+    7:17:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.toFieldSetType(java.lang.Object):870:880 -> b
+    7:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):433 -> b
+    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):433:433 -> b
+    19:19:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):371:371 -> b
+    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):431 -> b
+    1:3:void ensureExtensionsIsMutable():350:352 -> f
+    1:1:boolean extensionsAreInitialized():471:471 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage -> com.android.tools.r8.w.b.a.x0.b.s:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet extensions -> a
+    1:2:void <init>():171:172 -> <init>
+    3:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):175:176 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet access$200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):164:164 -> a
+    2:2:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246:246 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> a
+    3:3:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181 -> a
+    3:3:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):211 -> a
+    4:4:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181:181 -> a
+    4:4:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):211 -> a
+    5:7:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):212:214 -> a
+    8:8:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):844:844 -> a
+    8:8:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
+    9:9:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
+    9:9:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):844 -> a
+    9:9:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
+    10:10:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):845 -> a
+    10:10:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
+    11:21:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):845:855 -> a
+    11:21:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
+    22:22:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):184:184 -> a
+    22:22:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):211 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> b
+    1:1:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181 -> b
+    1:1:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):194 -> b
+    2:2:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181:181 -> b
+    2:2:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):194 -> b
+    3:3:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):195:195 -> b
+    4:4:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):184:184 -> b
+    4:4:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):194 -> b
+    1:1:boolean extensionsAreInitialized():233:233 -> g
+    1:1:int extensionsSerializedSize():316:316 -> h
+    1:1:void makeExtensionsImmutable():261:261 -> i
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage$ExtensionWriter newExtensionWriter():308:308 -> j
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage$ExtensionWriter -> com.android.tools.r8.w.b.a.x0.b.s$a:
+    java.util.Map$Entry next -> b
+    java.util.Iterator iter -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage this$0 -> d
+    boolean messageSetWireFormat -> c
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,boolean,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$1):270:270 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,boolean):279:279 -> <init>
+    3:12:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,boolean):274:283 -> <init>
+    1:1:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):288:288 -> a
+    2:2:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
+    2:2:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):288 -> a
+    3:4:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):289:290 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
+    5:5:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):290 -> a
+    6:6:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):290:290 -> a
+    7:7:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
+    7:7:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):290 -> a
+    8:8:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
+    8:8:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
+    9:9:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293:293 -> a
+    10:10:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
+    10:10:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):352 -> a
+    10:10:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
+    11:11:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
+    11:11:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32(int,int):303 -> a
+    11:11:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):353 -> a
+    11:11:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
+    12:12:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32NoTag(int):489:489 -> a
+    12:12:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32(int,int):304 -> a
+    12:12:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):353 -> a
+    12:12:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
+    13:13:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):354:354 -> a
+    13:13:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
+    14:14:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
+    14:14:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):355 -> a
+    14:14:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
+    15:20:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):296:301 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor -> com.android.tools.r8.w.b.a.x0.b.t:
+    boolean isPacked -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap enumTypeMap -> a
+    int number -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType type -> c
+    boolean isRepeated -> d
+    1:6:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean,boolean):679:684 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType getLiteType():698:698 -> a
+    1:1:int compareTo(java.lang.Object):671:671 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor):725:725 -> compareTo
+    2:2:int compareTo(java.lang.Object):671 -> compareTo
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension -> com.android.tools.r8.w.b.a.x0.b.u:
+    java.lang.Object defaultValue -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor descriptor -> d
+    java.lang.reflect.Method enumValueOf -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite messageDefaultInstance -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite containingTypeDefaultInstance -> a
+    1:25:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):786:810 -> <init>
+    26:26:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):790:790 -> <init>
+    1:1:java.lang.Object singularFromFieldSetType(java.lang.Object):860:860 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
+    2:2:java.lang.Object singularFromFieldSetType(java.lang.Object):860 -> a
+    3:4:java.lang.Object singularFromFieldSetType(java.lang.Object):860:861 -> a
+    5:17:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):746:758 -> a
+    5:17:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
+    18:18:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):754:754 -> a
+    18:18:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
+    19:19:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):748:748 -> a
+    19:19:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
+    1:1:java.lang.Object singularToFieldSetType(java.lang.Object):885:885 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> b
+    2:2:java.lang.Object singularToFieldSetType(java.lang.Object):885 -> b
+    3:4:java.lang.Object singularToFieldSetType(java.lang.Object):885:886 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal -> com.android.tools.r8.w.b.a.x0.b.y:
+    byte[] EMPTY_BYTE_ARRAY -> a
+    1:6:void <clinit>():383:388 -> <clinit>
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite -> com.android.tools.r8.w.b.a.x0.b.w:
+    int getNumber() -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap -> com.android.tools.r8.w.b.a.x0.b.x:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite findValueByNumber(int) -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException -> com.android.tools.r8.w.b.a.x0.b.z:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite unfinishedMessage -> a
+    1:1:void <init>(java.lang.String):46:46 -> <init>
+    2:2:void <init>(java.lang.String):43:43 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException setUnfinishedMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):57:57 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getUnfinishedMessage():66:66 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException negativeSize():78:78 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException recursionLimitExceeded():104:104 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException truncatedMessage():70:70 -> d
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LazyField$LazyIterator -> com.android.tools.r8.w.b.a.x0.b.A:
+    java.util.Iterator iterator -> a
+    1:2:void <init>(java.util.Iterator):130:131 -> <init>
+    1:1:boolean hasNext():136:136 -> hasNext
+    1:2:java.util.Map$Entry next():142:143 -> next
+    1:2:java.lang.Object next():127 -> next
+    1:1:void remove():151:151 -> remove
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString -> com.android.tools.r8.w.b.a.x0.b.D:
+    int hash -> d
+    byte[] bytes -> c
+    1:180:void <init>(byte[]):62:241 -> <init>
+    181:181:void <init>(byte[]):63:63 -> <init>
+    1:1:void writeToInternal(java.io.OutputStream,int,int):148:148 -> a
+    2:18:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):213:229 -> a
+    19:19:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):218:218 -> a
+    20:20:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):214:214 -> a
+    21:21:int partialHash(int,int,int):271:271 -> a
+    22:22:int hashCode(int,byte[],int,int):276:276 -> a
+    22:22:int partialHash(int,int,int):271 -> a
+    1:1:void copyToInternal(byte[],int,int,int):117:117 -> b
+    2:2:java.lang.String toString(java.lang.String):155:155 -> b
+    3:4:int partialIsValidUtf8(int,int,int):169:170 -> b
+    int getTreeDepth() -> e
+    1:17:boolean equals(java.lang.Object):181:197 -> equals
+    boolean isBalanced() -> f
+    1:2:boolean isValidUtf8():163:164 -> g
+    3:3:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8.isValidUtf8(byte[],int,int):122:122 -> g
+    3:3:boolean isValidUtf8():164 -> g
+    1:9:int hashCode():251:259 -> hashCode
+    1:1:int peekCachedHashCode():266:266 -> i
+    1:1:java.util.Iterator iterator():52:52 -> iterator
+    int getOffsetIntoBytes() -> j
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():307:307 -> k
+    1:1:int size():76:76 -> size
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$1 -> com.android.tools.r8.w.b.a.x0.b.B:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$LiteralByteIterator -> com.android.tools.r8.w.b.a.x0.b.C:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString this$0 -> c
+    int limit -> b
+    int position -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$1):310:310 -> <init>
+    2:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString):314:316 -> <init>
+    1:3:byte nextByte():330:332 -> c
+    1:1:boolean hasNext():320:320 -> hasNext
+    1:1:java.lang.Byte next():325:325 -> next
+    1:1:java.lang.Object next():310 -> next
+    1:1:void remove():337:337 -> remove
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLiteOrBuilder -> com.android.tools.r8.w.b.a.x0.b.E:
+    boolean isInitialized() -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType() -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser -> com.android.tools.r8.w.b.a.x0.b.F:
+    java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite) -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString -> com.android.tools.r8.w.b.a.x0.b.K:
+    int[] minLengthByDepth -> i
+    int hash -> h
+    int leftLength -> f
+    int treeDepth -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString left -> d
+    int totalLength -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString right -> e
+    1:22:void <clinit>():89:110 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):70:70 -> <init>
+    2:416:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):129:543 -> <init>
+    417:421:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):130:134 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):70:70 -> a
+    2:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):153:179 -> a
+    29:29:int getTreeDepth():277:277 -> a
+    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):179 -> a
+    30:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):179:197 -> a
+    49:56:void writeToInternal(java.io.OutputStream,int,int):407:414 -> a
+    57:64:int partialHash(int,int,int):568:575 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):70:70 -> b
+    2:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString concatenateBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):214:219 -> b
+    8:16:void copyToInternal(byte[],int,int,int):360:368 -> b
+    17:17:java.lang.String toString(java.lang.String):421:421 -> b
+    18:18:int size():269:269 -> b
+    18:18:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toByteArray():528 -> b
+    18:18:java.lang.String toString(java.lang.String):421 -> b
+    19:22:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toByteArray():530:533 -> b
+    19:22:java.lang.String toString(java.lang.String):421 -> b
+    23:23:java.lang.String toString(java.lang.String):421:421 -> b
+    24:31:int partialIsValidUtf8(int,int,int):437:444 -> b
+    1:1:int getTreeDepth():277:277 -> e
+    1:20:boolean equals(java.lang.Object):456:475 -> equals
+    21:58:boolean equalsFragments(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):494:531 -> equals
+    21:58:boolean equals(java.lang.Object):480 -> equals
+    1:1:boolean isBalanced():290:290 -> f
+    1:2:boolean isValidUtf8():429:430 -> g
+    1:9:int hashCode():547:555 -> hashCode
+    1:1:int peekCachedHashCode():562:562 -> i
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():779:779 -> iterator
+    1:1:java.util.Iterator iterator():70 -> iterator
+    1:1:int[] access$600():70:70 -> j
+    1:1:int size():269:269 -> size
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1 -> com.android.tools.r8.w.b.a.x0.b.G:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$Balancer -> com.android.tools.r8.w.b.a.x0.b.H:
+    java.util.Stack prefixesStack -> a
+    1:5:void <init>():602:606 -> <init>
+    6:6:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):602:602 -> <init>
+    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString balance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):609:616 -> a
+    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$Balancer,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):602 -> a
+    9:9:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):628:628 -> a
+    10:10:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):656:656 -> a
+    10:10:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
+    11:11:int getDepthBinForLength(int):695:695 -> a
+    11:11:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):656 -> a
+    11:11:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
+    12:36:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):657:681 -> a
+    12:36:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
+    37:37:int getDepthBinForLength(int):695:695 -> a
+    37:37:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):681 -> a
+    37:37:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
+    38:46:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):682:690 -> a
+    38:46:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
+    47:47:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):664:664 -> a
+    47:47:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
+    48:53:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):630:635 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$PieceIterator -> com.android.tools.r8.w.b.a.x0.b.I:
+    java.util.Stack breadCrumbs -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next -> b
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):716:716 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):722:722 -> <init>
+    3:8:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):718:723 -> <init>
+    1:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getLeafByLeft(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):728:733 -> a
+    1:1:boolean hasNext():752:752 -> hasNext
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():761:761 -> k
+    2:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():740:743 -> k
+    2:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> k
+    6:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getLeafByLeft(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):728:733 -> k
+    6:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():743 -> k
+    6:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> k
+    12:12:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.isEmpty():135:135 -> k
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():744 -> k
+    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> k
+    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765:765 -> k
+    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():762:762 -> k
+    1:1:java.lang.Object next():716:716 -> next
+    1:1:void remove():770:770 -> remove
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$RopeByteIterator -> com.android.tools.r8.w.b.a.x0.b.J:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator bytes -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$PieceIterator pieces -> a
+    int bytesRemaining -> c
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):782:782 -> <init>
+    2:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):788:791 -> <init>
+    1:5:byte nextByte():803:807 -> c
+    1:1:boolean hasNext():795:795 -> hasNext
+    1:1:java.lang.Byte next():799:799 -> next
+    1:1:java.lang.Object next():782 -> next
+    1:1:void remove():811:811 -> remove
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap -> com.android.tools.r8.w.b.a.x0.b.P:
+    java.util.List entryList -> b
+    java.util.Map overflowEntries -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntrySet lazyEntrySet -> e
+    int maxArraySize -> a
+    boolean isImmutable -> d
+    1:1:void <init>(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):87:87 -> <init>
+    2:5:void <init>(int):153:156 -> <init>
+    1:1:void access$200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> a
+    2:2:java.lang.Object access$500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,int):87:87 -> a
+    3:3:java.util.Map$Entry getArrayEntryAt(int):185:185 -> a
+    4:8:java.lang.Object put(java.lang.Comparable,java.lang.Object):237:241 -> a
+    9:11:void ensureEntryArrayMutable():389:391 -> a
+    9:11:java.lang.Object put(java.lang.Comparable,java.lang.Object):243 -> a
+    12:23:java.lang.Object put(java.lang.Comparable,java.lang.Object):245:256 -> a
+    24:40:int binarySearchInArray(java.lang.Comparable):316:332 -> a
+    1:1:java.util.List access$400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> b
+    1:1:java.util.Map access$600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> c
+    1:6:void clear():262:267 -> clear
+    1:2:boolean containsKey(java.lang.Object):214:215 -> containsKey
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap newFieldMap(int):100:100 -> d
+    1:8:java.lang.Object removeArrayEntryAt(int):296:303 -> e
+    9:9:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,java.util.Map$Entry):406:406 -> e
+    9:9:java.lang.Object removeArrayEntryAt(int):303 -> e
+    10:11:java.lang.Object removeArrayEntryAt(int):303:304 -> e
+    1:4:java.util.Set entrySet():353:356 -> entrySet
+    1:6:java.lang.Object get(java.lang.Object):227:232 -> get
+    1:2:void checkMutable():364:365 -> h
+    1:1:int getNumArrayEntries():180:180 -> i
+    1:1:java.lang.Iterable getOverflowEntries():195:195 -> j
+    1:5:java.util.SortedMap getOverflowEntriesMutable():377:381 -> k
+    1:1:boolean isImmutable():175:175 -> l
+    1:9:void makeImmutable():161:169 -> m
+    1:13:java.lang.Object remove(java.lang.Object):279:291 -> remove
+    1:1:int size():202:202 -> size
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1 -> com.android.tools.r8.w.b.a.x0.b.L:
+    1:1:void <init>(int):100:100 -> <init>
+    1:5:void makeImmutable():104:108 -> m
+    6:6:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> m
+    6:6:void makeImmutable():108 -> m
+    7:13:void makeImmutable():109:115 -> m
+    14:14:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> m
+    14:14:void makeImmutable():115 -> m
+    15:20:void makeImmutable():116:121 -> m
+    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):100:100 -> put
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet -> com.android.tools.r8.w.b.a.x0.b.O:
+    java.util.Iterator ITERATOR -> a
+    java.lang.Iterable ITERABLE -> b
+    1:16:void <clinit>():591:606 -> <clinit>
+    1:1:java.util.Iterator access$700():589:589 -> a
+    1:1:java.lang.Iterable iterable():615:615 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet$1 -> com.android.tools.r8.w.b.a.x0.b.M:
+    1:1:void <init>():591:591 -> <init>
+    1:1:java.lang.Object next():598:598 -> next
+    1:1:void remove():602:602 -> remove
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet$2 -> com.android.tools.r8.w.b.a.x0.b.N:
+    1:1:void <init>():606:606 -> <init>
+    1:1:java.util.Iterator iterator():609:609 -> iterator
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry -> com.android.tools.r8.w.b.a.x0.b.P$a:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> c
+    java.lang.Object value -> b
+    java.lang.Comparable key -> a
+    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,java.lang.Comparable,java.lang.Object):409:411 -> <init>
+    1:1:int compareTo(java.lang.Object):400:400 -> compareTo
+    2:2:java.lang.Comparable getKey():416:416 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry):426 -> compareTo
+    2:2:int compareTo(java.lang.Object):400 -> compareTo
+    3:3:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry):426:426 -> compareTo
+    3:3:int compareTo(java.lang.Object):400 -> compareTo
+    1:1:java.lang.Comparable getKey():416:416 -> d
+    1:6:boolean equals(java.lang.Object):442:447 -> equals
+    7:7:boolean equals(java.lang.Object,java.lang.Object):463:463 -> equals
+    7:7:boolean equals(java.lang.Object):447 -> equals
+    8:8:boolean equals(java.lang.Object):447:447 -> equals
+    9:9:boolean equals(java.lang.Object,java.lang.Object):463:463 -> equals
+    9:9:boolean equals(java.lang.Object):447 -> equals
+    1:1:java.lang.Comparable getKey():416:416 -> getKey
+    1:1:java.lang.Object getKey():400 -> getKey
+    1:1:java.lang.Object getValue():421:421 -> getValue
+    1:1:int hashCode():452:452 -> hashCode
+    1:3:java.lang.Object setValue(java.lang.Object):431:433 -> setValue
+    1:1:java.lang.String toString():458:458 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntryIterator -> com.android.tools.r8.w.b.a.x0.b.P$b:
+    java.util.Iterator lazyOverflowIterator -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> d
+    boolean nextCalledBeforeRemove -> b
+    int pos -> a
+    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):532:534 -> <init>
+    4:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):532:532 -> <init>
+    1:1:boolean hasNext():540:540 -> hasNext
+    1:4:java.util.Iterator getOverflowIterator():577:580 -> k
+    1:7:java.util.Map$Entry next():546:552 -> next
+    1:7:java.lang.Object next():532 -> next
+    1:10:void remove():557:566 -> remove
+    11:11:void remove():558:558 -> remove
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntrySet -> com.android.tools.r8.w.b.a.x0.b.P$c:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):470:470 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):470:470 -> <init>
+    1:1:boolean add(java.lang.Object):470:470 -> add
+    2:3:boolean add(java.util.Map$Entry):499:500 -> add
+    2:3:boolean add(java.lang.Object):470 -> add
+    1:1:void clear():524:524 -> clear
+    1:4:boolean contains(java.lang.Object):490:493 -> contains
+    1:1:java.util.Iterator iterator():474:474 -> iterator
+    1:3:boolean remove(java.lang.Object):514:516 -> remove
+    1:1:int size():479:479 -> size
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException -> com.android.tools.r8.w.b.a.x0.b.Q:
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):53:53 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8 -> com.android.tools.r8.w.b.a.x0.b.S:
+    int incompleteStateFor(int,int) -> a
+    int incompleteStateFor(int,int,int) -> a
+    1:66:int partialIsValidUtf8(int,byte[],int,int):163:228 -> a
+    67:72:int incompleteStateFor(byte[],int,int):341:346 -> a
+    73:73:int incompleteStateFor(byte[],int,int):344:344 -> a
+    1:1:int partialIsValidUtf8(byte[],int,int):252:252 -> b
+    2:38:int partialIsValidUtf8NonAscii(byte[],int,int):270:306 -> b
+    2:38:int partialIsValidUtf8(byte[],int,int):256 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat -> com.android.tools.r8.w.b.a.x0.b.a0:
+    int makeTag(int,int) -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$1 -> com.android.tools.r8.w.b.a.x0.b.T:
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType -> com.android.tools.r8.w.b.a.x0.b.Y:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType DOUBLE -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType[] $VALUES -> u
+    int wireType -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType INT64 -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FLOAT -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType javaType -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType INT32 -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType UINT64 -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FIXED32 -> i
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FIXED64 -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType STRING -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType BOOL -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType MESSAGE -> m
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType GROUP -> l
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType UINT32 -> o
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType BYTES -> n
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SFIXED32 -> q
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType ENUM -> p
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SINT32 -> s
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SFIXED64 -> r
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SINT64 -> t
+    1:26:void <clinit>():108:133 -> <clinit>
+    27:27:void <clinit>():107:107 -> <clinit>
+    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$1):107:107 -> <init>
+    2:4:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):135:137 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType getJavaType():143:143 -> a
+    1:1:int getWireType():144:144 -> b
+    boolean isPackable() -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$1 -> com.android.tools.r8.w.b.a.x0.b.U:
+    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):116:116 -> <init>
+    boolean isPackable() -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$2 -> com.android.tools.r8.w.b.a.x0.b.V:
+    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):119:119 -> <init>
+    boolean isPackable() -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$3 -> com.android.tools.r8.w.b.a.x0.b.W:
+    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):122:122 -> <init>
+    boolean isPackable() -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$4 -> com.android.tools.r8.w.b.a.x0.b.X:
+    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):125:125 -> <init>
+    boolean isPackable() -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType -> com.android.tools.r8.w.b.a.x0.b.Z:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType BOOLEAN -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType STRING -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType FLOAT -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType[] $VALUES -> k
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType DOUBLE -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType MESSAGE -> j
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType BYTE_STRING -> h
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType ENUM -> i
+    java.lang.Object defaultDefault -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType INT -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType LONG -> c
+    1:9:void <clinit>():78:86 -> <clinit>
+    10:10:void <clinit>():77:77 -> <clinit>
+    1:2:void <init>(java.lang.String,int,java.lang.Object):88:89 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor -> com.android.tools.r8.w.b.a.y0.a:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
+    1:1:void <clinit>():78:78 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):48:48 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor):49:49 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():54:54 -> a
+    void visitAnonymousObjectOriginName(java.lang.String) -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor getDelegate():51:51 -> c
+    1:1:void visitEnd():68 -> c
+    2:2:void visitEnd():68:68 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor -> com.android.tools.r8.w.b.a.y0.b:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> a
+    1:1:void <clinit>():260:260 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor):236:236 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):237:237 -> <init>
+    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():240:240 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor -> com.android.tools.r8.w.b.a.y0.c:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor delegate -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor):14:14 -> <init>
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int) -> a
+    void visitModuleName(java.lang.String) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor getDelegate():15:15 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature -> com.android.tools.r8.w.b.a.y0.d:
+    java.lang.String name -> a
+    java.lang.String desc -> b
+    1:1:void <init>(java.lang.String,java.lang.String):51:51 -> <init>
+    1:1:java.lang.String asString():52:52 -> a
+    2:2:java.lang.String getName():51:51 -> a
+    2:2:java.lang.String asString():52 -> a
+    3:3:java.lang.String asString():52:52 -> a
+    4:4:java.lang.String getDesc():51:51 -> a
+    4:4:java.lang.String asString():52 -> a
+    5:5:java.lang.String asString():52:52 -> a
+    1:1:java.lang.String getDesc():51:51 -> b
+    1:1:java.lang.String getName():51:51 -> c
+    1:2:java.lang.String getName():51:51 -> equals
+    1:2:boolean equals(java.lang.Object):0 -> equals
+    3:3:boolean equals(java.lang.Object):0:0 -> equals
+    4:5:java.lang.String getDesc():51:51 -> equals
+    4:5:boolean equals(java.lang.Object):0 -> equals
+    6:6:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.String getName():51:51 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    3:3:java.lang.String getDesc():51:51 -> hashCode
+    3:3:int hashCode():0 -> hashCode
+    4:4:int hashCode():0:0 -> hashCode
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor -> com.android.tools.r8.w.b.a.y0.e:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor delegate -> a
+    1:1:void <clinit>():154:154 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor):115:115 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):116:116 -> <init>
+    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():119:119 -> a
+    2:2:void visitLambdaClassOriginName(java.lang.String):137:137 -> a
+    1:1:void visitEnd():144:144 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature -> com.android.tools.r8.w.b.a.y0.f:
+    1:1:void <init>():16:16 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):16:16 -> <init>
+    java.lang.String asString() -> a
+    java.lang.String getDesc() -> b
+    java.lang.String getName() -> c
+    1:1:java.lang.String toString():30:30 -> toString
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature -> com.android.tools.r8.w.b.a.y0.g:
+    java.lang.String name -> a
+    java.lang.String desc -> b
+    1:1:void <init>(java.lang.String,java.lang.String):40:40 -> <init>
+    1:1:java.lang.String asString():41:41 -> a
+    2:2:java.lang.String getName():40:40 -> a
+    2:2:java.lang.String asString():41 -> a
+    3:3:java.lang.String asString():41:41 -> a
+    4:4:java.lang.String getDesc():40:40 -> a
+    4:4:java.lang.String asString():41 -> a
+    5:5:java.lang.String asString():41:41 -> a
+    1:1:java.lang.String getDesc():40:40 -> b
+    1:1:java.lang.String getName():40:40 -> c
+    1:2:java.lang.String getName():40:40 -> equals
+    1:2:boolean equals(java.lang.Object):0 -> equals
+    3:3:boolean equals(java.lang.Object):0:0 -> equals
+    4:5:java.lang.String getDesc():40:40 -> equals
+    4:5:boolean equals(java.lang.Object):0 -> equals
+    6:6:boolean equals(java.lang.Object):0:0 -> equals
+    1:1:java.lang.String getName():40:40 -> hashCode
+    1:1:int hashCode():0 -> hashCode
+    2:2:int hashCode():0:0 -> hashCode
+    3:3:java.lang.String getDesc():40:40 -> hashCode
+    3:3:int hashCode():0 -> hashCode
+    4:4:int hashCode():0:0 -> hashCode
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor -> com.android.tools.r8.w.b.a.y0.h:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
+    1:1:void <clinit>():108:108 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):86:86 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor):87:87 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():92:92 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor getDelegate():89:89 -> c
+    1:1:void visitEnd():98 -> c
+    2:2:void visitEnd():98:98 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor -> com.android.tools.r8.w.b.a.y0.i:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor delegate -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
+    1:1:void <clinit>():229:229 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor):161:161 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):162:162 -> <init>
+    void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():165:165 -> a
+    2:2:void visitSyntheticMethodForAnnotations(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):212:212 -> a
+    1:1:void visitEnd():219:219 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor -> com.android.tools.r8.w.b.a.y0.j:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor delegate -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
+    1:1:void <clinit>():341:341 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor):303:303 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):304:304 -> <init>
+    void visit(boolean) -> a
+    void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():307:307 -> a
+    1:1:void visitEnd():331:331 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor -> com.android.tools.r8.w.b.a.y0.k:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor delegate -> a
+    1:1:void <clinit>():296:296 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor):267:267 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):268:268 -> <init>
+    void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation) -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():271:271 -> a
+    1:1:void visitEnd():286:286 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader -> com.android.tools.r8.w.b.a.y0.l:
+    java.lang.String packageName -> g
+    java.lang.String extraString -> f
+    int[] COMPATIBLE_METADATA_VERSION -> i
+    int[] metadataVersion -> b
+    int[] bytecodeVersion -> c
+    int extraInt -> h
+    java.lang.String[] data2 -> e
+    java.lang.String[] data1 -> d
+    int[] COMPATIBLE_BYTECODE_VERSION -> j
+    int kind -> a
+    1:9:void <clinit>():143:151 -> <clinit>
+    1:72:void <init>(java.lang.Integer,int[],int[],java.lang.String[],java.lang.String[],java.lang.String,java.lang.String,java.lang.Integer):24:95 -> <init>
+    1:1:int[] getBytecodeVersion():60:60 -> a
+    1:1:java.lang.String[] getData1():67:67 -> b
+    1:1:java.lang.String[] getData2():74:74 -> c
+    1:1:int getExtraInt():95:95 -> d
+    1:1:java.lang.String getExtraString():81:81 -> e
+    1:1:int getKind():44:44 -> f
+    1:1:int[] getMetadataVersion():52:52 -> g
+    1:1:java.lang.String getPackageName():88:88 -> h
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata -> com.android.tools.r8.w.b.a.y0.A:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader header -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion Companion -> b
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):25:25 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):25:25 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader getHeader():25:25 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class -> com.android.tools.r8.w.b.a.y0.o:
+    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
+    com.android.tools.r8.jetbrains.kotlin.Lazy classData$delegate -> c
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):29:30 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass toKmClass():40:40 -> b
+    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):0:0 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass toKmClass():40 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlin.Pair getClassData():0:0 -> b
+    3:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):48 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass toKmClass():40 -> b
+    4:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):48:49 -> b
+    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass toKmClass():40 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer -> com.android.tools.r8.w.b.a.y0.m:
+    1:1:void <init>():55:55 -> <init>
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):68:69 -> h
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
+    3:75:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):0:72 -> h
+    3:75:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
+    3:75:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
+    76:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder.build():9746:9747 -> h
+    76:77:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):72 -> h
+    76:77:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
+    76:77:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
+    78:80:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):72:74 -> h
+    78:80:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
+    78:80:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
+    81:84:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):73:76 -> h
+    81:84:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
+    81:84:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
+    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> h
+    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder.build():9748 -> h
+    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):72 -> h
+    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
+    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
+    86:86:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder.build():9748:9748 -> h
+    86:86:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):72 -> h
+    86:86:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
+    86:86:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$classData$2 -> com.android.tools.r8.w.b.a.y0.n:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
+    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():31:33 -> a
+    1:3:java.lang.Object invoke():29 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():32:32 -> a
+    4:4:java.lang.Object invoke():29 -> a
+    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():32 -> a
+    5:5:java.lang.Object invoke():29 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():32:32 -> a
+    6:6:java.lang.Object invoke():29 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion -> com.android.tools.r8.w.b.a.y0.p:
+    1:1:void <init>():326:326 -> <init>
+    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):326:326 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade -> com.android.tools.r8.w.b.a.y0.s:
+    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
+    com.android.tools.r8.jetbrains.kotlin.Lazy packageData$delegate -> c
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):84:85 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():95:95 -> b
+    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):0:0 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():95 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlin.Pair getPackageData():0:0 -> b
+    3:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):103 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():95 -> b
+    4:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):103:104 -> b
+    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():95 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$Writer -> com.android.tools.r8.w.b.a.y0.q:
+    1:1:void <init>():110:110 -> <init>
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$Writer,int[],int[],int,int,java.lang.Object):123:124 -> g
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write():0 -> g
+    3:132:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write(int[],int[],int):0:129 -> g
+    3:132:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$Writer,int[],int[],int,int,java.lang.Object):125 -> g
+    3:132:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write():0 -> g
+    133:136:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write(int[],int[],int):128:131 -> g
+    133:136:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$Writer,int[],int[],int,int,java.lang.Object):125 -> g
+    133:136:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write():0 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$packageData$2 -> com.android.tools.r8.w.b.a.y0.r:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
+    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():86:88 -> a
+    1:3:java.lang.Object invoke():84 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():87:87 -> a
+    4:4:java.lang.Object invoke():84 -> a
+    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():87 -> a
+    5:5:java.lang.Object invoke():84 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():87:87 -> a
+    6:6:java.lang.Object invoke():84 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade -> com.android.tools.r8.w.b.a.y0.t:
+    java.util.List partClassNames -> c
+    1:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):217:221 -> <init>
+    1:1:java.util.List getPartClassNames():221:221 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart -> com.android.tools.r8.w.b.a.y0.w:
+    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
+    com.android.tools.r8.jetbrains.kotlin.Lazy packageData$delegate -> c
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):260:261 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():277:277 -> b
+    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):0:0 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():277 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlin.Pair getPackageData():0:0 -> b
+    3:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):285 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():277 -> b
+    4:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):285:286 -> b
+    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():277 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$Writer -> com.android.tools.r8.w.b.a.y0.u:
+    1:1:void <init>():292:292 -> <init>
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$Writer,java.lang.String,int[],int[],int,int,java.lang.Object):307:308 -> a
+    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String):0 -> a
+    3:316:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String,int[],int[],int):0:313 -> a
+    3:316:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$Writer,java.lang.String,int[],int[],int,int,java.lang.Object):309 -> a
+    3:316:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String):0 -> a
+    317:320:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String,int[],int[],int):312:315 -> a
+    317:320:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$Writer,java.lang.String,int[],int[],int,int,java.lang.Object):309 -> a
+    317:320:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String):0 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$packageData$2 -> com.android.tools.r8.w.b.a.y0.v:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
+    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():262:264 -> a
+    1:3:java.lang.Object invoke():260 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():263:263 -> a
+    4:4:java.lang.Object invoke():260 -> a
+    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
+    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():263 -> a
+    5:5:java.lang.Object invoke():260 -> a
+    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():263:263 -> a
+    6:6:java.lang.Object invoke():260 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass -> com.android.tools.r8.w.b.a.y0.y:
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):140:141 -> <init>
+    1:1:boolean isLambda():159:159 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass$functionData$2 -> com.android.tools.r8.w.b.a.y0.x:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
+    1:2:com.android.tools.r8.jetbrains.kotlin.Pair invoke():142:143 -> a
+    1:2:java.lang.Object invoke():140 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Unknown -> com.android.tools.r8.w.b.a.y0.z:
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):324:324 -> <init>
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmClassExtension -> com.android.tools.r8.w.b.a.y0.B.a:
+    java.util.List localDelegatedProperties -> c
+    java.lang.String anonymousObjectOriginName -> e
+    java.lang.String moduleName -> d
+    1:2:void <init>():34:35 -> <init>
+    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):34:34 -> a
+    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor):0:180 -> a
+    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):34 -> a
+    183:187:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor):53:57 -> a
+    183:187:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):34 -> a
+    188:188:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor):51:51 -> a
+    188:188:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):34 -> a
+    189:189:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int):40:40 -> a
+    190:190:void visitModuleName(java.lang.String):43:43 -> a
+    1:1:void visitAnonymousObjectOriginName(java.lang.String):47:47 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmConstructorExtension -> com.android.tools.r8.w.b.a.y0.B.b:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature signature -> b
+    1:1:void <init>():133:133 -> <init>
+    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):133:133 -> a
+    2:144:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor):0:142 -> a
+    2:144:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):133 -> a
+    145:145:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor):141:141 -> a
+    145:145:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):133 -> a
+    146:146:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):137:137 -> a
+    1:1:void setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):134:134 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmFunctionExtension -> com.android.tools.r8.w.b.a.y0.B.c:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature signature -> c
+    java.lang.String lambdaClassOriginName -> d
+    1:1:void <init>():82:82 -> <init>
+    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):82:82 -> a
+    2:100:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor):0:98 -> a
+    2:100:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):82 -> a
+    101:101:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor):95:95 -> a
+    101:101:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):82 -> a
+    102:102:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):87:87 -> a
+    103:103:void visitLambdaClassOriginName(java.lang.String):91:91 -> a
+    1:1:void setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):83:83 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions -> com.android.tools.r8.w.b.a.y0.B.m:
+    1:1:void <init>():17:17 -> <init>
+    1:279:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):0:278 -> a
+    1:279:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
+    280:281:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder.build():2411:2412 -> a
+    280:281:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):279 -> a
+    280:281:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
+    282:282:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):279:279 -> a
+    282:282:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
+    283:283:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    283:283:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder.build():2413 -> a
+    283:283:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):279 -> a
+    283:283:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
+    284:284:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder.build():2413:2413 -> a
+    284:284:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):279 -> a
+    284:284:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
+    285:286:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor writeClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):108:109 -> a
+    287:288:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor writePackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):131:132 -> a
+    289:290:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor writeFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):150:151 -> a
+    291:292:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor writePropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):167:168 -> a
+    293:294:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor writeConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):225:226 -> a
+    295:296:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor writeTypeParameterExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):238:239 -> a
+    297:298:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor writeTypeExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):247:248 -> a
+    299:299:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmClassExtension createClassExtension():261:261 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmConstructorExtension createConstructorExtension():269:269 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmFunctionExtension createFunctionExtension():265:265 -> c
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmPackageExtension createPackageExtension():263:263 -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmPropertyExtension createPropertyExtension():267:267 -> e
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeExtension createTypeExtension():273:273 -> f
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeParameterExtension createTypeParameterExtension():271:271 -> g
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeClassExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.e:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder $proto -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> d
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):109:109 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int):116:116 -> a
+    2:3:void visitModuleName(java.lang.String):121:122 -> a
+    1:1:void visitAnonymousObjectOriginName(java.lang.String):111:111 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeClassExtensions$1$visitLocalDelegatedProperty$1 -> com.android.tools.r8.w.b.a.y0.B.d:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeClassExtensions$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):109:109 -> a
+    2:119:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):0:117 -> a
+    2:119:java.lang.Object invoke(java.lang.Object):109 -> a
+    120:120:java.lang.Object invoke(java.lang.Object):109:109 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeConstructorExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.f:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder $proto -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions this$0 -> b
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):226:226 -> <init>
+    1:1:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):229:229 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeFunctionExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.g:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions this$0 -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder $proto -> d
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):151:151 -> <init>
+    1:1:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):154:154 -> a
+    2:2:void visitLambdaClassOriginName(java.lang.String):159:159 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writePackageExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.i:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder $proto -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder):132:132 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int):135:135 -> a
+    2:3:void visitModuleName(java.lang.String):140:141 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writePackageExtensions$1$visitLocalDelegatedProperty$1 -> com.android.tools.r8.w.b.a.y0.B.h:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writePackageExtensions$1 this$0 -> a
+    1:1:java.lang.Object invoke(java.lang.Object):132:132 -> a
+    2:138:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):0:136 -> a
+    2:138:java.lang.Object invoke(java.lang.Object):132 -> a
+    139:139:java.lang.Object invoke(java.lang.Object):132:132 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writePropertyExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.j:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions this$0 -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder signature -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder $proto -> g
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> f
+    int jvmFlags -> c
+    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):168:169 -> <init>
+    1:12:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):178:189 -> a
+    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder.build():2873:2874 -> a
+    13:14:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):190 -> a
+    15:15:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):190:190 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
+    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder.build():2875 -> a
+    16:16:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):190 -> a
+    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder.build():2875:2875 -> a
+    17:17:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):190 -> a
+    18:21:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):193:196 -> a
+    22:22:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):185:185 -> a
+    23:27:void visitSyntheticMethodForAnnotations(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):204:208 -> a
+    1:5:void visitEnd():212:216 -> b
+    6:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder.build():3445:3446 -> b
+    6:7:void visitEnd():216 -> b
+    8:8:void visitEnd():216:216 -> b
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> b
+    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder.build():3447 -> b
+    9:9:void visitEnd():216 -> b
+    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder.build():3447:3447 -> b
+    10:10:void visitEnd():216 -> b
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeTypeExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.k:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder $proto -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> d
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):248:248 -> <init>
+    1:1:void visit(boolean):251:251 -> a
+    2:2:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):256:256 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeTypeParameterExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.l:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder $proto -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> d
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):239:239 -> <init>
+    1:1:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):241:241 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmPackageExtension -> com.android.tools.r8.w.b.a.y0.B.n:
+    java.util.List localDelegatedProperties -> c
+    java.lang.String moduleName -> d
+    1:2:void <init>():61:62 -> <init>
+    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):61:61 -> a
+    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor):0:180 -> a
+    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):61 -> a
+    183:186:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor):75:78 -> a
+    183:186:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):61 -> a
+    187:187:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor):73:73 -> a
+    187:187:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):61 -> a
+    188:188:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int):66:66 -> a
+    189:189:void visitModuleName(java.lang.String):69:69 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmPropertyExtension -> com.android.tools.r8.w.b.a.y0.B.o:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature syntheticMethodForAnnotations -> g
+    int jvmFlags -> c
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature fieldSignature -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature setterSignature -> f
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature getterSignature -> e
+    1:1:void <init>():102:102 -> <init>
+    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):102:102 -> a
+    2:131:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor):0:129 -> a
+    2:131:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):102 -> a
+    132:132:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor):126:126 -> a
+    132:132:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):102 -> a
+    133:133:void setFieldSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature):104:104 -> a
+    134:137:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):115:118 -> a
+    138:138:void visitSyntheticMethodForAnnotations(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):122:122 -> a
+    1:1:void setGetterSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):105:105 -> b
+    1:1:void setSetterSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):106:106 -> c
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmTypeExtension -> com.android.tools.r8.w.b.a.y0.B.p:
+    java.util.List annotations -> d
+    boolean isRaw -> c
+    1:3:void <init>():160:162 -> <init>
+    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):160:160 -> a
+    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor):0:180 -> a
+    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):160 -> a
+    183:184:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor):175:176 -> a
+    183:184:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):160 -> a
+    185:185:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor):173:173 -> a
+    185:185:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):160 -> a
+    186:186:void visit(boolean):165:165 -> a
+    187:187:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):169:169 -> a
+com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmTypeParameterExtension -> com.android.tools.r8.w.b.a.y0.B.q:
+    java.util.List annotations -> c
+    1:2:void <init>():146:147 -> <init>
+    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):146:146 -> a
+    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor):0:180 -> a
+    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):146 -> a
+    183:184:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor):155:156 -> a
+    183:184:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):146 -> a
+    185:185:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor):154:154 -> a
+    185:185:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):146 -> a
+    186:186:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):150:150 -> a
+com.android.tools.r8.joptsimple.AbstractOptionSpec -> com.android.tools.r8.joptsimple.a:
+    java.util.List options -> a
+    java.lang.String description -> b
+    boolean forHelp -> c
+    1:1:void <init>(java.util.Collection,java.lang.String):52:52 -> <init>
+    2:13:void <init>(java.util.Collection,java.lang.String):44:55 -> <init>
+    java.lang.Object convert(java.lang.String) -> a
+    void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String) -> a
+    1:1:java.util.Collection options():59:59 -> a
+    2:21:void arrangeOptions(java.util.Collection):113:132 -> a
+    22:22:java.lang.Object com.android.tools.r8.joptsimple.internal.Reflection.convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):128:128 -> a
+    22:22:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):91 -> a
+    23:23:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):97:97 -> a
+    24:24:java.util.Collection options():59:59 -> a
+    24:24:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):97 -> a
+    25:25:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):97:97 -> a
+    26:26:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):94:94 -> a
+    27:27:java.util.Collection options():59:59 -> a
+    27:27:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):94 -> a
+    28:28:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):94:94 -> a
+    1:1:java.lang.String description():71:71 -> b
+    1:5:boolean equals(java.lang.Object):137:141 -> equals
+    1:1:int hashCode():146:146 -> hashCode
+    1:1:com.android.tools.r8.joptsimple.AbstractOptionSpec forHelp():75:75 -> i
+    1:1:boolean isForHelp():80:80 -> j
+    1:1:java.lang.String toString():151:151 -> toString
+com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec -> com.android.tools.r8.joptsimple.b:
+    java.lang.String valueSeparator -> g
+    java.lang.String argumentDescription -> f
+    java.util.List defaultValues -> h
+    com.android.tools.r8.joptsimple.ValueConverter converter -> e
+    boolean argumentRequired -> d
+    1:1:void <init>(java.util.Collection,boolean,java.lang.String):75:75 -> <init>
+    2:15:void <init>(java.util.Collection,boolean,java.lang.String):64:77 -> <init>
+    void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet) -> a
+    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class):106:106 -> a
+    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withValuesConvertedBy(com.android.tools.r8.joptsimple.ValueConverter):126:126 -> a
+    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class):106 -> a
+    3:3:void addDefaultValue(java.lang.Object):248:248 -> a
+    3:3:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):210 -> a
+    4:4:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):224:224 -> a
+    4:4:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
+    5:5:void addDefaultValue(java.lang.Object):248:248 -> a
+    5:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):225 -> a
+    5:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
+    6:6:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> a
+    6:6:void addDefaultValue(java.lang.Object):247 -> a
+    6:6:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):225 -> a
+    6:6:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
+    7:7:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> a
+    7:7:void addDefaultValue(java.lang.Object):247 -> a
+    7:7:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):210 -> a
+    8:11:void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):255:258 -> a
+    12:17:void addArguments(com.android.tools.r8.joptsimple.OptionSet,java.lang.String):262:267 -> a
+    18:18:java.lang.Object convert(java.lang.String):276:276 -> a
+    1:1:java.lang.String argumentDescription():305:305 -> argumentDescription
+    1:1:java.lang.String description():58:58 -> b
+    2:6:boolean canConvertArgument(java.lang.String):280:284 -> b
+    7:7:java.lang.Object convert(java.lang.String):276:276 -> b
+    7:7:boolean canConvertArgument(java.lang.String):284 -> b
+    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String):138:138 -> c
+    2:2:boolean requiresArgument():301:301 -> c
+    boolean acceptsArguments() -> d
+    1:1:java.util.List defaultValues():313:313 -> e
+    1:4:boolean equals(java.lang.Object):318:321 -> equals
+    5:6:boolean requiresArgument():301:301 -> equals
+    5:6:boolean equals(java.lang.Object):322 -> equals
+    boolean isRequired() -> f
+    1:1:java.lang.String argumentTypeIndicator():309:309 -> g
+    2:3:java.lang.String com.android.tools.r8.joptsimple.AbstractOptionSpec.argumentTypeIndicatorFrom(com.android.tools.r8.joptsimple.ValueConverter):105:106 -> g
+    2:3:java.lang.String argumentTypeIndicator():309 -> g
+    boolean representsNonOptions() -> h
+    1:1:int hashCode():327:327 -> hashCode
+    1:1:boolean isArgumentOfNumberType():293:293 -> k
+    1:1:java.lang.String toString():58:58 -> toString
+com.android.tools.r8.joptsimple.ArgumentList -> com.android.tools.r8.joptsimple.c:
+    java.lang.String[] arguments -> a
+    int currentIndex -> b
+    1:2:void <init>(java.lang.String[]):39:40 -> <init>
+    1:1:boolean hasMore():44:44 -> a
+    1:1:java.lang.String next():48:48 -> b
+    1:1:java.lang.String peek():52:52 -> c
+com.android.tools.r8.joptsimple.BuiltinHelpFormatter -> com.android.tools.r8.joptsimple.e:
+    com.android.tools.r8.joptsimple.internal.Rows nonOptionRows -> a
+    com.android.tools.r8.joptsimple.internal.Rows optionRows -> b
+    1:1:void <init>():60:60 -> <init>
+    2:4:void <init>(int,int):70:72 -> <init>
+    1:9:java.lang.String format(java.util.Map):76:84 -> a
+    10:13:com.android.tools.r8.joptsimple.OptionDescriptor findAndRemoveNonOptionsSpec(java.util.Collection):142:145 -> a
+    10:13:void addNonOptionsDescription(java.util.Collection):115 -> a
+    10:13:void addRows(java.util.Collection):102 -> a
+    10:13:java.lang.String format(java.util.Map):86 -> a
+    14:14:boolean shouldShowNonOptionArgumentDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):123:123 -> a
+    14:14:void addNonOptionsDescription(java.util.Collection):116 -> a
+    14:14:void addRows(java.util.Collection):102 -> a
+    14:14:java.lang.String format(java.util.Map):86 -> a
+    15:16:void addNonOptionsDescription(java.util.Collection):117:118 -> a
+    15:16:void addRows(java.util.Collection):102 -> a
+    15:16:java.lang.String format(java.util.Map):86 -> a
+    17:18:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):129:130 -> a
+    17:18:void addNonOptionsDescription(java.util.Collection):118 -> a
+    17:18:void addRows(java.util.Collection):102 -> a
+    17:18:java.lang.String format(java.util.Map):86 -> a
+    19:19:void maybeAppendNonOptionsDescription(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):137:137 -> a
+    19:19:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):131 -> a
+    19:19:void addNonOptionsDescription(java.util.Collection):118 -> a
+    19:19:void addRows(java.util.Collection):102 -> a
+    19:19:java.lang.String format(java.util.Map):86 -> a
+    20:20:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):133:133 -> a
+    20:20:void addNonOptionsDescription(java.util.Collection):118 -> a
+    20:20:void addRows(java.util.Collection):102 -> a
+    20:20:java.lang.String format(java.util.Map):86 -> a
+    21:21:void addNonOptionsDescription(java.util.Collection):118:118 -> a
+    21:21:void addRows(java.util.Collection):102 -> a
+    21:21:java.lang.String format(java.util.Map):86 -> a
+    22:23:void addRows(java.util.Collection):104:105 -> a
+    22:23:java.lang.String format(java.util.Map):86 -> a
+    24:25:boolean hasRequiredOption(java.util.Collection):164:165 -> a
+    24:25:void addHeaders(java.util.Collection):154 -> a
+    24:25:void addRows(java.util.Collection):107 -> a
+    24:25:java.lang.String format(java.util.Map):86 -> a
+    26:30:void addHeaders(java.util.Collection):155:159 -> a
+    26:30:void addRows(java.util.Collection):107 -> a
+    26:30:java.lang.String format(java.util.Map):86 -> a
+    31:33:void addOptions(java.util.Collection):173:175 -> a
+    31:33:void addRows(java.util.Collection):108 -> a
+    31:33:java.lang.String format(java.util.Map):86 -> a
+    34:47:java.lang.String createOptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):180:193 -> a
+    34:47:void addOptions(java.util.Collection):175 -> a
+    34:47:void addRows(java.util.Collection):108 -> a
+    34:47:java.lang.String format(java.util.Map):86 -> a
+    48:50:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):236:238 -> a
+    48:50:void addOptions(java.util.Collection):175 -> a
+    48:50:void addRows(java.util.Collection):108 -> a
+    48:50:java.lang.String format(java.util.Map):86 -> a
+    51:51:java.lang.String createDefaultValuesDisplay(java.util.List):245:245 -> a
+    51:51:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):240 -> a
+    51:51:void addOptions(java.util.Collection):175 -> a
+    51:51:void addRows(java.util.Collection):108 -> a
+    51:51:java.lang.String format(java.util.Map):86 -> a
+    52:52:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):241:241 -> a
+    52:52:void addOptions(java.util.Collection):175 -> a
+    52:52:void addRows(java.util.Collection):108 -> a
+    52:52:java.lang.String format(java.util.Map):86 -> a
+    53:53:void addOptions(java.util.Collection):175:175 -> a
+    53:53:void addRows(java.util.Collection):108 -> a
+    53:53:java.lang.String format(java.util.Map):86 -> a
+    54:55:void fitRowsToWidth():249:250 -> a
+    54:55:void addRows(java.util.Collection):111 -> a
+    54:55:java.lang.String format(java.util.Map):86 -> a
+    56:62:java.lang.String formattedHelpOutput():92:98 -> a
+    56:62:java.lang.String format(java.util.Map):88 -> a
+    63:63:com.android.tools.r8.joptsimple.OptionDescriptor findAndRemoveNonOptionsSpec(java.util.Collection):150:150 -> a
+    63:63:void addNonOptionsDescription(java.util.Collection):115 -> a
+    63:63:void addRows(java.util.Collection):102 -> a
+    63:63:java.lang.String format(java.util.Map):86 -> a
+    64:67:java.lang.String extractTypeIndicator(com.android.tools.r8.joptsimple.OptionDescriptor):204:207 -> a
+    64:67:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):197 -> a
+    68:70:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):198:200 -> a
+    71:73:void appendOptionHelp(java.lang.StringBuilder,java.lang.String,java.lang.String,boolean):214:216 -> a
+    71:73:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):200 -> a
+    74:85:void appendTypeIndicator(java.lang.StringBuilder,java.lang.String,java.lang.String,char,char):221:232 -> a
+com.android.tools.r8.joptsimple.BuiltinHelpFormatter$1 -> com.android.tools.r8.joptsimple.d:
+    1:1:void <init>(com.android.tools.r8.joptsimple.BuiltinHelpFormatter):77:77 -> <init>
+    1:1:int compare(java.lang.Object,java.lang.Object):77:77 -> compare
+    2:2:int compare(com.android.tools.r8.joptsimple.OptionDescriptor,com.android.tools.r8.joptsimple.OptionDescriptor):79:79 -> compare
+    2:2:int compare(java.lang.Object,java.lang.Object):77 -> compare
+com.android.tools.r8.joptsimple.IllegalOptionSpecificationException -> com.android.tools.r8.joptsimple.f:
+    1:1:void <init>(java.lang.String):39:39 -> <init>
+    1:1:java.lang.String getMessage():44:44 -> getMessage
+com.android.tools.r8.joptsimple.MissingRequiredOptionException -> com.android.tools.r8.joptsimple.g:
+    1:1:void <init>(java.util.Collection):39:39 -> <init>
+    1:1:java.lang.String getMessage():44:44 -> getMessage
+com.android.tools.r8.joptsimple.MultipleArgumentsForOptionException -> com.android.tools.r8.joptsimple.h:
+    1:1:void <init>(java.util.Collection):39:39 -> <init>
+    1:1:java.lang.String getMessage():44:44 -> getMessage
+com.android.tools.r8.joptsimple.NonOptionArgumentSpec -> com.android.tools.r8.joptsimple.i:
+    java.lang.String argumentDescription -> d
+    1:1:void <init>():60:60 -> <init>
+    2:2:void <init>(java.lang.String):64:64 -> <init>
+    3:3:void <init>(java.lang.String):57:57 -> <init>
+    1:1:java.lang.Object convert(java.lang.String):133:133 -> a
+    2:2:void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):140:140 -> a
+    1:1:java.lang.String argumentDescription():160:160 -> argumentDescription
+    1:1:java.lang.String description():53:53 -> b
+    boolean requiresArgument() -> c
+    boolean acceptsArguments() -> d
+    1:1:java.util.List defaultValues():144:144 -> e
+    1:1:boolean equals(java.lang.Object):53:53 -> equals
+    boolean isRequired() -> f
+    java.lang.String argumentTypeIndicator() -> g
+    boolean representsNonOptions() -> h
+    1:1:int hashCode():53:53 -> hashCode
+    1:1:java.lang.String toString():53:53 -> toString
+com.android.tools.r8.joptsimple.OptionArgumentConversionException -> com.android.tools.r8.joptsimple.j:
+    java.lang.String argument -> b
+    1:3:void <init>(java.util.Collection,java.lang.String,java.lang.Throwable):41:43 -> <init>
+    1:1:java.lang.String getMessage():48:48 -> getMessage
+com.android.tools.r8.joptsimple.OptionDescriptor -> com.android.tools.r8.joptsimple.OptionDescriptor:
+    java.util.Collection options() -> a
+    java.lang.String description() -> b
+    boolean requiresArgument() -> c
+    boolean acceptsArguments() -> d
+    java.util.List defaultValues() -> e
+    boolean isRequired() -> f
+    java.lang.String argumentTypeIndicator() -> g
+    boolean representsNonOptions() -> h
+com.android.tools.r8.joptsimple.OptionException -> com.android.tools.r8.joptsimple.k:
+    java.util.List options -> a
+    1:1:void <init>(java.util.Collection):47:47 -> <init>
+    2:5:void <init>(java.util.Collection):45:48 -> <init>
+    6:6:void <init>(java.util.Collection,java.lang.Throwable):52:52 -> <init>
+    7:16:void <init>(java.util.Collection,java.lang.Throwable):45:54 -> <init>
+    1:4:java.lang.String multipleOptionMessage():75:78 -> a
+    5:5:java.lang.String singleOptionMessage(java.lang.String):71:71 -> a
+    5:5:java.lang.String multipleOptionMessage():78 -> a
+    6:13:java.lang.String multipleOptionMessage():78:85 -> a
+    14:14:com.android.tools.r8.joptsimple.OptionException unrecognizedOption(java.lang.String):89:89 -> a
+    1:1:java.lang.String singleOptionMessage():67:67 -> b
+    2:2:java.lang.String singleOptionMessage(java.lang.String):71:71 -> b
+    2:2:java.lang.String singleOptionMessage():67 -> b
+com.android.tools.r8.joptsimple.OptionMissingRequiredArgumentException -> com.android.tools.r8.joptsimple.l:
+    1:1:void <init>(java.util.Collection):39:39 -> <init>
+    1:1:java.lang.String getMessage():44:44 -> getMessage
+com.android.tools.r8.joptsimple.OptionParser -> com.android.tools.r8.joptsimple.m:
+    java.util.Map requiredIf -> b
+    java.util.Map requiredUnless -> c
+    com.android.tools.r8.joptsimple.OptionParserState state -> d
+    com.android.tools.r8.joptsimple.internal.AbbreviationMap recognizedOptions -> a
+    com.android.tools.r8.joptsimple.HelpFormatter helpFormatter -> e
+    1:1:void <init>():206:206 -> <init>
+    2:14:void <init>():200:212 -> <init>
+    1:1:com.android.tools.r8.joptsimple.OptionParserState com.android.tools.r8.joptsimple.OptionParserState.noMoreOptions():38:38 -> a
+    1:1:void noMoreOptions():467 -> a
+    2:2:void noMoreOptions():467:467 -> a
+    3:3:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String):232:232 -> a
+    4:9:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):244:249 -> a
+    4:9:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection):240 -> a
+    4:9:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String):232 -> a
+    10:10:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):245:245 -> a
+    10:10:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection):240 -> a
+    10:10:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String):232 -> a
+    11:11:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String):236:236 -> a
+    12:17:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):244:249 -> a
+    12:17:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String):236 -> a
+    18:18:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):245:245 -> a
+    18:18:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String):236 -> a
+    19:19:void recognize(com.android.tools.r8.joptsimple.AbstractOptionSpec):293:293 -> a
+    20:20:void printHelpOn(java.io.OutputStream):307:307 -> a
+    21:22:void printHelpOn(java.io.Writer):321:322 -> a
+    21:22:void printHelpOn(java.io.OutputStream):307 -> a
+    23:25:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):356:358 -> a
+    26:26:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
+    26:26:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):358 -> a
+    27:28:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):360:361 -> a
+    29:29:com.android.tools.r8.joptsimple.OptionParserState com.android.tools.r8.joptsimple.OptionParserState.moreOptions(boolean):47:47 -> a
+    29:29:void reset():521 -> a
+    29:29:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):363 -> a
+    30:30:void reset():521:521 -> a
+    30:30:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):363 -> a
+    31:50:java.util.Collection missingRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):379:398 -> a
+    31:50:void ensureRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):371 -> a
+    31:50:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):365 -> a
+    51:54:void ensureRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):372:375 -> a
+    51:54:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):365 -> a
+    55:56:boolean optionsHasAnyOf(com.android.tools.r8.joptsimple.OptionSet,java.util.Collection):406:407 -> a
+    57:58:boolean isHelpOptionPresent(com.android.tools.r8.joptsimple.OptionSet):416:417 -> a
+    59:59:void requiredIf(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec):483:483 -> a
+    60:72:void putRequiredOption(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec,java.util.Map):497:509 -> a
+    60:72:void requiredIf(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec):483 -> a
+    73:73:com.android.tools.r8.joptsimple.util.KeyValuePair parseLongOptionWithArgument(java.lang.String):544:544 -> a
+    73:73:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):426 -> a
+    74:78:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):428:432 -> a
+    79:79:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):429:429 -> a
+    1:1:boolean isRecognized(java.lang.String):475:475 -> b
+    2:2:boolean com.android.tools.r8.joptsimple.internal.AbbreviationMap.contains(java.lang.String):74:74 -> b
+    2:2:boolean isRecognized(java.lang.String):475 -> b
+    3:3:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(java.lang.String):517:517 -> b
+    3:3:void handleNonOptionArgument(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):463 -> b
+    4:4:void handleNonOptionArgument(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):463:463 -> b
+    1:1:com.android.tools.r8.joptsimple.NonOptionArgumentSpec nonOptions(java.lang.String):261:261 -> c
+    2:2:void recognize(com.android.tools.r8.joptsimple.AbstractOptionSpec):293:293 -> c
+    2:2:com.android.tools.r8.joptsimple.NonOptionArgumentSpec nonOptions(java.lang.String):263 -> c
+    3:3:com.android.tools.r8.joptsimple.util.KeyValuePair parseShortOptionWithArgument(java.lang.String):548:548 -> c
+    3:3:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):436 -> c
+    4:5:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):438:439 -> c
+    6:7:char[] extractShortOptionsFrom(java.lang.String):525:526 -> c
+    6:7:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):446 -> c
+    6:7:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
+    8:14:void validateOptionCharacters(char[]):532:538 -> c
+    8:14:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):447 -> c
+    8:14:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
+    15:15:void validateOptionCharacters(char[]):536:536 -> c
+    15:15:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):447 -> c
+    15:15:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
+    16:16:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):450:450 -> c
+    16:16:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
+    17:17:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(char):513:513 -> c
+    17:17:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):450 -> c
+    17:17:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
+    18:24:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):452:458 -> c
+    18:24:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
+    1:1:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(java.lang.String):517:517 -> d
+com.android.tools.r8.joptsimple.OptionParserState -> com.android.tools.r8.joptsimple.p:
+    1:1:void <init>():36:36 -> <init>
+    void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet) -> a
+    1:1:com.android.tools.r8.joptsimple.OptionParserState moreOptions(boolean):47:47 -> a
+com.android.tools.r8.joptsimple.OptionParserState$1 -> com.android.tools.r8.joptsimple.n:
+    1:1:void <init>():38:38 -> <init>
+    1:1:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):41:41 -> a
+com.android.tools.r8.joptsimple.OptionParserState$2 -> com.android.tools.r8.joptsimple.o:
+    boolean val$posixlyCorrect -> a
+    1:1:void <init>(boolean):47:47 -> <init>
+    1:21:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):50:70 -> a
+    22:22:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):64:64 -> a
+com.android.tools.r8.joptsimple.OptionSet -> com.android.tools.r8.joptsimple.q:
+    java.util.List detectedSpecs -> a
+    java.util.Map detectedOptions -> b
+    java.util.Map optionsToArguments -> c
+    java.util.Map defaultValues -> d
+    1:5:void <init>(java.util.Map):49:53 -> <init>
+    1:1:boolean has(com.android.tools.r8.joptsimple.OptionSpec):91:91 -> a
+    2:15:void addWithArgument(com.android.tools.r8.joptsimple.AbstractOptionSpec,java.lang.String):263:276 -> a
+    16:18:java.util.Map defaultValues(java.util.Map):316:318 -> a
+    1:8:java.lang.Object valueOf(com.android.tools.r8.joptsimple.OptionSpec):169:176 -> b
+    9:9:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> b
+    9:9:java.lang.Object valueOf(com.android.tools.r8.joptsimple.OptionSpec):167 -> b
+    1:10:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):213:222 -> c
+    11:11:java.util.List defaultValueFor(com.android.tools.r8.joptsimple.OptionSpec):312:312 -> c
+    11:11:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):215 -> c
+    12:15:java.util.List defaultValuesFor(java.lang.String):305:308 -> c
+    12:15:java.util.List defaultValueFor(com.android.tools.r8.joptsimple.OptionSpec):312 -> c
+    12:15:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):215 -> c
+    16:16:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> c
+    16:16:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):211 -> c
+    1:9:boolean equals(java.lang.Object):284:292 -> equals
+    1:3:int hashCode():298:300 -> hashCode
+com.android.tools.r8.joptsimple.OptionSpec -> com.android.tools.r8.joptsimple.r:
+com.android.tools.r8.joptsimple.OptionSpecBuilder -> com.android.tools.r8.joptsimple.s:
+    com.android.tools.r8.joptsimple.OptionParser parser -> d
+    1:1:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.<init>(java.util.Collection,java.lang.String):44:44 -> <init>
+    1:1:void <init>(com.android.tools.r8.joptsimple.OptionParser,java.util.Collection,java.lang.String):64 -> <init>
+    2:3:void <init>(com.android.tools.r8.joptsimple.OptionParser,java.util.Collection,java.lang.String):66:67 -> <init>
+    java.lang.Object com.android.tools.r8.joptsimple.NoArgumentOptionSpec.convert(java.lang.String) -> a
+    1:3:com.android.tools.r8.joptsimple.OptionSpecBuilder requiredIf(com.android.tools.r8.joptsimple.OptionSpec,com.android.tools.r8.joptsimple.OptionSpec[]):135:137 -> a
+    4:4:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
+    4:4:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):51 -> a
+    4:4:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):0 -> a
+    1:1:java.lang.String description():60:60 -> b
+    boolean requiresArgument() -> c
+    boolean acceptsArguments() -> d
+    1:1:java.util.List com.android.tools.r8.joptsimple.NoArgumentOptionSpec.defaultValues():80:80 -> e
+    1:1:java.util.List defaultValues():60 -> e
+    1:1:boolean equals(java.lang.Object):60:60 -> equals
+    boolean isRequired() -> f
+    java.lang.String argumentTypeIndicator() -> g
+    boolean representsNonOptions() -> h
+    1:1:int hashCode():60:60 -> hashCode
+    com.android.tools.r8.joptsimple.AbstractOptionSpec forHelp() -> i
+    1:1:void attachToParser():71:71 -> k
+    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93:93 -> l
+    2:2:java.lang.String description():60:60 -> l
+    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93 -> l
+    3:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93:95 -> l
+    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80:80 -> m
+    2:2:java.lang.String description():60:60 -> m
+    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80 -> m
+    3:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80:82 -> m
+    1:1:java.lang.String toString():60:60 -> toString
+com.android.tools.r8.joptsimple.OptionalArgumentOptionSpec -> com.android.tools.r8.joptsimple.t:
+    1:1:void <init>(java.util.Collection,java.lang.String):42:42 -> <init>
+    1:2:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):47:48 -> a
+    3:474:boolean com.android.tools.r8.joptsimple.OptionParser.looksLikeAnOption(java.lang.String):0:471 -> a
+    3:474:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):50 -> a
+    475:475:void handleOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.joptsimple.ArgumentList):67:67 -> a
+    475:475:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):51 -> a
+    476:477:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):52:53 -> a
+    478:478:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
+    478:478:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):55 -> a
+    479:479:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
+    479:479:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):58 -> a
+com.android.tools.r8.joptsimple.ParserRules -> com.android.tools.r8.joptsimple.u:
+    java.lang.String HYPHEN -> a
+    1:1:void <clinit>():39:39 -> <clinit>
+    1:1:boolean isLongOptionToken(java.lang.String):55:55 -> a
+    2:2:boolean isOptionTerminator(java.lang.String):59:59 -> a
+    2:2:boolean isLongOptionToken(java.lang.String):55 -> a
+    3:3:void ensureLegalOptions(java.util.Collection):71:71 -> a
+    4:8:void ensureLegalOption(java.lang.String):63:67 -> a
+    4:8:void ensureLegalOptions(java.util.Collection):72 -> a
+    9:9:void ensureLegalOptionCharacter(char):76:76 -> a
+    9:9:void ensureLegalOption(java.lang.String):67 -> a
+    9:9:void ensureLegalOptions(java.util.Collection):72 -> a
+    10:10:boolean isAllowedPunctuation(char):82:82 -> a
+    10:10:void ensureLegalOptionCharacter(char):76 -> a
+    10:10:void ensureLegalOption(java.lang.String):67 -> a
+    10:10:void ensureLegalOptions(java.util.Collection):72 -> a
+    11:11:void ensureLegalOptionCharacter(char):77:77 -> a
+    11:11:void ensureLegalOption(java.lang.String):67 -> a
+    11:11:void ensureLegalOptions(java.util.Collection):72 -> a
+    12:12:void ensureLegalOption(java.lang.String):64:64 -> a
+    12:12:void ensureLegalOptions(java.util.Collection):72 -> a
+    1:1:boolean isOptionTerminator(java.lang.String):59:59 -> b
+    1:1:boolean isShortOptionToken(java.lang.String):49:49 -> c
+com.android.tools.r8.joptsimple.RequiredArgumentOptionSpec -> com.android.tools.r8.joptsimple.v:
+    1:1:void <init>(java.util.Collection,java.lang.String):42:42 -> <init>
+    1:4:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):47:50 -> a
+    5:5:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):48:48 -> a
+com.android.tools.r8.joptsimple.UnconfiguredOptionException -> com.android.tools.r8.joptsimple.w:
+    1:1:void <init>(java.util.Collection):45:45 -> <init>
+    1:1:java.lang.String getMessage():50:50 -> getMessage
+com.android.tools.r8.joptsimple.UnrecognizedOptionException -> com.android.tools.r8.joptsimple.x:
+    1:1:void <init>(java.lang.String):39:39 -> <init>
+    1:1:java.lang.String getMessage():44:44 -> getMessage
+com.android.tools.r8.joptsimple.ValueConversionException -> com.android.tools.r8.joptsimple.y:
+com.android.tools.r8.joptsimple.ValueConverter -> com.android.tools.r8.joptsimple.z:
+    java.lang.Object convert(java.lang.String) -> a
+    java.lang.Class valueType() -> a
+    java.lang.String valuePattern() -> b
+com.android.tools.r8.joptsimple.internal.AbbreviationMap -> com.android.tools.r8.joptsimple.A.a:
+    java.util.Map children -> c
+    java.lang.Object value -> b
+    java.lang.String key -> a
+    int keysBeyond -> d
+    1:4:void <init>():59:62 -> <init>
+    1:1:void putAll(java.lang.Iterable,java.lang.Object):128:128 -> a
+    2:2:void put(java.lang.String,java.lang.Object):111:111 -> a
+    2:2:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
+    3:4:char[] charsOf(java.lang.String):230:231 -> a
+    3:4:void put(java.lang.String,java.lang.Object):114 -> a
+    3:4:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
+    5:5:void put(java.lang.String,java.lang.Object):115:115 -> a
+    5:5:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
+    6:6:void put(java.lang.String,java.lang.Object):112:112 -> a
+    6:6:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
+    7:26:boolean add(char[],java.lang.Object,int,int):134:153 -> a
+    27:28:java.util.Map toJavaUtilMap():216:217 -> a
+    29:33:void addToMappings(java.util.Map):222:226 -> a
+    34:35:char[] charsOf(java.lang.String):230:231 -> a
+    34:35:java.lang.Object get(java.lang.String):87 -> a
+    36:42:java.lang.Object get(java.lang.String):90:96 -> a
+com.android.tools.r8.joptsimple.internal.Classes -> com.android.tools.r8.joptsimple.A.b:
+    java.util.Map WRAPPERS -> a
+    1:12:void <clinit>():35:46 -> <clinit>
+    1:1:java.lang.String shortNameOf(java.lang.String):60:60 -> a
+    2:2:java.lang.Class wrapperOf(java.lang.Class):73:73 -> a
+com.android.tools.r8.joptsimple.internal.Columns -> com.android.tools.r8.joptsimple.A.c:
+    int descriptionWidth -> b
+    int optionWidth -> a
+    1:3:void <init>(int,int):46:48 -> <init>
+    1:6:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):52:57 -> a
+    7:7:java.lang.String itemOrEmpty(java.util.List,int):63:63 -> a
+    7:7:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):57 -> a
+    8:8:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):57:57 -> a
+    9:11:java.util.List piecesOf(java.lang.String,int):67:69 -> a
+    12:20:java.util.List piecesOfEmbeddedLine(java.lang.String,int):76:84 -> a
+    12:20:java.util.List piecesOf(java.lang.String,int):70 -> a
+    21:27:java.lang.StringBuilder processNextWord(java.lang.String,java.lang.StringBuilder,int,int,int,java.util.List):97:103 -> a
+    21:27:java.util.List piecesOfEmbeddedLine(java.lang.String,int):85 -> a
+    21:27:java.util.List piecesOf(java.lang.String,int):70 -> a
+    28:32:java.util.List piecesOfEmbeddedLine(java.lang.String,int):84:88 -> a
+    28:32:java.util.List piecesOf(java.lang.String,int):70 -> a
+    33:33:java.util.List piecesOf(java.lang.String,int):70:70 -> a
+com.android.tools.r8.joptsimple.internal.ConstructorInvokingValueConverter -> com.android.tools.r8.joptsimple.A.d:
+    java.lang.reflect.Constructor ctor -> a
+    1:2:void <init>(java.lang.reflect.Constructor):41:42 -> <init>
+    1:1:java.lang.Object convert(java.lang.String):46:46 -> a
+    2:2:java.lang.Class valueType():50:50 -> a
+    java.lang.String valuePattern() -> b
+com.android.tools.r8.joptsimple.internal.MethodInvokingValueConverter -> com.android.tools.r8.joptsimple.A.e:
+    java.lang.Class clazz -> b
+    java.lang.reflect.Method method -> a
+    1:3:void <init>(java.lang.reflect.Method,java.lang.Class):42:44 -> <init>
+    1:1:java.lang.Object convert(java.lang.String):48:48 -> a
+    2:2:java.lang.Class valueType():52:52 -> a
+    java.lang.String valuePattern() -> b
+com.android.tools.r8.joptsimple.internal.Reflection -> com.android.tools.r8.joptsimple.A.f:
+    1:1:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):56:56 -> a
+    2:2:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):71:71 -> a
+    2:2:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
+    3:4:boolean meetsConverterRequirements(java.lang.reflect.Method,java.lang.Class):132:133 -> a
+    3:4:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):72 -> a
+    3:4:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
+    5:5:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):73:73 -> a
+    5:5:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
+    6:6:com.android.tools.r8.joptsimple.ValueConverter constructorConverter(java.lang.Class):84:84 -> a
+    6:6:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):62 -> a
+    7:7:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):66:66 -> a
+    8:11:java.lang.Object instantiate(java.lang.reflect.Constructor,java.lang.Object[]):102:105 -> a
+    12:15:java.lang.Object invoke(java.lang.reflect.Method,java.lang.Object[]):119:122 -> a
+    16:23:java.lang.RuntimeException reflectionException(java.lang.Exception):137:144 -> a
+com.android.tools.r8.joptsimple.internal.ReflectionException -> com.android.tools.r8.joptsimple.A.g:
+    1:1:void <init>(java.lang.Throwable):37:37 -> <init>
+com.android.tools.r8.joptsimple.internal.Row -> com.android.tools.r8.joptsimple.A.h:
+    java.lang.String option -> a
+    java.lang.String description -> b
+    1:3:void <init>(java.lang.String,java.lang.String):35:37 -> <init>
+    1:5:boolean equals(java.lang.Object):44:48 -> equals
+    1:1:int hashCode():53:53 -> hashCode
+com.android.tools.r8.joptsimple.internal.Rows -> com.android.tools.r8.joptsimple.A.i:
+    java.util.Set rows -> c
+    int widthOfWidestOption -> d
+    int widthOfWidestDescription -> e
+    int columnSeparatorWidth -> b
+    int overallWidth -> a
+    1:1:void <init>(int,int):45:45 -> <init>
+    2:8:void <init>(int,int):41:47 -> <init>
+    1:1:void add(java.lang.String,java.lang.String):51:51 -> a
+    2:4:void add(com.android.tools.r8.joptsimple.internal.Row):55:57 -> a
+    5:5:void fitToWidth():67:67 -> a
+    6:6:int optionWidth():91:91 -> a
+    6:6:void fitToWidth():67 -> a
+    7:7:int descriptionWidth():95:95 -> a
+    7:7:void fitToWidth():67 -> a
+    8:12:void fitToWidth():67:71 -> a
+    13:15:void reset():61:63 -> a
+    13:15:void fitToWidth():73 -> a
+    16:17:void fitToWidth():75:76 -> a
+    1:4:java.lang.String render():80:83 -> b
+    5:5:int optionWidth():91:91 -> b
+    5:5:java.lang.String render():83 -> b
+    6:6:java.lang.StringBuilder pad(java.lang.StringBuilder,java.lang.String,int):99:99 -> b
+    6:6:java.lang.String render():83 -> b
+    7:8:java.lang.String render():83:84 -> b
+    9:9:int descriptionWidth():95:95 -> b
+    9:9:java.lang.String render():84 -> b
+    10:10:java.lang.StringBuilder pad(java.lang.StringBuilder,java.lang.String,int):99:99 -> b
+    10:10:java.lang.String render():84 -> b
+    11:14:java.lang.String render():84:87 -> b
+com.android.tools.r8.joptsimple.internal.Strings -> com.android.tools.r8.joptsimple.A.j:
+    java.lang.String LINE_SEPARATOR -> a
+    1:1:void <clinit>():40:40 -> <clinit>
+    1:6:java.lang.String repeat(char,int):54:59 -> a
+    7:7:boolean isNullOrEmpty(java.lang.String):69:69 -> a
+    8:8:java.lang.String surround(java.lang.String,char,char):82:82 -> a
+com.android.tools.r8.joptsimple.util.KeyValuePair -> com.android.tools.r8.joptsimple.B.a:
+    java.lang.String key -> a
+    java.lang.String value -> b
+    1:3:void <init>(java.lang.String,java.lang.String):42:44 -> <init>
+    1:8:com.android.tools.r8.joptsimple.util.KeyValuePair valueOf(java.lang.String):55:62 -> a
+    1:5:boolean equals(java.lang.Object):67:71 -> equals
+    1:1:int hashCode():76:76 -> hashCode
+    1:1:java.lang.String toString():81:81 -> toString
+com.android.tools.r8.kotlin.Kotlin -> com.android.tools.r8.x.a:
+    java.lang.String NAME -> g
+    java.lang.String KOTLIN -> h
+    com.android.tools.r8.kotlin.Kotlin$Metadata metadata -> e
+    com.android.tools.r8.graph.DexType kotlinAssertions -> b
+    com.android.tools.r8.kotlin.Kotlin$Functional functional -> c
+    java.util.Map knownTypeConversion -> f
+    com.android.tools.r8.graph.DexItemFactory factory -> a
+    com.android.tools.r8.kotlin.Kotlin$Intrinsics intrinsics -> d
+    1:5:void <clinit>():26:30 -> <clinit>
+    1:44:void <init>(com.android.tools.r8.graph.DexItemFactory):46:89 -> <init>
+    45:49:void <init>(com.android.tools.r8.graph.DexItemFactory):88:92 -> <init>
+    1:1:java.lang.String addKotlinPrefix(java.lang.String):33:33 -> a
+    2:2:com.android.tools.r8.graph.DexType lambda$new$0(com.android.tools.r8.graph.DexItemFactory,java.lang.Integer):90:90 -> a
+    3:3:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):164:164 -> a
+    1:1:com.android.tools.r8.graph.DexType lambda$new$1(com.android.tools.r8.graph.DexItemFactory,java.lang.Integer):91:91 -> b
+com.android.tools.r8.kotlin.Kotlin$1 -> com.android.tools.r8.x.a$a:
+com.android.tools.r8.kotlin.Kotlin$Functional -> com.android.tools.r8.x.a$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap functions -> a
+    com.android.tools.r8.graph.DexString kotlinStyleLambdaInstanceName -> b
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.graph.DexType lambdaType -> c
+    com.android.tools.r8.graph.DexMethod lambdaInitializerMethod -> d
+    com.android.tools.r8.kotlin.Kotlin this$0 -> e
+    1:1:void <clinit>():95:95 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.kotlin.Kotlin$1):95:95 -> <init>
+    2:2:void <init>(com.android.tools.r8.kotlin.Kotlin):113:113 -> <init>
+    3:7:void <init>(com.android.tools.r8.kotlin.Kotlin):106:110 -> <init>
+    8:8:void <init>(com.android.tools.r8.kotlin.Kotlin):108:108 -> <init>
+    9:26:void <init>(com.android.tools.r8.kotlin.Kotlin):107:124 -> <init>
+    27:27:void <init>(com.android.tools.r8.kotlin.Kotlin):122:122 -> <init>
+    1:1:com.android.tools.r8.graph.DexType lambda$new$0(java.lang.Integer):109:109 -> a
+    2:2:int getArity(com.android.tools.r8.graph.DexType):132:132 -> a
+    3:3:boolean isFunctionInterface(com.android.tools.r8.graph.DexType):128:128 -> a
+    3:3:int getArity(com.android.tools.r8.graph.DexType):132 -> a
+    4:6:int getArity(com.android.tools.r8.graph.DexType):132:134 -> a
+    1:1:boolean isFunctionInterface(com.android.tools.r8.graph.DexType):128:128 -> b
+com.android.tools.r8.kotlin.Kotlin$Intrinsics -> com.android.tools.r8.x.a$c:
+    com.android.tools.r8.graph.DexType type -> a
+    com.android.tools.r8.graph.DexMethod throwNpe -> d
+    com.android.tools.r8.graph.DexMethod checkParameterIsNotNull -> c
+    com.android.tools.r8.graph.DexMethod throwParameterIsNullException -> b
+    com.android.tools.r8.kotlin.Kotlin this$0 -> e
+    1:4:void <init>(com.android.tools.r8.kotlin.Kotlin):151:154 -> <init>
+    5:8:void <init>(com.android.tools.r8.kotlin.Kotlin):153:156 -> <init>
+    9:13:void <init>(com.android.tools.r8.kotlin.Kotlin):155:159 -> <init>
+    14:14:void <init>(com.android.tools.r8.kotlin.Kotlin):158:158 -> <init>
+com.android.tools.r8.kotlin.Kotlin$Metadata -> com.android.tools.r8.x.a$d:
+    com.android.tools.r8.graph.DexString kind -> b
+    com.android.tools.r8.graph.DexString metadataVersion -> c
+    com.android.tools.r8.graph.DexString bytecodeVersion -> d
+    com.android.tools.r8.kotlin.Kotlin this$0 -> j
+    com.android.tools.r8.graph.DexString data1 -> e
+    com.android.tools.r8.graph.DexString data2 -> f
+    com.android.tools.r8.graph.DexString extraString -> g
+    com.android.tools.r8.graph.DexString packageName -> h
+    com.android.tools.r8.graph.DexString extraInt -> i
+    com.android.tools.r8.graph.DexType kotlinMetadataType -> a
+    1:10:void <init>(com.android.tools.r8.kotlin.Kotlin):138:147 -> <init>
+com.android.tools.r8.kotlin.KotlinClass -> com.android.tools.r8.x.b:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass kmClass -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class,com.android.tools.r8.graph.DexClass):41:41 -> <init>
+    com.android.tools.r8.kotlin.KotlinClass asClass() -> a
+    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):29:29 -> a
+    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class):46:46 -> a
+    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):29 -> a
+    3:5:com.android.tools.r8.kotlin.KotlinClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):35:37 -> a
+    6:10:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):51:55 -> a
+    11:11:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass.getName():44:44 -> a
+    11:11:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):55 -> a
+    12:12:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):55:55 -> a
+    13:13:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass.getName():44:44 -> a
+    13:13:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):55 -> a
+    14:14:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):56:56 -> a
+    15:59:void com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass.setName(java.lang.String):0:44 -> a
+    15:59:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):56 -> a
+    60:117:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):61:118 -> a
+    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():123:125 -> e
+    boolean isClass() -> f
+    1:1:java.lang.String toString():145:145 -> toString
+com.android.tools.r8.kotlin.KotlinClassFacade -> com.android.tools.r8.x.c:
+    java.util.List partClassNames -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade,com.android.tools.r8.graph.DexClass):36:36 -> <init>
+    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):22:22 -> a
+    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade):42:42 -> a
+    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):22 -> a
+    3:6:com.android.tools.r8.kotlin.KotlinClassFacade fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):29:32 -> a
+    7:12:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):48:53 -> a
+    13:13:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):52:52 -> a
+    14:18:java.lang.String com.android.tools.r8.kotlin.KotlinMetadataSynthesizer.toRenamedBinaryName(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):65:69 -> a
+    14:18:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):54 -> a
+    19:19:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):56:56 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():65:65 -> e
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer,java.util.List,int[],int[],int,int,java.lang.Object):241:242 -> e
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List):0 -> e
+    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():65 -> e
+    4:368:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List,int[],int[],int):0:364 -> e
+    4:368:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer,java.util.List,int[],int[],int,int,java.lang.Object):243 -> e
+    4:368:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List):0 -> e
+    4:368:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():65 -> e
+    369:369:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List,int[],int[],int):247:247 -> e
+    369:369:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer,java.util.List,int[],int[],int,int,java.lang.Object):243 -> e
+    369:369:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List):0 -> e
+    369:369:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():65 -> e
+    370:374:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List,int[],int[],int):245:249 -> e
+    370:374:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer,java.util.List,int[],int[],int,int,java.lang.Object):243 -> e
+    370:374:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List):0 -> e
+    370:374:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():65 -> e
+    375:375:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():65:65 -> e
+    376:376:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List,int[],int[],int):364:364 -> e
+    376:376:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer,java.util.List,int[],int[],int,int,java.lang.Object):243 -> e
+    376:376:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade$Writer.write(java.util.List):0 -> e
+    376:376:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():65 -> e
+    1:2:java.lang.String toString():85:86 -> toString
+com.android.tools.r8.kotlin.KotlinClassMetadataReader -> com.android.tools.r8.x.e:
+    1:12:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):28:39 -> a
+    13:13:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):37:37 -> a
+    14:17:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):33:33 -> a
+    18:43:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):47:72 -> a
+    18:43:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    44:385:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0:341 -> a
+    44:385:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    44:385:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    44:385:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    386:399:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):339:352 -> a
+    386:399:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    386:399:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    386:399:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    400:400:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):351:351 -> a
+    400:400:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    400:400:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    400:400:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    401:401:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):350:350 -> a
+    401:401:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    401:401:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    401:401:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    402:402:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):349:349 -> a
+    402:402:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    402:402:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    402:402:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    403:403:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):348:348 -> a
+    403:403:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    403:403:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    403:403:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    404:409:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):347:352 -> a
+    404:409:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    404:409:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    404:409:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    410:424:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):80:94 -> a
+    425:425:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):357:357 -> a
+    425:425:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    425:425:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    425:425:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    426:426:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):355:355 -> a
+    426:426:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
+    426:426:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):73 -> a
+    426:426:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    427:427:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):54:54 -> a
+    427:427:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):78 -> a
+    428:435:int[] getUnboxedIntArray(com.android.tools.r8.graph.DexValue,java.lang.String):99:106 -> a
+    436:436:int[] getUnboxedIntArray(com.android.tools.r8.graph.DexValue,java.lang.String):100:100 -> a
+    1:4:java.lang.String getUnboxedString(com.android.tools.r8.graph.DexValue,java.lang.String):125:128 -> b
+    5:5:java.lang.String getUnboxedString(com.android.tools.r8.graph.DexValue,java.lang.String):126:126 -> b
+    1:8:java.lang.String[] getUnboxedStringArray(com.android.tools.r8.graph.DexValue,java.lang.String):112:119 -> c
+    9:9:java.lang.String[] getUnboxedStringArray(com.android.tools.r8.graph.DexValue,java.lang.String):113:113 -> c
+com.android.tools.r8.kotlin.KotlinClassMetadataReader$MetadataError -> com.android.tools.r8.x.d:
+    1:1:void <init>(java.lang.String):133:133 -> <init>
+com.android.tools.r8.kotlin.KotlinClassPart -> com.android.tools.r8.x.f:
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage kmPackage -> c
+    java.lang.String facadeClassName -> d
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart,com.android.tools.r8.graph.DexClass):34:34 -> <init>
+    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):19:19 -> a
+    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart):39:39 -> a
+    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):19 -> a
+    3:3:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart.getFacadeClassName():271:271 -> a
+    3:3:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart):40 -> a
+    3:3:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):19 -> a
+    4:4:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart):40:40 -> a
+    4:4:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):19 -> a
+    5:8:com.android.tools.r8.kotlin.KotlinClassPart fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):27:30 -> a
+    9:11:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):45:45 -> a
+    12:16:java.lang.String com.android.tools.r8.kotlin.KotlinMetadataSynthesizer.toRenamedBinaryName(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):65:69 -> a
+    12:16:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):47 -> a
+    17:21:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):47:51 -> a
+    com.android.tools.r8.kotlin.KotlinClassPart asClassPart() -> b
+    1:10:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():56:65 -> e
+    boolean isClassPart() -> g
+    1:1:java.lang.String toString():86:86 -> toString
+com.android.tools.r8.kotlin.KotlinFile -> com.android.tools.r8.x.g:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage kmPackage -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade,com.android.tools.r8.graph.DexClass):28:28 -> <init>
+    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):15:15 -> a
+    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade):33:33 -> a
+    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):15 -> a
+    3:6:com.android.tools.r8.kotlin.KotlinFile fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):21:24 -> a
+    7:10:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):38:41 -> a
+    com.android.tools.r8.kotlin.KotlinFile asFile() -> c
+    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():46:48 -> e
+    boolean isFile() -> h
+    1:1:java.lang.String toString():68:68 -> toString
+com.android.tools.r8.kotlin.KotlinInfo -> com.android.tools.r8.x.h:
+    com.android.tools.r8.graph.DexClass clazz -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():27:27 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):30:33 -> <init>
+    com.android.tools.r8.kotlin.KotlinClass asClass() -> a
+    void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata) -> a
+    void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens) -> a
+    1:44:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):102:145 -> a
+    45:45:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):139:139 -> a
+    46:46:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):133:133 -> a
+    47:62:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):127:142 -> a
+    63:63:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):136:136 -> a
+    64:64:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):130:130 -> a
+    65:119:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):113:167 -> a
+    120:135:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):347:362 -> a
+    120:135:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    136:208:com.android.tools.r8.graph.DexField com.android.tools.r8.naming.NamingLens.lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):0:72 -> a
+    136:208:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):362 -> a
+    136:208:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    209:209:com.android.tools.r8.graph.DexField com.android.tools.r8.naming.NamingLens.lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):69:69 -> a
+    209:209:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):362 -> a
+    209:209:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    210:217:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):363:370 -> a
+    210:217:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    218:319:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setFieldSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature):0:101 -> a
+    218:319:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):370 -> a
+    218:319:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    320:331:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$GetterSetterCriteria com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.checkGetterCriteria():509:520 -> a
+    320:331:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):373 -> a
+    320:331:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    332:372:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):374:414 -> a
+    332:372:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    373:485:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setGetterSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):0:112 -> a
+    373:485:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):414 -> a
+    373:485:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    486:500:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$GetterSetterCriteria com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.checkSetterCriteria():529:543 -> a
+    486:500:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):417 -> a
+    486:500:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    501:562:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):418:479 -> a
+    501:562:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    563:686:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSetterSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):0:123 -> a
+    563:686:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):479 -> a
+    563:686:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    687:693:com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup.toRenamedKmProperty(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):487:493 -> a
+    687:693:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):171 -> a
+    694:694:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):173:173 -> a
+    695:695:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder lambda$rewriteDeclarationContainer$0(com.android.tools.r8.graph.DexEncodedMethod,java.lang.String,java.lang.String):124:124 -> a
+    696:696:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder lambda$rewriteDeclarationContainer$1(com.android.tools.r8.graph.DexEncodedField,java.lang.String,java.lang.String):159:159 -> a
+    com.android.tools.r8.kotlin.KotlinClassPart asClassPart() -> b
+    com.android.tools.r8.kotlin.KotlinFile asFile() -> c
+    com.android.tools.r8.kotlin.KotlinSyntheticClass asSyntheticClass() -> d
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader() -> e
+    boolean isClass() -> f
+    boolean isClassPart() -> g
+    boolean isFile() -> h
+    boolean isSyntheticClass() -> i
+com.android.tools.r8.kotlin.KotlinMemberInfo -> com.android.tools.r8.x.i:
+    com.android.tools.r8.kotlin.KotlinMemberInfo NO_KOTLIN_MEMBER_INFO -> g
+    java.util.List EMPTY_PARAM_INFO -> f
+    java.util.List EMPTY_PARAM -> e
+    java.util.List valueParameterInfos -> d
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind memberKind -> a
+    boolean $assertionsDisabled -> h
+    int flag -> b
+    java.lang.String propertyName -> c
+    1:5:void <clinit>():28:32 -> <clinit>
+    6:6:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.util.List):50:50 -> <clinit>
+    6:6:void <clinit>():32 -> <clinit>
+    7:7:void <clinit>():32:32 -> <clinit>
+    1:11:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.lang.String,java.util.List):72:82 -> <init>
+    1:1:com.android.tools.r8.kotlin.KotlinMemberInfo getNoKotlinMemberInfo():36:36 -> a
+    2:8:com.android.tools.r8.kotlin.KotlinValueParameterInfo getValueParameterInfo(int):88:94 -> a
+    9:9:boolean com.android.tools.r8.kotlin.KotlinInfo.hasDeclarations():93:93 -> a
+    9:9:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.kotlin.KotlinInfo,com.android.tools.r8.utils.Reporter):144 -> a
+    10:17:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.kotlin.KotlinInfo,com.android.tools.r8.utils.Reporter):147:154 -> a
+    18:49:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):160:191 -> a
+    50:50:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.lang.String):55:55 -> a
+    50:50:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):191 -> a
+    51:69:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):189:207 -> a
+    70:70:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.util.List):50:50 -> a
+    70:70:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):207 -> a
+    71:81:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):203:213 -> a
+    82:82:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.util.List):50:50 -> a
+    82:82:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):213 -> a
+    83:96:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):209:222 -> a
+    97:97:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.lang.String):55:55 -> a
+    97:97:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):222 -> a
+    98:106:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):218:226 -> a
+    107:107:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.lang.String):55:55 -> a
+    107:107:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):226 -> a
+    108:120:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):224:236 -> a
+    121:121:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.lang.String,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter):65:65 -> a
+    121:121:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):236 -> a
+    122:122:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.lang.String,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter):64:64 -> a
+    122:122:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):236 -> a
+    123:135:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):231:243 -> a
+    136:136:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.lang.String,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter):65:65 -> a
+    136:136:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):243 -> a
+    137:137:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int,java.lang.String,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter):64:64 -> a
+    137:137:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):243 -> a
+    138:138:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.utils.Reporter):238:238 -> a
+    139:141:void lambda$markKotlinMemberInfo$0(com.android.tools.r8.utils.Reporter,java.util.Map,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction):166:168 -> a
+    142:150:void lambda$markKotlinMemberInfo$1(com.android.tools.r8.utils.Reporter,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty):172:180 -> a
+com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind -> com.android.tools.r8.x.i$a:
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind EXTENSION_PROPERTY_SETTER -> i
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind EXTENSION_PROPERTY_GETTER -> h
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind PROPERTY_ANNOTATIONS -> g
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind PROPERTY_SETTER -> f
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind[] $VALUES -> k
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind EXTENSION_PROPERTY_ANNOTATIONS -> j
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind NONE -> a
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind PROPERTY_GETTER -> e
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind PROPERTY_BACKING_FIELD -> d
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind EXTENSION_FUNCTION -> c
+    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind FUNCTION -> b
+    1:14:void <clinit>():98:111 -> <clinit>
+    15:15:void <clinit>():97:97 -> <clinit>
+    1:1:void <init>(java.lang.String,int):97:97 -> <init>
+    1:1:boolean isExtensionProperty():136:136 -> a
+com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils -> com.android.tools.r8.x.p:
+    java.util.Map knownTypeConversion -> a
+    boolean $assertionsDisabled -> b
+    1:30:void <clinit>():38:67 -> <clinit>
+    31:38:void <clinit>():65:72 -> <clinit>
+    39:44:void <clinit>():71:76 -> <clinit>
+    45:55:void <clinit>():75:85 -> <clinit>
+    56:60:void <clinit>():84:88 -> <clinit>
+    1:1:java.lang.String access$600(java.lang.String):38:38 -> a
+    2:2:java.lang.String lambda$static$6(java.lang.Integer):86:86 -> a
+    3:23:java.lang.String remapKotlinTypeInDesc(java.lang.String,com.android.tools.r8.utils.Reporter):105:125 -> a
+    3:23:java.lang.String access$100(java.lang.String,com.android.tools.r8.utils.Reporter):38 -> a
+    24:24:java.lang.String remapKotlinTypeInDesc(java.lang.String,com.android.tools.r8.utils.Reporter):117:117 -> a
+    24:24:java.lang.String access$100(java.lang.String,com.android.tools.r8.utils.Reporter):38 -> a
+    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature toJvmFieldSignature(com.android.tools.r8.graph.DexField):129:129 -> a
+    26:33:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.graph.DexMethod):133:140 -> a
+    1:1:java.lang.String lambda$static$0(java.lang.String):68:68 -> b
+    2:2:java.lang.String lambda$static$7(java.lang.Integer):87:87 -> b
+    1:1:java.lang.String lambda$static$1(java.lang.String):69:69 -> c
+    1:1:java.lang.String lambda$static$2(java.lang.String):73:73 -> d
+    1:1:java.lang.String lambda$static$3(java.lang.String):74:74 -> e
+    1:1:java.lang.String lambda$static$4(java.lang.String):77:77 -> f
+    1:1:java.lang.String lambda$static$5(java.lang.String):78:78 -> g
+    1:2:java.lang.String remapKotlinType(java.lang.String):91:92 -> h
+com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor -> com.android.tools.r8.x.l:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature signature -> a
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction,com.android.tools.r8.utils.Reporter):179:179 -> <init>
+    2:23:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction,com.android.tools.r8.utils.Reporter):177:198 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$200(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor):175:175 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$202(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):175:175 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature signature():204:204 -> a
+com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor$1 -> com.android.tools.r8.x.k:
+    com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor this$0 -> b
+    1:1:void <init>(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor):180:180 -> <init>
+    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):183:186 -> a
+com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor$1$1 -> com.android.tools.r8.x.j:
+    com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor$1 this$1 -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():186:186 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor$1):186:186 -> <init>
+    1:2:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):189:190 -> a
+com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor -> com.android.tools.r8.x.o:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature fieldSignature -> a
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature getterSignature -> b
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature setterSignature -> c
+    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty,com.android.tools.r8.utils.Reporter):215:215 -> <init>
+    2:47:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty,com.android.tools.r8.utils.Reporter):209:254 -> <init>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature access$300(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor):208:208 -> a
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature access$302(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature):208:208 -> a
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$402(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):208:208 -> a
+    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature fieldSignature():260:260 -> a
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$400(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor):208:208 -> b
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$502(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):208:208 -> b
+    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature getterSignature():264:264 -> b
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$500(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor):208:208 -> c
+    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature setterSignature():268:268 -> c
+com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor$1 -> com.android.tools.r8.x.n:
+    com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor this$0 -> b
+    1:1:void <init>(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor):216:216 -> <init>
+    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):219:222 -> a
+com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor$1$1 -> com.android.tools.r8.x.m:
+    com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor$1 this$1 -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():222:222 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor$1):222:222 -> <init>
+    1:6:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):229:234 -> a
+com.android.tools.r8.kotlin.KotlinMetadataRewriter -> com.android.tools.r8.x.q:
+    com.android.tools.r8.graph.DexItemFactory factory -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.naming.NamingLens lens -> b
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.kotlin.Kotlin kotlin -> d
+    1:1:void <clinit>():26:26 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):33:37 -> <init>
+    com.android.tools.r8.graph.DexAnnotation lambda$run$1(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation) -> a
+    1:5:void removeKotlinMetadataFromRenamedClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):50:54 -> a
+    6:7:boolean isNotKotlinMetadata(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexAnnotation):59:60 -> a
+    6:7:boolean lambda$removeKotlinMetadataFromRenamedClass$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexAnnotation):50 -> a
+    8:10:void run(java.util.concurrent.ExecutorService):64:64 -> a
+    11:18:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):67:74 -> a
+    19:35:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):73:89 -> a
+    36:38:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):98:100 -> a
+    36:38:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    39:43:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):99:103 -> a
+    39:43:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    44:49:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):101:106 -> a
+    44:49:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    50:54:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):104:108 -> a
+    50:54:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    55:58:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):107:110 -> a
+    55:58:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    59:64:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):109:114 -> a
+    59:64:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    65:72:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):111:118 -> a
+    65:72:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    73:79:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):115:121 -> a
+    73:79:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    80:86:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):119:125 -> a
+    80:86:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):89 -> a
+    87:87:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):91:91 -> a
+    88:88:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):90:90 -> a
+    89:93:com.android.tools.r8.graph.DexValue$DexValueArray createIntArray(int[]):129:133 -> a
+    94:98:com.android.tools.r8.graph.DexValue$DexValueArray createStringArray(java.lang.String[]):137:141 -> a
+    99:99:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    99:99:void removeKotlinMetadataFromRenamedClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):41 -> a
+    100:100:void removeKotlinMetadataFromRenamedClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):45:45 -> a
+com.android.tools.r8.kotlin.KotlinMetadataSynthesizer -> com.android.tools.r8.x.v:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter access$200(com.android.tools.r8.kotlin.KotlinValueParameterInfo,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):32:32 -> a
+    2:2:boolean isExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction):35:35 -> a
+    3:3:boolean isExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty):39:39 -> a
+    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toKmType(java.lang.String):43:44 -> a
+    6:19:java.lang.String toRenamedClassifier(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):75:88 -> a
+    20:25:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):112:117 -> a
+    26:26:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):0:0 -> a
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):117 -> a
+    27:52:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmConstructorExtension com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmExtensionNodesKt.getJvm(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor):0:25 -> a
+    27:52:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):145 -> a
+    27:52:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):117 -> a
+    53:53:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):145:145 -> a
+    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):117 -> a
+    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):118:119 -> a
+    56:69:boolean populateKmValueParameters(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):175:188 -> a
+    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toRenamedKmType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):93:100 -> b
+    9:25:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunction(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):131:147 -> b
+    26:26:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):0:0 -> b
+    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunction(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):147 -> b
+    27:46:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmFunctionExtension com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmExtensionNodesKt.getJvm(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction):0:19 -> b
+    27:46:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):71 -> b
+    27:46:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunction(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):147 -> b
+    47:47:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):71:71 -> b
+    47:47:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunction(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):147 -> b
+    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunction(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):148:148 -> b
+    49:361:void com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction.setReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):0:312 -> b
+    49:361:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunction(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):152 -> b
+    362:373:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunction(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):153:164 -> b
+    374:391:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter toRewrittenKmValueParameter(com.android.tools.r8.kotlin.KotlinValueParameterInfo,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):199:216 -> b
+    1:4:com.android.tools.r8.graph.DexType toRenamedType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):52:55 -> c
+    5:5:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    5:5:com.android.tools.r8.graph.DexType toRenamedType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):57 -> c
+    6:7:com.android.tools.r8.graph.DexType toRenamedType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):58:59 -> c
+com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$1 -> com.android.tools.r8.x.r:
+com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup -> com.android.tools.r8.x.u:
+    com.android.tools.r8.graph.DexEncodedMethod setter -> e
+    com.android.tools.r8.graph.DexEncodedMethod getter -> d
+    boolean isExtension -> g
+    boolean $assertionsDisabled -> h
+    java.lang.String name -> b
+    com.android.tools.r8.graph.DexEncodedField field -> c
+    int flag -> a
+    com.android.tools.r8.graph.DexEncodedMethod annotations -> f
+    1:1:void <clinit>():246:246 -> <clinit>
+    1:1:void <init>(int,java.lang.String,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,boolean,com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$1):246:246 -> <init>
+    2:9:void <init>(int,java.lang.String,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,boolean):262:269 -> <init>
+    1:1:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder builder(int,java.lang.String):273:273 -> a
+    1:29:java.lang.String toString():549:577 -> toString
+com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder -> com.android.tools.r8.x.s:
+    boolean isExtensionAnnotations -> i
+    com.android.tools.r8.graph.DexEncodedMethod setter -> e
+    com.android.tools.r8.graph.DexEncodedMethod getter -> d
+    boolean isExtensionGetter -> g
+    boolean isExtensionSetter -> h
+    java.lang.String name -> b
+    com.android.tools.r8.graph.DexEncodedField field -> c
+    int flag -> a
+    com.android.tools.r8.graph.DexEncodedMethod annotations -> f
+    1:1:void <init>(int,java.lang.String,com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$1):276:276 -> <init>
+    2:4:void <init>(int,java.lang.String):288:290 -> <init>
+    1:1:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder foundBackingField(com.android.tools.r8.graph.DexEncodedField):294:294 -> a
+    2:2:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder foundAnnotations(com.android.tools.r8.graph.DexEncodedMethod):309:309 -> a
+    3:16:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup build():329:342 -> a
+    1:1:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder foundGetter(com.android.tools.r8.graph.DexEncodedMethod):299:299 -> b
+    2:2:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder isExtensionAnnotations():324:324 -> b
+    1:1:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder foundSetter(com.android.tools.r8.graph.DexEncodedMethod):304:304 -> c
+    2:2:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder isExtensionGetter():314:314 -> c
+    1:1:com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$Builder isExtensionSetter():319:319 -> d
+com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$GetterSetterCriteria -> com.android.tools.r8.x.t:
+    com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$GetterSetterCriteria NOT_AVAILABLE -> a
+    com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$GetterSetterCriteria VIOLATE -> c
+    com.android.tools.r8.kotlin.KotlinMetadataSynthesizer$KmPropertyGroup$GetterSetterCriteria MET -> b
+    1:3:void <clinit>():499:501 -> <clinit>
+    1:1:void <init>(java.lang.String,int):498:498 -> <init>
+com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser -> com.android.tools.r8.x.w:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:21:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):113:133 -> a
+    22:22:boolean com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$BufferedStringReader.readExpectedLine(java.lang.String):53:53 -> a
+    22:22:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):135 -> a
+    23:23:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):169:169 -> a
+    24:55:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):138:169 -> a
+    56:76:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):143:163 -> a
+    77:77:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder.build():273:273 -> a
+    77:77:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):168 -> a
+    78:78:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):169:169 -> a
+    79:79:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):164:164 -> a
+    80:80:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):152:152 -> a
+    81:118:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):132:169 -> a
+    119:119:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148:148 -> a
+    120:134:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):178:192 -> a
+    120:134:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
+    135:135:int asInteger(java.lang.String):205:205 -> a
+    135:135:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):192 -> a
+    135:135:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
+    136:139:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):193:196 -> a
+    136:139:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
+    140:140:int asInteger(java.lang.String):207:207 -> a
+    140:140:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):192 -> a
+    140:140:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
+    141:141:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):189:189 -> a
+    141:141:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
+    142:142:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):185:185 -> a
+    142:142:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
+    143:143:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):180:180 -> a
+    143:143:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
+    1:1:void lambda$parse$1(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):160:160 -> b
+    2:26:void addDebugEntryToBuilder(java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):220:244 -> b
+    2:26:void lambda$parse$1(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):160 -> b
+    27:34:void addDebugEntryToBuilder(java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):239:246 -> b
+    27:34:void lambda$parse$1(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):160 -> b
+com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$1 -> com.android.tools.r8.x.w$a:
+com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$BufferedStringReader -> com.android.tools.r8.x.w$b:
+    java.io.BufferedReader reader -> a
+    java.lang.String readLine -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():38:38 -> <clinit>
+    1:2:void <init>(java.lang.String):44:45 -> <init>
+    1:1:boolean readExpectedLine(java.lang.String):53:53 -> a
+    1:1:void readExpectedLineOrThrow(java.lang.String):58 -> a
+    2:2:void readExpectedLineOrThrow(java.lang.String):59:59 -> a
+    3:3:boolean isEOF():65:65 -> a
+    4:22:void readUntil(java.lang.String,int,com.android.tools.r8.utils.ThrowingConsumer):83:101 -> a
+    1:1:java.lang.String readNextLine():49:49 -> b
+    2:5:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$BufferedStringReader readUntil(java.lang.String):69:72 -> b
+    1:1:void close():108:108 -> close
+com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$KotlinSourceDebugExtensionParserException -> com.android.tools.r8.x.w$c:
+    1:1:void <init>(java.lang.String):34:34 -> <init>
+com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Position -> com.android.tools.r8.x.w$d:
+    com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Source source -> a
+    com.android.tools.r8.naming.Range range -> b
+    1:3:void <init>(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Source,com.android.tools.r8.naming.Range):304:306 -> <init>
+    1:1:com.android.tools.r8.naming.Range getRange():314:314 -> a
+    1:1:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Source getSource():310:310 -> b
+    1:10:java.lang.String toString():319:328 -> toString
+com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result -> com.android.tools.r8.x.w$e:
+    com.android.tools.r8.utils.SegmentTree segmentTree -> a
+    1:2:void <init>(com.android.tools.r8.utils.SegmentTree):254:255 -> <init>
+    1:1:java.util.Map$Entry lookup(int):259:259 -> a
+    2:2:int size():263:263 -> a
+com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder -> com.android.tools.r8.x.w$f:
+    java.util.Map files -> b
+    com.android.tools.r8.utils.SegmentTree segmentTree -> a
+    1:4:void <init>():267:270 -> <init>
+com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Source -> com.android.tools.r8.x.w$g:
+    java.lang.String fileName -> a
+    java.lang.String path -> b
+    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$1):277:277 -> <init>
+    2:4:void <init>(java.lang.String,java.lang.String):281:283 -> <init>
+    1:1:java.lang.String getFileName():287:287 -> a
+    1:1:java.lang.String getPath():291:291 -> b
+    1:1:java.lang.String toString():296:296 -> toString
+com.android.tools.r8.kotlin.KotlinSyntheticClass -> com.android.tools.r8.x.y:
+    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass metadata -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour flavour -> d
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.graph.DexClass):42:43 -> <init>
+    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):14:14 -> a
+    2:3:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass):48:49 -> a
+    2:3:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):14 -> a
+    4:5:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):28:29 -> a
+    6:6:boolean isKotlinStyleLambda(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):103:103 -> a
+    6:6:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):31 -> a
+    7:7:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):32:32 -> a
+    8:10:boolean isJavaStyleLambda(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):116:118 -> a
+    8:10:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):33 -> a
+    11:13:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):34:36 -> a
+    14:16:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):57:57 -> a
+    18:18:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):59:59 -> a
+    com.android.tools.r8.kotlin.KotlinSyntheticClass asSyntheticClass() -> d
+    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():65:65 -> e
+    boolean isSyntheticClass() -> i
+    1:1:boolean isJavaStyleLambda():77:77 -> j
+    1:1:boolean isKotlinStyleLambda():73:73 -> k
+    1:1:java.lang.String toString():123:123 -> toString
+com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour -> com.android.tools.r8.x.x:
+    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour Unclassified -> c
+    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour JavaStyleLambda -> b
+    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour KotlinStyleLambda -> a
+    1:3:void <clinit>():19:21 -> <clinit>
+    1:1:void <init>(java.lang.String,int):18:18 -> <init>
+com.android.tools.r8.kotlin.KotlinValueParameterInfo -> com.android.tools.r8.x.z:
+    java.lang.String name -> a
+    int flag -> b
+    boolean isVararg -> c
+    1:4:void <init>(java.lang.String,int,boolean):18:21 -> <init>
+    1:4:com.android.tools.r8.kotlin.KotlinValueParameterInfo fromKmValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter):25:28 -> a
+com.android.tools.r8.logging.Log -> com.android.tools.r8.y.a:
+    java.util.Set CLASS_FILTER -> b
+    boolean ENABLED -> a
+    1:1:void <clinit>():12:12 -> <clinit>
+    2:11:java.util.Set getClassFilter():57:66 -> <clinit>
+    2:11:void <clinit>():19 -> <clinit>
+    12:12:void <clinit>():19:19 -> <clinit>
+    1:2:void debug(java.lang.Class,java.lang.String,java.lang.Object[]):34:35 -> a
+    3:3:boolean isLoggingEnabledFor(java.lang.Class):46:46 -> a
+    4:7:void log(java.lang.String,java.lang.Class,java.lang.String,java.lang.Object[]):50:53 -> a
+    1:2:void info(java.lang.Class,java.lang.String,java.lang.Object[]):28:29 -> b
+    1:2:void warn(java.lang.Class,java.lang.String,java.lang.Object[]):40:41 -> c
+com.android.tools.r8.naming.ApplyMappingError -> com.android.tools.r8.naming.a:
+    1:1:void <init>(java.lang.String,com.android.tools.r8.position.Position):26:26 -> <init>
+    1:2:com.android.tools.r8.naming.ApplyMappingError mapToExistingClass(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):31:32 -> a
+    1:2:com.android.tools.r8.naming.ApplyMappingError mapToExistingMember(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38:39 -> b
+com.android.tools.r8.naming.ClassNameMapper -> com.android.tools.r8.naming.b:
+    java.util.Map signatureMap -> c
+    com.android.tools.r8.utils.BiMapContainer nameMapping -> b
+    com.android.tools.r8.com.google.common.collect.ImmutableMap classNameMappings -> a
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():37:37 -> <clinit>
+    1:1:void <init>(java.util.Map,com.android.tools.r8.naming.ClassNameMapper$1):37:37 -> <init>
+    2:2:void <init>(java.util.Map):108:108 -> <init>
+    3:10:void <init>(java.util.Map):106:113 -> <init>
+    1:1:com.android.tools.r8.naming.ClassNameMapper$Builder builder():67:67 -> a
+    2:2:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path):76:76 -> a
+    3:9:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path,com.android.tools.r8.naming.ClassNameMapper$MissingFileAction):81:87 -> a
+    10:10:com.android.tools.r8.naming.ClassNameMapper mapperFromInputStream(java.io.InputStream):71:71 -> a
+    10:10:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path,com.android.tools.r8.naming.ClassNameMapper$MissingFileAction):87 -> a
+    11:16:com.android.tools.r8.naming.ClassNameMapper mapperFromBufferedReader(java.io.BufferedReader):96:96 -> a
+    20:20:com.android.tools.r8.naming.ClassNameMapper mapperFromBufferedReader(java.io.BufferedReader):100:100 -> a
+    21:24:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):126:129 -> a
+    25:25:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
+    25:25:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):129 -> a
+    26:28:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):129:131 -> a
+    29:29:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
+    29:29:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):131 -> a
+    30:30:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):133:133 -> a
+    31:35:com.android.tools.r8.naming.MemberNaming$Signature canonicalizeSignature(com.android.tools.r8.naming.MemberNaming$Signature):117:121 -> a
+    31:35:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):135 -> a
+    36:36:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):135:135 -> a
+    37:37:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):139:139 -> a
+    38:38:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
+    38:38:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):139 -> a
+    39:39:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140:140 -> a
+    40:44:com.android.tools.r8.naming.MemberNaming$Signature canonicalizeSignature(com.android.tools.r8.naming.MemberNaming$Signature):117:121 -> a
+    40:44:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140 -> a
+    45:45:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140:140 -> a
+    46:50:java.lang.String deobfuscateClassName(java.lang.String):150:154 -> a
+    51:55:void write(java.io.Writer):180:184 -> a
+    56:56:java.lang.String lambda$write$0(com.android.tools.r8.naming.ClassNamingForNameMapper):182:182 -> a
+    57:64:java.lang.String originalNameOf(com.android.tools.r8.graph.IndexedDexItem):223:230 -> a
+    65:74:java.lang.String lookupName(com.android.tools.r8.naming.MemberNaming$Signature,com.android.tools.r8.graph.DexType):235:244 -> a
+    75:75:java.lang.String originalNameOf(com.android.tools.r8.graph.DexType):276:276 -> a
+    76:76:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
+    76:76:java.lang.String originalNameOf(com.android.tools.r8.graph.DexType):276 -> a
+    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper getClassNaming(java.lang.String):174:174 -> b
+    2:2:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():200:200 -> b
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder com.android.tools.r8.com.google.common.collect.ImmutableBiMap.builder():122:122 -> b
+    3:3:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():201 -> b
+    4:10:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():202:208 -> b
+    11:21:com.android.tools.r8.naming.MemberNaming$MethodSignature originalSignatureOf(com.android.tools.r8.graph.DexMethod):248:258 -> b
+    22:32:com.android.tools.r8.naming.MemberNaming$FieldSignature originalSignatureOf(com.android.tools.r8.graph.DexField):262:272 -> b
+    1:1:com.android.tools.r8.naming.ClassNameMapper mapperFromString(java.lang.String):91:91 -> c
+    2:3:java.io.BufferedReader com.android.tools.r8.com.google.common.io.CharSource.openBufferedStream():113:114 -> c
+    2:3:com.android.tools.r8.naming.ClassNameMapper mapperFromString(java.lang.String):91 -> c
+    4:4:com.android.tools.r8.naming.ClassNameMapper mapperFromString(java.lang.String):91:91 -> c
+    1:2:boolean equals(java.lang.Object):213:214 -> equals
+    1:1:int hashCode():219:219 -> hashCode
+    1:5:java.lang.String toString():191:195 -> toString
+com.android.tools.r8.naming.ClassNameMapper$1 -> com.android.tools.r8.naming.b$a:
+com.android.tools.r8.naming.ClassNameMapper$Builder -> com.android.tools.r8.naming.b$b:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder mapBuilder -> a
+    1:1:void <init>(com.android.tools.r8.naming.ClassNameMapper$1):44:44 -> <init>
+    2:3:void <init>():47:48 -> <init>
+    1:1:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):44:44 -> a
+    2:2:com.android.tools.r8.naming.ClassNameMapper build():62:62 -> a
+    1:2:com.android.tools.r8.naming.ClassNamingForNameMapper$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):55:56 -> b
+com.android.tools.r8.naming.ClassNameMapper$MissingFileAction -> com.android.tools.r8.naming.b$c:
+    com.android.tools.r8.naming.ClassNameMapper$MissingFileAction MISSING_FILE_IS_ERROR -> b
+    com.android.tools.r8.naming.ClassNameMapper$MissingFileAction MISSING_FILE_IS_EMPTY_MAP -> a
+    1:2:void <clinit>():40:41 -> <clinit>
+    1:1:void <init>(java.lang.String,int):39:39 -> <init>
+com.android.tools.r8.naming.ClassNameMinifier -> com.android.tools.r8.naming.c:
+    boolean $assertionsDisabled -> n
+    com.android.tools.r8.naming.ClassNameMinifier$Namespace topLevelState -> m
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean keepInnerClassStructure -> l
+    java.lang.Iterable classes -> d
+    java.util.Set noObfuscationPrefixes -> g
+    com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy classNamingStrategy -> b
+    java.util.Set usedPackagePrefixes -> h
+    java.util.Set usedTypeNames -> i
+    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode packageObfuscationMode -> e
+    com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy packageNamingStrategy -> c
+    boolean isAccessModificationAllowed -> f
+    java.util.Map renaming -> j
+    java.util.Map states -> k
+    1:1:void <clinit>():41:41 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy,com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy,java.lang.Iterable):63:63 -> <init>
+    2:33:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy,com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy,java.lang.Iterable):49:80 -> <init>
+    1:1:java.util.Set access$100(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> a
+    2:29:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService,java.util.Map):103:130 -> a
+    30:57:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService,java.util.Map):126:153 -> a
+    58:66:java.util.Map getPackageRenaming():157:165 -> a
+    58:66:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService,java.util.Map):153 -> a
+    67:67:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService,java.util.Map):153:153 -> a
+    68:68:java.util.Iterator lambda$computeRenaming$0():145:145 -> a
+    69:70:void renameDanglingTypes(com.android.tools.r8.graph.DexClass):169:170 -> a
+    71:71:void renameDanglingTypesInField(com.android.tools.r8.graph.DexEncodedField):174:174 -> a
+    72:75:void renameDanglingTypesInMethod(com.android.tools.r8.graph.DexEncodedMethod):178:181 -> a
+    76:78:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):197:199 -> a
+    79:85:void registerPackagePrefixesAsUsed(java.lang.String):220:226 -> a
+    79:85:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):198 -> a
+    86:94:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):200:208 -> a
+    95:101:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):249:255 -> a
+    102:102:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    102:102:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):255 -> a
+    103:111:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):256:264 -> a
+    112:129:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForOuterClass(com.android.tools.r8.graph.DexType,java.lang.String):329:346 -> a
+    112:129:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):266 -> a
+    130:132:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):270:272 -> a
+    133:137:java.lang.String getParentPackagePrefix(java.lang.String):452:456 -> a
+    1:1:com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy access$200(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> b
+    2:2:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):231:231 -> b
+    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    3:3:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):231 -> b
+    4:8:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):240:244 -> b
+    9:26:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForPackagePrefix(java.lang.String):306:323 -> b
+    1:1:java.util.Set access$300(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> c
+    2:22:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):276:296 -> c
+    23:23:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):292:292 -> c
+    24:24:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):288:288 -> c
+    25:25:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):282:282 -> c
+    26:26:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$1(java.lang.String):282:282 -> c
+    1:1:com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy access$400(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> d
+    2:3:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$2(java.lang.String):297:298 -> d
+    4:8:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):352:356 -> d
+    9:9:int com.android.tools.r8.graph.DexString.numberOfLeadingSquareBrackets():108:108 -> d
+    9:9:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):356 -> d
+    10:16:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):357:363 -> d
+    1:5:void renameDanglingType(com.android.tools.r8.graph.DexType):186:190 -> e
+    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> e
+    6:6:void renameDanglingType(com.android.tools.r8.graph.DexType):190 -> e
+    7:9:void renameDanglingType(com.android.tools.r8.graph.DexType):190:192 -> e
+    10:10:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForPackagePrefix$3(java.lang.String):313:313 -> e
+com.android.tools.r8.naming.ClassNameMinifier$1 -> com.android.tools.r8.naming.c$a:
+com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy -> com.android.tools.r8.naming.c$b:
+    boolean isRenamedByApplyMapping(com.android.tools.r8.graph.DexType) -> a
+    com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate) -> a
+    com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType) -> b
+com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming -> com.android.tools.r8.naming.c$c:
+    java.util.Map packageRenaming -> a
+    java.util.Map classRenaming -> b
+    1:1:void <init>(java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNameMinifier$1):83:83 -> <init>
+    2:4:void <init>(java.util.Map,java.util.Map):88:90 -> <init>
+com.android.tools.r8.naming.ClassNameMinifier$Namespace -> com.android.tools.r8.naming.c$d:
+    char[] packagePrefix -> b
+    com.android.tools.r8.naming.ClassNameMinifier this$0 -> e
+    boolean $assertionsDisabled -> f
+    java.lang.String packageName -> a
+    int nameIndex -> d
+    int dictionaryIndex -> c
+    1:1:void <clinit>():368:368 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String):376:376 -> <init>
+    2:2:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String,java.lang.String):379:379 -> <init>
+    3:15:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String,java.lang.String):372:384 -> <init>
+    1:4:com.android.tools.r8.graph.DexString nextTypeName(com.android.tools.r8.graph.DexType):392:395 -> a
+    5:5:int incrementDictionaryIndex():413:413 -> a
+    6:7:int incrementNameIndex(boolean):418:419 -> a
+    1:1:int getDictionaryIndex():408:408 -> b
+    1:1:java.lang.String getPackageName():388:388 -> c
+    1:1:java.lang.String nextPackagePrefix():400:400 -> d
+    2:3:java.lang.String com.android.tools.r8.naming.Minifier$MinificationPackageNamingStrategy.next(char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):205:206 -> d
+    2:3:java.lang.String nextPackagePrefix():400 -> d
+    4:5:java.lang.String nextPackagePrefix():401:402 -> d
+com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy -> com.android.tools.r8.naming.c$e:
+com.android.tools.r8.naming.ClassNaming -> com.android.tools.r8.naming.d:
+    com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature) -> a
+com.android.tools.r8.naming.ClassNaming$Builder -> com.android.tools.r8.naming.d$a:
+    1:1:void <init>():16:16 -> <init>
+    void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String) -> a
+    com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming) -> a
+com.android.tools.r8.naming.ClassNamingForMapApplier -> com.android.tools.r8.naming.f:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap qualifiedMethodMembers -> d
+    com.android.tools.r8.position.Position position -> c
+    com.android.tools.r8.com.google.common.collect.ImmutableMap fieldMembers -> f
+    com.android.tools.r8.com.google.common.collect.ImmutableMap methodMembers -> e
+    boolean $assertionsDisabled -> g
+    java.lang.String originalName -> a
+    java.lang.String renamedName -> b
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNamingForMapApplier$1):35:35 -> <init>
+    2:8:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,java.util.Map,java.util.Map,java.util.Map):122:128 -> <init>
+    1:1:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder builder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):94:94 -> a
+    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap getQualifiedMethodMembers():132:132 -> a
+    3:4:void forAllFieldNaming(com.android.tools.r8.utils.ThrowingConsumer):145:146 -> a
+    3:4:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):138 -> a
+    5:6:void forAllMethodNaming(com.android.tools.r8.utils.ThrowingConsumer):153:154 -> a
+    5:6:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):139 -> a
+    7:17:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):162:172 -> a
+    1:11:boolean equals(java.lang.Object):221:231 -> equals
+    1:1:int hashCode():236:236 -> hashCode
+    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
+    2:2:int hashCode():236 -> hashCode
+com.android.tools.r8.naming.ClassNamingForMapApplier$1 -> com.android.tools.r8.naming.e:
+com.android.tools.r8.naming.ClassNamingForMapApplier$Builder -> com.android.tools.r8.naming.f$a:
+    com.android.tools.r8.position.Position position -> c
+    com.android.tools.r8.utils.Reporter reporter -> d
+    java.lang.String originalName -> a
+    java.util.Map qualifiedMethodMembers -> e
+    java.lang.String renamedName -> b
+    java.util.Map methodMembers -> f
+    java.util.Map fieldMembers -> g
+    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.ClassNamingForMapApplier$1):37:37 -> <init>
+    2:2:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):46:46 -> <init>
+    3:11:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):42:50 -> <init>
+    void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String) -> a
+    1:8:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):57:64 -> a
+    9:9:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):63:63 -> a
+    10:19:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):62:71 -> a
+    20:20:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):70:70 -> a
+    21:21:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):69:69 -> a
+    22:22:java.util.List lambda$addMemberEntry$0(com.android.tools.r8.naming.MemberNaming$MethodSignature):60:60 -> a
+    23:23:com.android.tools.r8.naming.ClassNamingForMapApplier build():79:79 -> a
+com.android.tools.r8.naming.ClassNamingForNameMapper -> com.android.tools.r8.naming.g:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap fieldMembers -> d
+    com.android.tools.r8.com.google.common.collect.ImmutableMap methodMembers -> c
+    boolean $assertionsDisabled -> g
+    java.lang.String originalName -> a
+    java.util.Map mappedRangesByRenamedName -> e
+    java.lang.String renamedName -> b
+    java.util.Map mappedNamingsByName -> f
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:1:void <init>(java.lang.String,java.lang.String,java.util.Map,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNamingForNameMapper$1):30:30 -> <init>
+    2:8:void <init>(java.lang.String,java.lang.String,java.util.Map,java.util.Map,java.util.Map,java.util.Map):209:215 -> <init>
+    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper$Builder builder(java.lang.String,java.lang.String):183:183 -> a
+    2:2:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName getMappedRangesForRenamedName(java.lang.String):219:219 -> a
+    3:9:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):224:230 -> a
+    10:10:java.util.Collection allFieldNamings():285:285 -> a
+    11:17:void write(java.io.Writer):301:307 -> a
+    18:19:void forAllFieldNaming(com.android.tools.r8.utils.ThrowingConsumer):279:280 -> a
+    18:19:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):272 -> a
+    18:19:void write(java.io.Writer):307 -> a
+    20:21:void forAllMethodNaming(com.android.tools.r8.utils.ThrowingConsumer):291:292 -> a
+    20:21:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):273 -> a
+    20:21:void write(java.io.Writer):307 -> a
+    22:28:void write(java.io.Writer):316:322 -> a
+    29:30:void lambda$write$0(java.io.Writer,com.android.tools.r8.naming.MemberNaming):309:310 -> a
+    31:31:int lambda$write$1(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):320:320 -> a
+    1:11:com.android.tools.r8.naming.MemberNaming lookupByOriginalSignature(com.android.tools.r8.naming.MemberNaming$Signature):236:246 -> b
+    12:20:java.util.List lookupByOriginalName(java.lang.String):255:263 -> b
+    21:21:java.util.Collection allMethodNamings():297:297 -> b
+    1:11:boolean equals(java.lang.Object):342:352 -> equals
+    1:5:int hashCode():357:361 -> hashCode
+    1:5:java.lang.String toString():329:333 -> toString
+com.android.tools.r8.naming.ClassNamingForNameMapper$1 -> com.android.tools.r8.naming.g$a:
+com.android.tools.r8.naming.ClassNamingForNameMapper$Builder -> com.android.tools.r8.naming.g$b:
+    java.util.Map methodMembers -> c
+    java.util.Map fieldMembers -> d
+    java.lang.String originalName -> a
+    java.util.Map mappedRangesByName -> e
+    java.lang.String renamedName -> b
+    java.util.Map mappedNamingsByName -> f
+    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):32:32 -> <init>
+    2:2:void <init>(java.lang.String,java.lang.String):40:40 -> <init>
+    3:10:void <init>(java.lang.String,java.lang.String):35:42 -> <init>
+    1:8:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):47:54 -> a
+    9:18:com.android.tools.r8.naming.ClassNamingForNameMapper build():62:71 -> a
+    19:21:void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):82:84 -> a
+    22:22:java.util.List lambda$addMappedRange$1(java.lang.String):83:83 -> a
+    1:1:java.util.List lambda$addMemberEntry$0(java.lang.String):53:53 -> b
+com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange -> com.android.tools.r8.naming.g$c:
+    com.android.tools.r8.naming.Range minifiedRange -> a
+    int nextSequenceNumber -> f
+    java.lang.Object originalRange -> c
+    boolean $assertionsDisabled -> g
+    int sequenceNumber -> e
+    com.android.tools.r8.naming.MemberNaming$MethodSignature signature -> b
+    java.lang.String renamedName -> d
+    1:3:void <clinit>():383:385 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):383:383 -> <init>
+    2:2:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):403:403 -> <init>
+    3:16:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):400:413 -> <init>
+    1:1:int access$400(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):383:383 -> a
+    2:2:int getNextSequenceNumber():388:388 -> a
+    3:22:int getOriginalLineNumber(int):417:436 -> a
+    1:10:boolean equals(java.lang.Object):471:480 -> equals
+    1:4:int hashCode():486:489 -> hashCode
+    1:10:java.lang.String toString():452:461 -> toString
+com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName -> com.android.tools.r8.naming.g$d:
+    java.util.List mappedRanges -> a
+    1:2:void <init>(java.util.List):92:93 -> <init>
+    1:1:java.util.List access$300(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName):89:89 -> a
+    2:2:java.util.List allRangesForLine(int):123:123 -> a
+    3:22:java.util.List allRangesForLine(int,boolean):136:155 -> a
+    23:23:java.util.List getMappedRanges():159:159 -> a
+    1:8:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange firstRangeForLine(int):102:109 -> b
+    1:7:boolean equals(java.lang.Object):167:173 -> equals
+    1:1:int hashCode():178:178 -> hashCode
+com.android.tools.r8.naming.DictionaryReader -> com.android.tools.r8.naming.h:
+    java.nio.file.Path path -> b
+    java.io.BufferedReader reader -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:3:void <init>(java.nio.file.Path):27:29 -> <init>
+    1:40:java.lang.String readName(com.android.tools.r8.utils.Reporter):33:72 -> a
+    41:54:com.android.tools.r8.com.google.common.collect.ImmutableList readAllNames(java.nio.file.Path,com.android.tools.r8.utils.Reporter):84:97 -> a
+    55:71:com.android.tools.r8.com.google.common.collect.ImmutableList readAllNames(java.nio.file.Path,com.android.tools.r8.utils.Reporter):86:102 -> a
+    1:2:void close():77:78 -> close
+com.android.tools.r8.naming.FieldNameMinifier -> com.android.tools.r8.naming.j:
+    java.util.Map renaming -> b
+    java.util.Map reservedNamingStates -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.naming.MemberNamingStrategy strategy -> d
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):37:37 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):33:39 -> <init>
+    1:5:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):47:51 -> a
+    6:7:void renameFieldsInInterfaces(java.util.Collection):186:187 -> a
+    6:7:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    8:10:void renameFieldsInInterfacePartition(java.util.Set):193:195 -> a
+    8:10:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    8:10:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    11:11:com.android.tools.r8.naming.ReservedFieldNamingState getReservedFieldNamingState(com.android.tools.r8.graph.DexType):77:77 -> a
+    11:11:void renameFieldsInInterfacePartition(java.util.Set):195 -> a
+    11:11:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    11:11:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    12:24:void renameFieldsInInterfacePartition(java.util.Set):197:209 -> a
+    12:24:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    12:24:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    25:28:com.android.tools.r8.graph.DexString renameField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.FieldNamingState):235:238 -> a
+    25:28:void renameFieldsInInterfacePartition(java.util.Set):210 -> a
+    25:28:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    25:28:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    29:29:void renameFieldsInInterfacePartition(java.util.Set):211:211 -> a
+    29:29:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    29:29:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    30:30:void com.android.tools.r8.naming.ReservedFieldNamingState.markReservedDirectly(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType) -> a
+    30:30:void renameFieldsInInterfacePartition(java.util.Set):211 -> a
+    30:30:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    30:30:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    31:39:void renameFieldsInInterfacePartition(java.util.Set):217:225 -> a
+    31:39:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    31:39:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    40:40:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    40:40:void renameFieldsInInterfacePartition(java.util.Set):225 -> a
+    40:40:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    40:40:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    41:42:void renameFieldsInInterfacePartition(java.util.Set):227:228 -> a
+    41:42:void renameFieldsInInterfaces(java.util.Collection):188 -> a
+    41:42:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
+    43:50:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):53:60 -> a
+    51:51:com.android.tools.r8.naming.ReservedFieldNamingState getOrCreateReservedFieldNamingState(com.android.tools.r8.graph.DexType):81:81 -> a
+    52:58:void lambda$reserveFieldNames$1(com.android.tools.r8.graph.DexClass):92:98 -> a
+    59:59:void com.android.tools.r8.naming.ReservedFieldNamingState.markReservedDirectly(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):30:30 -> a
+    59:59:void lambda$reserveFieldNames$1(com.android.tools.r8.graph.DexClass):98 -> a
+    60:70:void lambda$reserveFieldNames$1(com.android.tools.r8.graph.DexClass):101:111 -> a
+    71:71:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    71:71:void lambda$reserveFieldNames$1(com.android.tools.r8.graph.DexClass):111 -> a
+    72:74:void lambda$reserveFieldNames$1(com.android.tools.r8.graph.DexClass):113:115 -> a
+    75:78:void lambda$reserveFieldNames$2(com.android.tools.r8.graph.DexClasspathClass):126:129 -> a
+    79:81:void propagateReservedFieldNamesUpwards():138:140 -> a
+    82:82:void propagateReservedFieldNamesUpwards():139:139 -> a
+    83:83:void lambda$propagateReservedFieldNamesUpwards$3(com.android.tools.r8.graph.DexProgramClass):142:142 -> a
+    84:84:com.android.tools.r8.naming.ReservedFieldNamingState getReservedFieldNamingState(com.android.tools.r8.graph.DexType):77:77 -> a
+    84:84:void lambda$propagateReservedFieldNamesUpwards$3(com.android.tools.r8.graph.DexProgramClass):142 -> a
+    85:86:void lambda$propagateReservedFieldNamesUpwards$3(com.android.tools.r8.graph.DexProgramClass):144:145 -> a
+    87:87:boolean com.android.tools.r8.graph.DexType.isProgramType(com.android.tools.r8.graph.DexDefinitionSupplier):0:0 -> a
+    87:87:void lambda$propagateReservedFieldNamesUpwards$3(com.android.tools.r8.graph.DexProgramClass):145 -> a
+    88:88:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    88:88:boolean com.android.tools.r8.graph.DexType.isProgramType(com.android.tools.r8.graph.DexDefinitionSupplier):299 -> a
+    88:88:void lambda$propagateReservedFieldNamesUpwards$3(com.android.tools.r8.graph.DexProgramClass):145 -> a
+    89:89:boolean com.android.tools.r8.graph.DexType.isProgramType(com.android.tools.r8.graph.DexDefinitionSupplier):300:300 -> a
+    89:89:void lambda$propagateReservedFieldNamesUpwards$3(com.android.tools.r8.graph.DexProgramClass):145 -> a
+    90:91:void lambda$propagateReservedFieldNamesUpwards$3(com.android.tools.r8.graph.DexProgramClass):146:147 -> a
+    92:96:void lambda$renameFieldsInClasses$5(java.util.Map,com.android.tools.r8.graph.DexClass):161:165 -> a
+    97:97:void com.android.tools.r8.naming.FieldNamingState.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):26:26 -> a
+    97:97:void lambda$renameFieldsInClasses$5(java.util.Map,com.android.tools.r8.graph.DexClass):165 -> a
+    98:98:void lambda$renameFieldsInClasses$5(java.util.Map,com.android.tools.r8.graph.DexClass):169:169 -> a
+    99:107:void lambda$renameFieldsInClasses$5(java.util.Map,com.android.tools.r8.graph.DexClass):167:175 -> a
+    108:111:com.android.tools.r8.graph.DexString renameField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.FieldNamingState):235:238 -> a
+    108:111:void lambda$renameFieldsInClasses$5(java.util.Map,com.android.tools.r8.graph.DexClass):176 -> a
+    112:113:void lambda$renameFieldsInClasses$5(java.util.Map,com.android.tools.r8.graph.DexClass):180:181 -> a
+    114:114:void renameNonReboundAccessesToField(com.android.tools.r8.graph.FieldAccessInfo):250:250 -> a
+    115:118:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):255:258 -> a
+    119:119:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):195:195 -> a
+    119:119:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):258 -> a
+    120:124:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):260:264 -> a
+    125:125:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    125:125:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):264 -> a
+    126:140:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):266:280 -> a
+    1:1:com.android.tools.r8.naming.ReservedFieldNamingState lambda$getOrCreateReservedFieldNamingState$0(com.android.tools.r8.graph.DexType):82:82 -> b
+    2:6:void renameFieldsInClasses():155:159 -> b
+    7:7:void renameFieldsInClasses():158:158 -> b
+    1:1:com.android.tools.r8.naming.FieldNamingState lambda$renameFieldsInClasses$4(com.android.tools.r8.graph.DexType):168:168 -> c
+    2:2:void com.android.tools.r8.naming.FieldNamingState.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):26:26 -> c
+    2:2:com.android.tools.r8.naming.FieldNamingState lambda$renameFieldsInClasses$4(com.android.tools.r8.graph.DexType):168 -> c
+    3:5:void renameNonReboundReferences():244:246 -> c
+    1:48:void reserveFieldNames():87:134 -> d
+com.android.tools.r8.naming.FieldNameMinifier$1 -> com.android.tools.r8.naming.i:
+com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming -> com.android.tools.r8.naming.j$a:
+    java.util.Map renaming -> a
+    1:1:void <init>(java.util.Map,com.android.tools.r8.naming.FieldNameMinifier$1):63:63 -> <init>
+    2:3:void <init>(java.util.Map):67:68 -> <init>
+    1:1:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming empty():72:72 -> a
+com.android.tools.r8.naming.FieldNameMinifier$InterfacePartitioning -> com.android.tools.r8.naming.k:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set visited -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():284:284 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):289:289 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.AppView):287:290 -> <init>
+    1:1:java.util.List access$100(com.android.tools.r8.naming.FieldNameMinifier$InterfacePartitioning,java.util.Collection):284:284 -> a
+    2:9:java.util.List sortedPartitions(java.util.Collection):294:301 -> a
+    10:18:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):308:316 -> a
+    19:19:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    19:19:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):316 -> a
+    20:40:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):321:341 -> a
+    41:41:int lambda$buildSortedPartition$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):308:308 -> a
+com.android.tools.r8.naming.FieldNamingState -> com.android.tools.r8.naming.l:
+    com.android.tools.r8.naming.ReservedFieldNamingState reservedNames -> c
+    com.android.tools.r8.naming.MemberNamingStrategy strategy -> d
+    java.util.function.BiPredicate isAvailable -> e
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy,com.android.tools.r8.naming.ReservedFieldNamingState):31:31 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy,com.android.tools.r8.naming.ReservedFieldNamingState,java.util.Map):39:42 -> <init>
+    1:1:java.util.function.BiPredicate access$000(com.android.tools.r8.naming.FieldNamingState):19:19 -> a
+    2:2:boolean lambda$new$0(com.android.tools.r8.naming.ReservedFieldNamingState,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexField):42:42 -> a
+    3:5:com.android.tools.r8.naming.FieldNamingState createChildState(com.android.tools.r8.naming.ReservedFieldNamingState):46:48 -> a
+    6:6:void includeReservations(com.android.tools.r8.naming.ReservedFieldNamingState):69:69 -> a
+    6:6:com.android.tools.r8.naming.FieldNamingState createChildState(com.android.tools.r8.naming.ReservedFieldNamingState):48 -> a
+    7:9:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):53:55 -> a
+    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    10:10:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):55 -> a
+    11:13:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):57:59 -> a
+    14:14:java.lang.Object com.android.tools.r8.naming.FieldNamingStateBase.getOrCreateInternalState(com.android.tools.r8.graph.DexField):29:29 -> a
+    14:14:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):65 -> a
+    15:15:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):65:65 -> a
+    16:17:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.FieldNamingState$InternalState.createNewName(com.android.tools.r8.graph.DexField):101:102 -> a
+    16:17:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):65 -> a
+    18:18:com.android.tools.r8.naming.FieldNamingState$InternalState createInternalState():74:74 -> a
+    18:18:java.lang.Object createInternalState():19 -> a
+    19:19:void com.android.tools.r8.naming.FieldNamingState$InternalState.<init>(com.android.tools.r8.naming.FieldNamingState):92:92 -> a
+    19:19:com.android.tools.r8.naming.FieldNamingState$InternalState createInternalState():74 -> a
+    19:19:java.lang.Object createInternalState():19 -> a
+    1:1:com.android.tools.r8.naming.MemberNamingStrategy access$100(com.android.tools.r8.naming.FieldNamingState):19:19 -> b
+    2:6:com.android.tools.r8.naming.FieldNamingState clone():79:83 -> b
+    1:1:com.android.tools.r8.naming.ReservedFieldNamingState access$200(com.android.tools.r8.naming.FieldNamingState):19:19 -> c
+    1:1:java.lang.Object clone():19:19 -> clone
+com.android.tools.r8.naming.FieldNamingState$InternalState -> com.android.tools.r8.naming.l$a:
+    com.android.tools.r8.naming.FieldNamingState this$0 -> c
+    int nextNameIndex -> b
+    boolean $assertionsDisabled -> d
+    int dictionaryIndex -> a
+    1:1:void <clinit>():86:86 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.naming.FieldNamingState,int,int):95:97 -> <init>
+    1:1:int incrementDictionaryIndex():118:118 -> a
+    2:3:int incrementNameIndex(boolean):123:124 -> a
+    1:1:int getDictionaryIndex():113:113 -> b
+    1:1:com.android.tools.r8.naming.FieldNamingState$InternalState clone():108:108 -> c
+    1:1:com.android.tools.r8.naming.FieldNamingState$InternalState clone():108:108 -> clone
+    1:1:java.lang.Object clone():86 -> clone
+com.android.tools.r8.naming.FieldNamingStateBase -> com.android.tools.r8.naming.m:
+    java.util.Map internalStates -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):18:20 -> <init>
+    java.lang.Object createInternalState() -> a
+    1:4:com.android.tools.r8.graph.DexType getInternalStateKey(com.android.tools.r8.graph.DexType):38:41 -> a
+    1:4:java.lang.Object getOrCreateInternalState(com.android.tools.r8.graph.DexType):33 -> a
+    5:5:java.lang.Object getOrCreateInternalState(com.android.tools.r8.graph.DexType):34:34 -> a
+    1:1:java.lang.Object lambda$getOrCreateInternalState$0(com.android.tools.r8.graph.DexType):34:34 -> b
+com.android.tools.r8.naming.IdentifierMinifier -> com.android.tools.r8.naming.n:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.naming.NamingLens lens -> c
+    com.android.tools.r8.shaking.ProguardClassFilter adaptClassStrings -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):41:44 -> <init>
+    1:3:void adaptClassStrings(java.util.concurrent.ExecutorService):55:55 -> a
+    4:5:void lambda$adaptClassStrings$0(com.android.tools.r8.graph.DexProgramClass):58:59 -> a
+    6:10:void adaptClassStringsInStaticField(com.android.tools.r8.graph.DexEncodedField):70:74 -> a
+    6:10:void lambda$adaptClassStrings$0(com.android.tools.r8.graph.DexProgramClass):60 -> a
+    11:11:void lambda$adaptClassStrings$0(com.android.tools.r8.graph.DexProgramClass):62:62 -> a
+    12:31:void adaptClassStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod):80:99 -> a
+    32:43:com.android.tools.r8.graph.DexString getRenamedStringLiteral(com.android.tools.r8.graph.DexString):106:117 -> a
+    44:44:boolean lambda$getRenamedStringLiteral$1(java.lang.String,com.android.tools.r8.graph.DexType):110:110 -> a
+    1:3:void replaceDexItemBasedConstString(java.util.concurrent.ExecutorService):125:125 -> b
+    4:4:void lambda$replaceDexItemBasedConstString$2(com.android.tools.r8.graph.DexProgramClass):129:129 -> b
+    5:11:void replaceDexItemBasedConstStringInStaticField(com.android.tools.r8.graph.DexEncodedField):141:147 -> b
+    5:11:void lambda$replaceDexItemBasedConstString$2(com.android.tools.r8.graph.DexProgramClass):130 -> b
+    12:14:void lambda$replaceDexItemBasedConstString$2(com.android.tools.r8.graph.DexProgramClass):132:134 -> b
+    15:39:void replaceDexItemBasedConstStringInMethod(com.android.tools.r8.graph.DexEncodedMethod):152:176 -> b
+    1:4:void run(java.util.concurrent.ExecutorService):48:51 -> c
+com.android.tools.r8.naming.IdentifierNameStringMarker -> com.android.tools.r8.naming.o:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap identifierNameStrings -> b
+    boolean $assertionsDisabled -> d
+    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> c
+    1:1:void <clinit>():54:54 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView):60:63 -> <init>
+    boolean lambda$decoupleIdentifierNameStringForInvokeInstruction$1(com.android.tools.r8.ir.code.ConstString,com.android.tools.r8.ir.code.Instruction) -> a
+    boolean lambda$decoupleIdentifierNameStringForInvokeInstruction$2(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Instruction) -> a
+    1:3:void decoupleIdentifierNameStringsInFields(java.util.concurrent.ExecutorService):68:68 -> a
+    4:4:void lambda$decoupleIdentifierNameStringsInFields$0(com.android.tools.r8.graph.DexProgramClass):71:71 -> a
+    5:17:void decoupleIdentifierNameStringInStaticField(com.android.tools.r8.graph.DexEncodedField):80:92 -> a
+    5:17:void lambda$decoupleIdentifierNameStringsInFields$0(com.android.tools.r8.graph.DexProgramClass):72 -> a
+    18:18:void decoupleIdentifierNameStringInStaticField(com.android.tools.r8.graph.DexEncodedField):91:91 -> a
+    18:18:void lambda$decoupleIdentifierNameStringsInFields$0(com.android.tools.r8.graph.DexProgramClass):72 -> a
+    19:49:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):102:132 -> a
+    50:50:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):131:131 -> a
+    51:51:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):128:128 -> a
+    52:52:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForFieldPutInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):144:144 -> a
+    52:52:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):127 -> a
+    53:53:com.android.tools.r8.ir.code.FieldInstruction com.android.tools.r8.ir.code.FieldInstruction.asFieldInstruction():0:0 -> a
+    53:53:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForFieldPutInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):145 -> a
+    53:53:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):127 -> a
+    54:104:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForFieldPutInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):146:196 -> a
+    54:104:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):127 -> a
+    105:222:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):207:324 -> a
+    223:226:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):215:218 -> a
+    227:228:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):342:343 -> a
+    227:228:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):222 -> a
+    229:230:boolean com.android.tools.r8.naming.IdentifierNameStringUtils.isClassNameComparison(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexItemFactory):169:170 -> a
+    229:230:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):343 -> a
+    229:230:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):222 -> a
+    231:237:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):344:350 -> a
+    231:237:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):222 -> a
+    238:247:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):349:358 -> a
+    238:247:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):222 -> a
+    248:248:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):357:357 -> a
+    248:248:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):222 -> a
+    249:274:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):223:248 -> a
+    275:275:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
+    275:275:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):248 -> a
+    276:276:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
+    276:276:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
+    276:276:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):248 -> a
+    277:357:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):251:331 -> a
+    358:364:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):330:336 -> a
+    365:365:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
+    365:365:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):335 -> a
+    366:366:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):334:334 -> a
+    367:367:com.android.tools.r8.ir.code.Value lambda$decoupleIdentifierNameStringForInvokeInstruction$3(com.android.tools.r8.ir.code.Value[],com.android.tools.r8.ir.code.Value,long):332:332 -> a
+    368:374:void warnUndeterminedIdentifierIfNecessary(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):367:373 -> a
+    375:375:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    375:375:void warnUndeterminedIdentifierIfNecessary(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):373 -> a
+    376:397:void warnUndeterminedIdentifierIfNecessary(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):375:396 -> a
+com.android.tools.r8.naming.IdentifierNameStringUtils -> com.android.tools.r8.naming.p:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():35:35 -> <clinit>
+    boolean lambda$evaluateTypeArrayContentFromConstructionToUse$0(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
+    1:89:boolean isReflectionMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):67:155 -> a
+    90:96:boolean isReflectionMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):108:114 -> a
+    97:98:boolean isClassNameComparison(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexItemFactory):169:170 -> a
+    99:101:boolean isClassNameComparison(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexItemFactory):174:176 -> a
+    102:105:boolean isClassNameValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):180:183 -> a
+    106:123:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):198:215 -> a
+    124:133:com.android.tools.r8.graph.DexType inferTypeFromConstStringValue(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.Value):307:316 -> a
+    124:133:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):214 -> a
+    134:154:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):221:241 -> a
+    155:155:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    155:155:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):241 -> a
+    156:171:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):245:260 -> a
+    172:210:com.android.tools.r8.graph.DexTypeList retrieveDexTypeListFromClassList(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):519:557 -> a
+    172:210:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):260 -> a
+    211:217:com.android.tools.r8.graph.DexTypeList retrieveDexTypeListFromClassList(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):556:562 -> a
+    211:217:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):260 -> a
+    218:218:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):264:264 -> a
+    219:222:com.android.tools.r8.graph.DexReference inferMethodInHolder(com.android.tools.r8.graph.DexClass,java.lang.String,com.android.tools.r8.graph.DexTypeList):385:388 -> a
+    219:222:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):264 -> a
+    223:225:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):266:268 -> a
+    226:229:int getPositionOfFirstConstString(com.android.tools.r8.ir.code.Instruction):274:277 -> a
+    230:258:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):324:352 -> a
+    230:258:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
+    259:259:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    259:259:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):352 -> a
+    259:259:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
+    260:260:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):356:356 -> a
+    260:260:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
+    261:263:com.android.tools.r8.graph.DexReference inferMethodNameInHolder(com.android.tools.r8.graph.DexClass,java.lang.String):374:376 -> a
+    261:263:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):358 -> a
+    261:263:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
+    264:264:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):291:291 -> a
+    265:268:com.android.tools.r8.graph.DexReference inferFieldInHolder(com.android.tools.r8.graph.DexClass,java.lang.String,com.android.tools.r8.graph.DexType):364:367 -> a
+    269:312:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):417:460 -> a
+    313:321:com.android.tools.r8.graph.DexType getTypeFromConstClassOrBoxedPrimitive(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):396:404 -> a
+    313:321:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):460 -> a
+    322:322:com.android.tools.r8.graph.DexType getTypeFromConstClassOrBoxedPrimitive(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):403:403 -> a
+    322:322:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):460 -> a
+    323:338:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):465:480 -> a
+    1:3:com.android.tools.r8.graph.DexType inferTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):298:300 -> b
+com.android.tools.r8.naming.InterfaceMethodNameMinifier -> com.android.tools.r8.naming.s:
+    com.android.tools.r8.naming.MethodNameMinifier$State minifierState -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Map callSiteRenamings -> d
+    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> b
+    boolean $assertionsDisabled -> g
+    java.util.Map globalStateMap -> e
+    java.util.Map interfaceStateMap -> f
+    1:1:void <clinit>():98:98 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MethodNameMinifier$State):376:376 -> <init>
+    2:16:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MethodNameMinifier$State):368:382 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.naming.InterfaceMethodNameMinifier):98:98 -> a
+    2:4:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):404:406 -> a
+    5:7:void reserveNamesInInterfaces(java.util.Collection):394:396 -> a
+    5:7:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):407 -> a
+    8:10:void com.android.tools.r8.naming.MethodNameMinifier$State.allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):104:104 -> a
+    8:10:void reserveNamesInInterfaces(java.util.Collection):396 -> a
+    8:10:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):407 -> a
+    11:13:void reserveNamesInInterfaces(java.util.Collection):397:399 -> a
+    11:13:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):407 -> a
+    14:18:void patchUpChildrenInReservationStates():628:632 -> a
+    14:18:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):410 -> a
+    19:141:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):411:533 -> a
+    142:151:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):528:537 -> a
+    152:166:boolean verifyAllMethodsAreRepresentedIn(java.util.List):678:692 -> a
+    152:166:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):537 -> a
+    167:167:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):538:538 -> a
+    168:182:boolean verifyAllCallSitesAreRepresentedIn(java.util.List):659:673 -> a
+    168:182:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):538 -> a
+    183:217:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):540:574 -> a
+    218:226:void print(com.android.tools.r8.graph.DexMethod,java.util.Set,java.io.PrintStream):697:705 -> a
+    218:226:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):574 -> a
+    227:241:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):577:591 -> a
+    242:242:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):100:100 -> a
+    242:242:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):591 -> a
+    243:248:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):592:597 -> a
+    249:249:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):100:100 -> a
+    249:249:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):598 -> a
+    250:256:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):599:605 -> a
+    257:257:com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState lambda$assignNamesToInterfaceMethods$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):424:424 -> a
+    258:285:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):446:473 -> a
+    286:286:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    286:286:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):473 -> a
+    287:297:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):474:484 -> a
+    298:311:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):483:496 -> a
+    312:313:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):128:129 -> a
+    312:313:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):497 -> a
+    314:315:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):91:92 -> a
+    314:315:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):132 -> a
+    314:315:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):497 -> a
+    316:318:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):91:91 -> a
+    316:318:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134 -> a
+    316:318:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):497 -> a
+    319:319:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):92:92 -> a
+    319:319:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134 -> a
+    319:319:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):497 -> a
+    320:320:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134:134 -> a
+    320:320:void lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):497 -> a
+    321:324:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):609:612 -> a
+    325:325:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):100:100 -> a
+    325:325:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):612 -> a
+    326:329:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):614:617 -> a
+    330:330:boolean lambda$assignNewName$3(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):616:616 -> a
+    331:331:com.android.tools.r8.graph.DexString newNameInGroup(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.MethodNamingState,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):624:624 -> a
+    332:334:void computeReservationFrontiersForAllImplementingClasses():639:641 -> a
+    335:340:void lambda$computeReservationFrontiersForAllImplementingClasses$5(com.android.tools.r8.graph.DexClass):644:649 -> a
+    341:341:com.android.tools.r8.graph.DexType com.android.tools.r8.naming.MethodNameMinifier$State.getFrontier(com.android.tools.r8.graph.DexType):109:109 -> a
+    341:341:void lambda$computeReservationFrontiersForAllImplementingClasses$5(com.android.tools.r8.graph.DexClass):649 -> a
+    342:343:void lambda$computeReservationFrontiersForAllImplementingClasses$5(com.android.tools.r8.graph.DexClass):650:651 -> a
+    1:1:com.android.tools.r8.naming.MethodNameMinifier$State access$100(com.android.tools.r8.naming.InterfaceMethodNameMinifier):98:98 -> b
+    2:2:java.util.Map getCallSiteRenamings():390:390 -> b
+    3:3:com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):485:485 -> b
+    4:4:boolean lambda$newNameInGroup$4(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):624:624 -> b
+    1:1:java.util.Map access$200(com.android.tools.r8.naming.InterfaceMethodNameMinifier):98:98 -> c
+    2:2:java.util.Comparator getDefaultInterfaceMethodOrdering():386:386 -> c
+com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState -> com.android.tools.r8.naming.q:
+    java.util.Map methodStates -> b
+    java.util.List callSiteCollidingMethods -> c
+    java.util.Set callSites -> a
+    com.android.tools.r8.naming.InterfaceMethodNameMinifier this$0 -> d
+    1:5:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier):241:245 -> <init>
+    1:1:java.util.Set access$300(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):241:241 -> a
+    2:2:void addState(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):248:248 -> a
+    3:3:java.util.Set lambda$addState$0(com.android.tools.r8.graph.DexMethod):248:248 -> a
+    4:4:void addCallSite(com.android.tools.r8.graph.DexCallSite):262:262 -> a
+    5:17:com.android.tools.r8.graph.DexString getReservedName():266:278 -> a
+    18:26:boolean isAvailable(com.android.tools.r8.graph.DexString):305:313 -> a
+    27:28:java.lang.Boolean lambda$isAvailable$3(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):308:309 -> a
+    29:29:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.MethodNameMinifier$State):317:317 -> a
+    30:30:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.MethodNameMinifier$State,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):319:319 -> a
+    31:31:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):92:92 -> a
+    31:31:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.MethodNameMinifier$State,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):320 -> a
+    32:32:void forEachState(java.util.function.BiConsumer):325:325 -> a
+    33:33:java.lang.Object lambda$forEachState$5(java.util.function.BiConsumer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):327:327 -> a
+    34:36:java.lang.Object forAnyState(java.util.function.BiFunction):334:336 -> a
+    37:39:boolean containsReservation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):346:348 -> a
+    40:40:boolean com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState.containsReservation(com.android.tools.r8.graph.DexType):237:237 -> a
+    40:40:boolean containsReservation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):349 -> a
+    1:1:java.util.Map access$400(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):241:241 -> b
+    2:2:java.util.Set lambda$appendMethodGroupState$1(com.android.tools.r8.graph.DexMethod):255:255 -> b
+    3:3:void reserveName(com.android.tools.r8.graph.DexString):291:291 -> b
+    4:7:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):293:296 -> b
+    8:8:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):92:92 -> b
+    8:8:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):296 -> b
+    9:10:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):298:299 -> b
+    11:11:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):92:92 -> b
+    11:11:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):299 -> b
+    1:1:java.util.List access$500(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):241:241 -> c
+    1:1:int compareTo(java.lang.Object):241:241 -> compareTo
+    2:2:int compareTo(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):360:360 -> compareTo
+    2:2:int compareTo(java.lang.Object):241 -> compareTo
+    1:4:void appendMethodGroupState(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):252:255 -> d
+com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState -> com.android.tools.r8.naming.r:
+    com.android.tools.r8.graph.DexClass iface -> a
+    java.util.Set reservationTypes -> c
+    boolean $assertionsDisabled -> e
+    java.util.Set children -> b
+    com.android.tools.r8.naming.InterfaceMethodNameMinifier this$0 -> d
+    1:1:void <clinit>():100:100 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier,com.android.tools.r8.graph.DexClass):109:109 -> <init>
+    2:7:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier,com.android.tools.r8.graph.DexClass):105:110 -> <init>
+    1:2:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):116:117 -> a
+    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    3:3:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):117 -> a
+    4:4:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):119:119 -> a
+    5:5:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.MethodNameMinifier$State.getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):113:113 -> a
+    5:5:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):119 -> a
+    6:21:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):127:142 -> a
+    22:29:java.lang.Boolean lambda$getReservedName$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):130:137 -> a
+    30:30:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):172:172 -> a
+    31:31:void lambda$addRenaming$5(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):174:174 -> a
+    32:32:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):176:176 -> a
+    33:33:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):100:100 -> a
+    33:33:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):176 -> a
+    34:35:void com.android.tools.r8.naming.MethodNamingState.addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):76:77 -> a
+    34:35:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):177 -> a
+    36:36:void forAll(java.util.function.Consumer):183:183 -> a
+    37:37:java.lang.Object lambda$forAll$6(java.util.function.Consumer,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):185:185 -> a
+    38:46:java.lang.Object forAny(java.util.function.Function):191:199 -> a
+    1:1:void lambda$reserveName$1(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):150:150 -> b
+    2:2:com.android.tools.r8.naming.MethodReservationState com.android.tools.r8.naming.MethodNameMinifier$State.getReservationState(com.android.tools.r8.graph.DexType):96:96 -> b
+    2:2:void lambda$reserveName$1(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):150 -> b
+    3:3:void lambda$reserveName$1(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):151:151 -> b
+    4:15:boolean isAvailable(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):157:168 -> b
+    16:17:java.lang.Boolean lambda$isAvailable$3(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):160:161 -> b
+    18:18:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):100:100 -> b
+    18:18:java.lang.Boolean lambda$isAvailable$3(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):161 -> b
+    19:20:java.lang.Boolean lambda$isAvailable$3(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):162:163 -> b
+    21:28:java.lang.Object forChildren(java.util.function.Function):220:227 -> b
+    1:1:void reserveName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):146:146 -> c
+    2:2:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):148:148 -> c
+    3:10:java.lang.Object forParents(java.util.function.Function):203:210 -> c
+com.android.tools.r8.naming.InternalNamingState -> com.android.tools.r8.naming.t:
+    int incrementDictionaryIndex() -> a
+    int incrementNameIndex(boolean) -> a
+    int getDictionaryIndex() -> b
+com.android.tools.r8.naming.MemberNaming -> com.android.tools.r8.naming.u:
+    com.android.tools.r8.naming.MemberNaming$Signature signature -> a
+    com.android.tools.r8.naming.MemberNaming$Signature renamedSignature -> b
+    com.android.tools.r8.position.Position position -> c
+    1:4:void <init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String,com.android.tools.r8.position.Position):64:67 -> <init>
+    1:1:com.android.tools.r8.naming.MemberNaming$Signature getOriginalSignature():71:71 -> a
+    1:1:java.lang.String getRenamedName():83:83 -> b
+    1:1:com.android.tools.r8.naming.MemberNaming$Signature getRenamedSignature():79:79 -> c
+    1:1:boolean isFieldNaming():91:91 -> d
+    1:1:boolean isMethodNaming():87:87 -> e
+    1:6:boolean equals(java.lang.Object):38:43 -> equals
+    1:2:int hashCode():48:49 -> hashCode
+    1:1:java.lang.String toString():100:100 -> toString
+com.android.tools.r8.naming.MemberNaming$FieldSignature -> com.android.tools.r8.naming.u$a:
+    java.lang.String type -> c
+    1:2:void <init>(java.lang.String,java.lang.String):176:177 -> <init>
+    com.android.tools.r8.naming.MemberNaming$FieldSignature asFieldSignature() -> a
+    1:1:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField):181:181 -> a
+    2:2:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):185:185 -> a
+    3:3:java.lang.String com.android.tools.r8.graph.DexField.qualifiedName():129:129 -> a
+    3:3:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):186 -> a
+    4:5:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):186:187 -> a
+    6:10:com.android.tools.r8.graph.DexField toDexField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):191:191 -> a
+    11:11:com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String):199:199 -> a
+    12:14:void write(java.io.Writer):231:233 -> a
+    1:1:com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind():204:204 -> c
+    1:5:boolean equals(java.lang.Object):212:216 -> equals
+    1:1:int hashCode():221:221 -> hashCode
+    1:1:java.lang.String toString():226:226 -> toString
+com.android.tools.r8.naming.MemberNaming$MethodSignature -> com.android.tools.r8.naming.u$b:
+    boolean $assertionsDisabled -> e
+    java.lang.String[] parameters -> d
+    java.lang.String type -> c
+    1:1:void <clinit>():247:247 -> <clinit>
+    1:3:void <init>(java.lang.String,java.lang.String,java.lang.String[]):253:255 -> <init>
+    4:6:void <init>(java.lang.String,java.lang.String,java.util.Collection):259:261 -> <init>
+    1:1:com.android.tools.r8.naming.MemberNaming$MethodSignature fromDexMethod(com.android.tools.r8.graph.DexMethod):265:265 -> a
+    2:9:com.android.tools.r8.naming.MemberNaming$MethodSignature fromDexMethod(com.android.tools.r8.graph.DexMethod,boolean):269:276 -> a
+    10:19:com.android.tools.r8.naming.MemberNaming$MethodSignature fromSignature(java.lang.String,java.lang.String):281:290 -> a
+    20:28:com.android.tools.r8.graph.DexMethod toDexMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):300:308 -> a
+    29:29:com.android.tools.r8.graph.DexMethod toDexMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):305:305 -> a
+    30:30:com.android.tools.r8.naming.MemberNaming$MethodSignature initializer(java.lang.String[]):312:312 -> a
+    31:31:com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String):317:317 -> a
+    32:42:void write(java.io.Writer):354:364 -> a
+    1:1:com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind():322:322 -> c
+    1:8:boolean equals(java.lang.Object):330:337 -> equals
+    1:8:java.lang.String toDescriptor():368:375 -> f
+    1:2:com.android.tools.r8.naming.MemberNaming$MethodSignature toUnqualified():295:296 -> g
+    1:3:int hashCode():342:344 -> hashCode
+    1:1:java.lang.String toString():349:349 -> toString
+com.android.tools.r8.naming.MemberNaming$Signature -> com.android.tools.r8.naming.u$c:
+    java.lang.String name -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():103:103 -> <clinit>
+    1:2:void <init>(java.lang.String):107:108 -> <init>
+    com.android.tools.r8.naming.MemberNaming$FieldSignature asFieldSignature() -> a
+    com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String) -> a
+    void write(java.io.Writer) -> a
+    1:1:boolean isQualified():124:124 -> b
+    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind() -> c
+    1:2:java.lang.String toHolderFromQualified():133:134 -> d
+    1:2:java.lang.String toUnqualifiedName():128:129 -> e
+    1:6:java.lang.String toString():156:161 -> toString
+com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind -> com.android.tools.r8.naming.u$c$a:
+    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind FIELD -> b
+    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind METHOD -> a
+    1:2:void <clinit>():166:167 -> <clinit>
+    1:1:void <init>(java.lang.String,int):165:165 -> <init>
+com.android.tools.r8.naming.MemberNamingStrategy -> com.android.tools.r8.naming.v:
+    boolean allowMemberRenaming(com.android.tools.r8.graph.DexClass) -> a
+    com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass) -> a
+    com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass) -> a
+    com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate) -> a
+    com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate) -> a
+com.android.tools.r8.naming.MethodNameMinifier -> com.android.tools.r8.naming.x:
+    com.android.tools.r8.naming.MethodNameMinifier$State minifierState -> d
+    java.util.Map renaming -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.naming.MemberNamingStrategy strategy -> b
+    com.android.tools.r8.naming.MethodReservationState rootReservationState -> i
+    boolean $assertionsDisabled -> j
+    com.android.tools.r8.naming.MethodNamingState rootNamingState -> h
+    com.android.tools.r8.com.google.common.collect.BiMap reservationStates -> e
+    java.util.Map namingStates -> f
+    java.util.Map frontiers -> g
+    1:1:void <clinit>():85:85 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):133:133 -> <init>
+    2:21:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):120:139 -> <init>
+    java.lang.Object lambda$getNamingKeyTransform$2(com.android.tools.r8.graph.DexMethod) -> a
+    1:1:java.util.Map access$000(com.android.tools.r8.naming.MethodNameMinifier):85:85 -> a
+    2:2:com.android.tools.r8.naming.MethodNamingState access$200(com.android.tools.r8.naming.MethodNameMinifier,com.android.tools.r8.graph.DexType):85:85 -> a
+    3:3:com.android.tools.r8.naming.MethodReservationState access$400(com.android.tools.r8.naming.MethodNameMinifier,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):85:85 -> a
+    4:4:java.util.function.Function getNamingKeyTransform():154:154 -> a
+    5:5:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    5:5:java.util.function.Function getNamingKeyTransform():154 -> a
+    6:7:java.util.function.Function getNamingKeyTransform():155:156 -> a
+    8:8:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):178:178 -> a
+    9:12:void reserveNamesInClasses():236:236 -> a
+    9:12:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):179 -> a
+    13:29:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):180:196 -> a
+    30:36:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):200:206 -> a
+    37:37:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    37:37:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):206 -> a
+    38:39:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):207:208 -> a
+    40:53:void assignNameToMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.MethodNamingState):219:232 -> a
+    40:53:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):209 -> a
+    54:55:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):212:213 -> a
+    56:56:com.android.tools.r8.naming.MethodNamingState lambda$assignNamesToClassesMethods$3(com.android.tools.r8.naming.MethodNamingState,com.android.tools.r8.naming.MethodReservationState,com.android.tools.r8.graph.DexType):205:205 -> a
+    57:66:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):263:272 -> a
+    67:67:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    67:67:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):272 -> a
+    68:68:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):274:274 -> a
+    69:69:java.lang.Iterable shuffleMethods(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):311:311 -> a
+    69:69:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):274 -> a
+    70:73:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):274:277 -> a
+    74:74:com.android.tools.r8.naming.MethodReservationState lambda$allocateReservationStateAndReserve$4(com.android.tools.r8.naming.MethodReservationState,com.android.tools.r8.graph.DexType):270:270 -> a
+    75:81:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):286:292 -> a
+    82:82:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    82:82:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):292 -> a
+    83:91:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):294:302 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.BiMap access$100(com.android.tools.r8.naming.MethodNameMinifier):85:85 -> b
+    2:3:java.util.function.Function getReservationKeyTransform():143:144 -> b
+    4:4:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> b
+    4:4:java.util.function.Function getReservationKeyTransform():144 -> b
+    5:8:java.util.function.Function getReservationKeyTransform():146:149 -> b
+    9:9:java.lang.Object lambda$getReservationKeyTransform$0(com.android.tools.r8.graph.DexMethod):146:146 -> b
+    10:18:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):244:252 -> b
+    19:19:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    19:19:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):252 -> b
+    20:23:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):253:256 -> b
+    24:24:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):254:254 -> b
+    1:1:com.android.tools.r8.naming.MethodReservationState access$300(com.android.tools.r8.naming.MethodNameMinifier):85:85 -> c
+    2:2:java.lang.Object lambda$getReservationKeyTransform$1(com.android.tools.r8.graph.DexMethod):149:149 -> c
+    1:1:java.util.Map access$500(com.android.tools.r8.naming.MethodNameMinifier):85:85 -> d
+    1:1:com.android.tools.r8.naming.MemberNamingStrategy access$600(com.android.tools.r8.naming.MethodNameMinifier):85:85 -> e
+com.android.tools.r8.naming.MethodNameMinifier$1 -> com.android.tools.r8.naming.w:
+com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming -> com.android.tools.r8.naming.x$a:
+    java.util.Map renaming -> a
+    java.util.Map callSiteRenaming -> b
+    1:1:void <init>(java.util.Map,java.util.Map,com.android.tools.r8.naming.MethodNameMinifier$1):159:159 -> <init>
+    2:4:void <init>(java.util.Map,java.util.Map):165:167 -> <init>
+    1:1:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming empty():171:171 -> a
+com.android.tools.r8.naming.MethodNameMinifier$State -> com.android.tools.r8.naming.y:
+    com.android.tools.r8.naming.MethodNameMinifier this$0 -> a
+    1:1:void <init>(com.android.tools.r8.naming.MethodNameMinifier):89:89 -> <init>
+    1:1:void putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):92:92 -> a
+    2:2:com.android.tools.r8.naming.MethodReservationState getReservationState(com.android.tools.r8.graph.DexType):96:96 -> a
+com.android.tools.r8.naming.MethodNamingState -> com.android.tools.r8.naming.B:
+    com.android.tools.r8.naming.MethodNamingState parentNamingState -> d
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.naming.MemberNamingStrategy namingStrategy -> e
+    com.android.tools.r8.naming.MethodReservationState reservationState -> c
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.naming.MethodNamingState,java.util.function.Function,com.android.tools.r8.naming.MemberNamingStrategy,com.android.tools.r8.naming.MethodReservationState):29:32 -> <init>
+    1:1:com.android.tools.r8.naming.MethodNamingState createRoot(java.util.function.Function,com.android.tools.r8.naming.MemberNamingStrategy,com.android.tools.r8.naming.MethodReservationState):39:39 -> a
+    2:2:com.android.tools.r8.naming.MethodNamingState createChild(com.android.tools.r8.naming.MethodReservationState):43:43 -> a
+    3:16:com.android.tools.r8.graph.DexString newOrReservedNameFor(com.android.tools.r8.graph.DexMethod,java.util.function.BiPredicate):52:65 -> a
+    17:18:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):76:77 -> a
+    19:22:com.android.tools.r8.naming.MethodNamingState$InternalNewNameState createInternalState(com.android.tools.r8.graph.DexMethod):122:125 -> a
+    19:22:java.lang.Object createInternalState(com.android.tools.r8.graph.DexMethod):18 -> a
+    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> b
+    1:2:java.util.Set getUsedBy(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):96 -> b
+    3:9:java.util.Set getUsedBy(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):96:102 -> b
+    10:12:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexMethod,java.util.function.BiPredicate):69:71 -> b
+    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> c
+    1:2:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexMethod):109 -> c
+    3:8:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexMethod):109:114 -> c
+    9:20:boolean isAvailable(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):81:92 -> c
+    1:1:com.android.tools.r8.graph.DexString newOrReservedNameFor(com.android.tools.r8.graph.DexMethod):48:48 -> d
+com.android.tools.r8.naming.MethodNamingState$1 -> com.android.tools.r8.naming.z:
+com.android.tools.r8.naming.MethodNamingState$InternalNewNameState -> com.android.tools.r8.naming.A:
+    java.util.Map originalToRenamedNames -> b
+    java.util.Map usedBy -> c
+    com.android.tools.r8.naming.MethodNamingState$InternalNewNameState parentInternalState -> a
+    boolean $assertionsDisabled -> f
+    int nameCount -> d
+    int dictionaryIndex -> e
+    1:1:void <clinit>():128:128 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState,com.android.tools.r8.naming.MethodNamingState$1):128:128 -> <init>
+    2:2:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState):140:140 -> <init>
+    3:19:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState):131:147 -> <init>
+    1:1:int incrementDictionaryIndex():157:157 -> a
+    2:2:java.util.Set getUsedBy(com.android.tools.r8.graph.DexString):161:161 -> a
+    3:3:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexMethod):165:165 -> a
+    4:6:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):169:171 -> a
+    7:7:int incrementNameIndex(boolean):187:187 -> a
+    8:13:boolean checkParentPublicNameCountIsLessThanOrEqual():176:181 -> a
+    8:13:int incrementNameIndex(boolean):187 -> a
+    14:14:int incrementNameIndex(boolean):188:188 -> a
+    1:1:int getDictionaryIndex():152:152 -> b
+    2:2:java.util.Set lambda$addRenaming$0(com.android.tools.r8.graph.DexString):171:171 -> b
+com.android.tools.r8.naming.MethodNamingStateBase -> com.android.tools.r8.naming.C:
+    java.util.Map internalStates -> a
+    java.util.function.Function keyTransform -> b
+    1:3:void <init>(java.util.function.Function):17:19 -> <init>
+    java.lang.Object createInternalState(com.android.tools.r8.graph.DexMethod) -> a
+    1:1:java.lang.Object lambda$getOrCreateInternalState$0(com.android.tools.r8.graph.DexMethod,java.lang.Object):29:29 -> a
+    1:2:java.lang.Object getOrCreateInternalState(com.android.tools.r8.graph.DexMethod):28:29 -> b
+com.android.tools.r8.naming.MethodReservationState -> com.android.tools.r8.naming.E:
+    com.android.tools.r8.naming.MethodReservationState parentNamingState -> c
+    1:2:void <init>(com.android.tools.r8.naming.MethodReservationState,java.util.function.Function):26:27 -> <init>
+    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> a
+    1:2:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):52 -> a
+    3:8:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):52:57 -> a
+    9:9:com.android.tools.r8.naming.MethodReservationState createRoot(java.util.function.Function):32:32 -> a
+    10:10:com.android.tools.r8.naming.MethodReservationState createChild():36:36 -> a
+    11:11:com.android.tools.r8.naming.MethodReservationState$InternalReservationState createInternalState(com.android.tools.r8.graph.DexMethod):76:76 -> a
+    11:11:java.lang.Object createInternalState(com.android.tools.r8.graph.DexMethod):18 -> a
+    1:4:void reserveName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):41:44 -> b
+    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> c
+    1:2:java.util.Set getReservedNamesFor(com.android.tools.r8.graph.DexMethod):63 -> c
+    3:9:java.util.Set getReservedNamesFor(com.android.tools.r8.graph.DexMethod):63:69 -> c
+com.android.tools.r8.naming.MethodReservationState$InternalReservationState -> com.android.tools.r8.naming.D:
+    java.util.Map originalToReservedNames -> a
+    java.util.Set reservedNames -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():79:79 -> <clinit>
+    1:3:void <init>():79:81 -> <init>
+    1:1:boolean isReserved(com.android.tools.r8.graph.DexString):84:84 -> a
+    2:5:java.util.Set getAssignedNamesFor(com.android.tools.r8.graph.DexMethod):88:91 -> a
+    6:13:void reserveName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):95:102 -> a
+    14:14:java.util.Set lambda$reserveName$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):101:101 -> a
+com.android.tools.r8.naming.MinifiedNameMapPrinter -> com.android.tools.r8.naming.F:
+    com.android.tools.r8.graph.DexApplication application -> a
+    com.android.tools.r8.naming.NamingLens namingLens -> b
+    java.util.Set seenTypes -> c
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):31:31 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):29:33 -> <init>
+    1:2:java.util.List sortedCopy(java.util.List,java.util.Comparator):43:44 -> a
+    3:10:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):49:56 -> a
+    11:14:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):55:58 -> a
+    15:18:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):57:60 -> a
+    19:22:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):59:62 -> a
+    23:23:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):61:61 -> a
+    24:29:void writeType(com.android.tools.r8.graph.DexType,java.lang.StringBuilder):66:71 -> a
+    24:29:void lambda$write$1(java.lang.StringBuilder,com.android.tools.r8.graph.DexType):115 -> a
+    30:39:void writeFields(java.util.List,java.lang.StringBuilder):76:85 -> a
+    40:44:void write(java.lang.StringBuilder):111:115 -> a
+    45:45:void lambda$write$0(java.lang.StringBuilder,com.android.tools.r8.graph.DexProgramClass):113:113 -> a
+    1:6:void writeMethods(java.util.List,java.lang.StringBuilder):98:103 -> b
+    7:10:void writeMethod(com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.String,java.lang.StringBuilder):91:94 -> b
+    7:10:void writeMethods(java.util.List,java.lang.StringBuilder):104 -> b
+com.android.tools.r8.naming.MinifiedRenaming -> com.android.tools.r8.naming.G:
+    java.util.Map packageRenaming -> c
+    java.util.Map renaming -> d
+    com.android.tools.r8.graph.AppView appView -> b
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():35:35 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming,com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming,com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming):45:45 -> <init>
+    2:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming,com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming,com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming):39:51 -> <init>
+    com.android.tools.r8.graph.DexItem lambda$getRenamedItems$2(com.android.tools.r8.graph.DexItem) -> a
+    1:1:java.lang.String lookupPackageName(java.lang.String):56:56 -> a
+    2:2:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):61:61 -> a
+    3:7:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):66:70 -> a
+    8:8:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):61:61 -> a
+    8:8:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):76 -> a
+    9:14:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):76:81 -> a
+    15:22:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):80:87 -> a
+    23:23:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):61:61 -> a
+    23:23:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):89 -> a
+    24:26:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):89:91 -> a
+    27:30:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):90:93 -> a
+    31:31:boolean lambda$lookupName$0(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexEncodedMethod):114:114 -> a
+    32:32:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):126:126 -> a
+    33:33:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):131:131 -> a
+    34:37:boolean verifyNoOverlap(java.util.Map):136:139 -> a
+    38:38:boolean verifyNoOverlap(java.util.Map):138:138 -> a
+    39:40:void forAllRenamedTypes(java.util.function.Consumer):146:147 -> a
+    41:44:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):153:156 -> a
+    45:45:boolean lambda$getRenamedItems$1(java.lang.Class,java.util.function.Predicate,com.android.tools.r8.graph.DexItem):154:154 -> a
+    46:50:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):171:175 -> a
+    51:51:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    51:51:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):175 -> a
+    52:60:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):176:184 -> a
+    61:61:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):182:182 -> a
+    62:72:void lambda$toString$3(java.lang.StringBuilder,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexString):193:203 -> a
+    1:24:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):98:121 -> b
+    1:16:java.lang.String toString():190:205 -> toString
+com.android.tools.r8.naming.Minifier -> com.android.tools.r8.naming.H:
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():38:38 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView):42:43 -> <init>
+    1:13:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):47:59 -> a
+    14:14:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming com.android.tools.r8.naming.ClassNameMinifier.computeRenaming(com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):96:96 -> a
+    14:14:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):60 -> a
+    15:44:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):61:90 -> a
+    45:45:int lambda$run$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):49:49 -> a
+com.android.tools.r8.naming.Minifier$BaseMinificationNamingStrategy -> com.android.tools.r8.naming.H$a:
+    java.util.List obfuscationDictionary -> a
+    com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing mixedCasing -> c
+    java.util.Set obfuscationDictionaryForLookup -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():95:95 -> <clinit>
+    1:6:void <init>(java.util.List,boolean):103:108 -> <init>
+    1:11:java.lang.String nextName(char[],com.android.tools.r8.naming.InternalNamingState,boolean):112:122 -> a
+    12:18:java.lang.String nextName(char[],com.android.tools.r8.naming.InternalNamingState,boolean):121:127 -> a
+com.android.tools.r8.naming.Minifier$MinificationClassNamingStrategy -> com.android.tools.r8.naming.H$b:
+    com.android.tools.r8.graph.DexItemFactory factory -> f
+    com.android.tools.r8.graph.AppView appView -> e
+    1:2:void <init>(com.android.tools.r8.graph.AppView):139:140 -> <init>
+    3:7:void <init>(com.android.tools.r8.graph.AppView):138:142 -> <init>
+    boolean isRenamedByApplyMapping(com.android.tools.r8.graph.DexType) -> a
+    1:17:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):154:170 -> a
+    18:22:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):156:160 -> a
+    23:23:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    23:23:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):160 -> a
+    24:24:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):160:160 -> a
+    1:2:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):176:177 -> b
+com.android.tools.r8.naming.Minifier$MinificationPackageNamingStrategy -> com.android.tools.r8.naming.H$c:
+    1:2:void <init>(com.android.tools.r8.graph.AppView):193:194 -> <init>
+    3:3:void <init>(com.android.tools.r8.graph.AppView):192:192 -> <init>
+com.android.tools.r8.naming.Minifier$MinifierMemberNamingStrategy -> com.android.tools.r8.naming.H$d:
+    com.android.tools.r8.graph.DexItemFactory factory -> f
+    com.android.tools.r8.graph.AppView appView -> e
+    boolean desugaredLibraryRenaming -> g
+    boolean $assertionsDisabled -> h
+    1:1:void <clinit>():211:211 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView):219:222 -> <init>
+    1:2:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):230:231 -> a
+    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    3:3:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):231 -> a
+    4:4:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):232:232 -> a
+    5:5:com.android.tools.r8.graph.DexString getNextName(com.android.tools.r8.naming.InternalNamingState,boolean):254:254 -> a
+    5:5:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):235 -> a
+    6:6:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):236:236 -> a
+    7:7:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):245:245 -> a
+    8:8:com.android.tools.r8.graph.DexString getNextName(com.android.tools.r8.naming.InternalNamingState,boolean):254:254 -> a
+    8:8:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):248 -> a
+    9:9:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):249:249 -> a
+    10:20:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):259:269 -> a
+    21:21:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):263:263 -> a
+    22:23:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):276:277 -> a
+    24:24:boolean allowMemberRenaming(com.android.tools.r8.graph.DexClass):284:284 -> a
+    1:1:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):288:288 -> c
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    2:2:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):288 -> c
+    3:3:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):289:289 -> c
+com.android.tools.r8.naming.NamingLens -> com.android.tools.r8.naming.I:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():42:42 -> <clinit>
+    1:1:void <init>():42:42 -> <init>
+    boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod) -> a
+    void forAllRenamedTypes(java.util.function.Consumer) -> a
+    java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function) -> a
+    com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType) -> a
+    com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions) -> a
+    com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite) -> a
+    com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField) -> a
+    java.lang.String lookupPackageName(java.lang.String) -> a
+    boolean verifyNoOverlap(java.util.Map) -> a
+    1:9:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexItemFactory):57:65 -> a
+    10:14:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):76:76 -> a
+    15:20:com.android.tools.r8.graph.DexProto lookupProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexItemFactory):83:83 -> a
+    21:21:com.android.tools.r8.graph.DexType lambda$lookupProto$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):86:86 -> a
+    22:22:com.android.tools.r8.graph.DexType[] lambda$lookupProto$1(int):87:87 -> a
+    23:31:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):91:99 -> a
+    32:32:com.android.tools.r8.naming.NamingLens getIdentityLens():113:113 -> a
+    33:43:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):140:150 -> a
+    44:48:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):69:69 -> a
+    44:48:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):150 -> a
+    49:55:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):151:157 -> a
+    56:60:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):76:76 -> a
+    56:60:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):157 -> a
+    61:63:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):158:160 -> a
+    boolean hasPrefixRewritingLogic() -> b
+    com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod) -> b
+    1:2:java.lang.String lookupInternalName(com.android.tools.r8.graph.DexType):121:122 -> b
+    com.android.tools.r8.graph.DexString prefixRewrittenType(com.android.tools.r8.graph.DexType) -> c
+com.android.tools.r8.naming.NamingLens$1 -> com.android.tools.r8.naming.I$a:
+com.android.tools.r8.naming.NamingLens$IdentityLens -> com.android.tools.r8.naming.I$b:
+    1:1:void <init>(com.android.tools.r8.naming.NamingLens$1):166:166 -> <init>
+    2:2:void <init>():168:168 -> <init>
+    boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod) -> a
+    void forAllRenamedTypes(java.util.function.Consumer) -> a
+    java.lang.String lookupPackageName(java.lang.String) -> a
+    boolean verifyNoOverlap(java.util.Map) -> a
+    1:1:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):174:174 -> a
+    2:2:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):179:179 -> a
+    3:3:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):189:189 -> a
+    4:4:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):194:194 -> a
+    5:5:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):215:215 -> a
+    1:1:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):184:184 -> b
+com.android.tools.r8.naming.PrefixRewritingNamingLens -> com.android.tools.r8.naming.J:
+    java.util.Map classRenaming -> b
+    com.android.tools.r8.naming.NamingLens namingLens -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.utils.InternalOptions options -> d
+    1:1:void <clinit>():29:29 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView):47:47 -> <init>
+    2:30:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView):31:59 -> <init>
+    com.android.tools.r8.graph.DexItem lambda$getRenamedItems$2(com.android.tools.r8.graph.DexItem) -> a
+    1:1:boolean com.android.tools.r8.ir.desugar.PrefixRewritingMapper.hasRewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):33:33 -> a
+    1:1:void lambda$new$0(com.android.tools.r8.ir.desugar.PrefixRewritingMapper,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):54 -> a
+    2:2:void lambda$new$0(com.android.tools.r8.ir.desugar.PrefixRewritingMapper,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):55:55 -> a
+    3:3:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.graph.AppView):36:36 -> a
+    4:7:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):41:44 -> a
+    4:7:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.graph.AppView):36 -> a
+    8:11:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):41:44 -> a
+    12:12:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):74:74 -> a
+    13:17:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):79:83 -> a
+    18:22:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):97:101 -> a
+    23:27:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):106:110 -> a
+    28:28:boolean verifyNoOverlap(java.util.Map):115:115 -> a
+    29:29:java.lang.String lookupPackageName(java.lang.String):125:125 -> a
+    30:31:boolean verifyNotPrefixRewrittenPackage(java.lang.String):130:131 -> a
+    30:31:java.lang.String lookupPackageName(java.lang.String):125 -> a
+    32:32:java.lang.String lookupPackageName(java.lang.String):126:126 -> a
+    33:33:void forAllRenamedTypes(java.util.function.Consumer):142:142 -> a
+    34:34:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():334:334 -> a
+    34:34:void forAllRenamedTypes(java.util.function.Consumer):142 -> a
+    35:37:void forAllRenamedTypes(java.util.function.Consumer):143:145 -> a
+    38:51:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):152:165 -> a
+    52:55:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):163:166 -> a
+    56:56:boolean lambda$getRenamedItems$1(java.util.function.Predicate,java.lang.Class,com.android.tools.r8.graph.DexType):155:155 -> a
+    57:57:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):171:171 -> a
+    boolean hasPrefixRewritingLogic() -> b
+    1:5:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):88:92 -> b
+    1:1:com.android.tools.r8.graph.DexString prefixRewrittenType(com.android.tools.r8.graph.DexType):69:69 -> c
+com.android.tools.r8.naming.ProguardMap$Builder -> com.android.tools.r8.naming.K:
+    1:1:void <init>():11:11 -> <init>
+    com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position) -> a
+com.android.tools.r8.naming.ProguardMapError -> com.android.tools.r8.naming.L:
+    1:1:void <init>(java.lang.String,com.android.tools.r8.position.Position):17:17 -> <init>
+    1:1:com.android.tools.r8.naming.ProguardMapError duplicateSourceClass(java.lang.String,com.android.tools.r8.position.Position):21:21 -> a
+    2:3:com.android.tools.r8.naming.ProguardMapError duplicateSourceMember(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):26:27 -> a
+    4:5:com.android.tools.r8.naming.ProguardMapError duplicateTargetClass(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.Position):32:33 -> a
+com.android.tools.r8.naming.ProguardMapMinifier -> com.android.tools.r8.naming.O:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.naming.SeedMapper seedMapper -> c
+    boolean $assertionsDisabled -> k
+    com.android.tools.r8.com.google.common.collect.BiMap mappedNames -> d
+    java.util.Set mappedClasses -> e
+    java.util.Map additionalMethodNamings -> i
+    java.util.Map additionalFieldNamings -> j
+    java.util.Map memberNames -> f
+    java.util.Map syntheticCompanionClasses -> g
+    java.util.Map defaultInterfaceMethodImplementationNames -> h
+    1:1:void <clinit>():66:66 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.SeedMapper):81:81 -> <init>
+    2:15:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.SeedMapper):71:84 -> <init>
+    1:1:int lambda$new$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):73:73 -> a
+    2:35:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):89:122 -> a
+    36:44:void computeDefaultInterfaceMethodMethods():326:334 -> a
+    36:44:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123 -> a
+    45:45:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    45:45:void computeDefaultInterfaceMethodMethods():334 -> a
+    45:45:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123 -> a
+    46:46:void computeDefaultInterfaceMethodMethods():336:336 -> a
+    46:46:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123 -> a
+    47:51:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):352:356 -> a
+    47:51:void computeDefaultInterfaceMethodMethods():336 -> a
+    47:51:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123 -> a
+    52:52:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    52:52:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):356 -> a
+    52:52:void computeDefaultInterfaceMethodMethods():336 -> a
+    52:52:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123 -> a
+    53:68:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):357:372 -> a
+    53:68:void computeDefaultInterfaceMethodMethods():336 -> a
+    53:68:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123 -> a
+    69:73:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):371:375 -> a
+    69:73:void computeDefaultInterfaceMethodMethods():336 -> a
+    69:73:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123 -> a
+    74:74:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):374:374 -> a
+    74:74:void computeDefaultInterfaceMethodMethods():336 -> a
+    74:74:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123 -> a
+    75:120:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124:169 -> a
+    121:126:void lambda$run$2(java.util.ArrayDeque,java.util.Set,com.android.tools.r8.graph.DexClass):96:101 -> a
+    127:127:void lambda$run$3(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):114:114 -> a
+    128:128:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    128:128:void lambda$run$3(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):114 -> a
+    129:130:void lambda$run$3(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):115:116 -> a
+    131:132:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):175:176 -> a
+    133:133:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    133:133:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):176 -> a
+    134:156:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):179:201 -> a
+    157:172:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):198:213 -> a
+    173:176:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):212:215 -> a
+    177:177:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    177:177:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):215 -> a
+    178:184:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):216:216 -> a
+    192:197:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):224:229 -> a
+    198:211:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):228:241 -> a
+    212:212:boolean com.android.tools.r8.graph.DexClass.isAbstract():625:625 -> a
+    212:212:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):241 -> a
+    213:226:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):242:255 -> a
+    227:227:void lambda$computeMapping$5(java.util.Deque,com.android.tools.r8.graph.DexType):250:250 -> a
+    228:234:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):261:267 -> a
+    235:235:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    235:235:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):267 -> a
+    236:236:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):269:269 -> a
+    237:237:void lambda$addNonPrivateInterfaceMappings$7(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.naming.MemberNaming):265:265 -> a
+    238:243:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):279:284 -> a
+    244:246:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):283:285 -> a
+    247:247:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    247:247:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):285 -> a
+    248:254:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):286:292 -> a
+    255:257:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):291:293 -> a
+    258:258:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):195:195 -> a
+    258:258:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):293 -> a
+    259:260:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):294:295 -> a
+    261:263:void addMemberNaming(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.MemberNaming,java.util.Map):302:302 -> a
+    265:268:void addMemberNaming(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.MemberNaming,java.util.Map):304:307 -> a
+    269:276:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):312:319 -> a
+    277:277:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):318:318 -> a
+    278:282:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):317:321 -> a
+    1:1:int lambda$run$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):92:92 -> b
+    2:2:void lambda$computeMapping$4(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.naming.MemberNaming):194:194 -> b
+    3:3:void lambda$computeMapping$6(java.util.Deque,com.android.tools.r8.graph.DexType):255:255 -> b
+com.android.tools.r8.naming.ProguardMapMinifier$ApplyMappingClassNamingStrategy -> com.android.tools.r8.naming.M:
+    boolean $assertionsDisabled -> h
+    java.util.Map mappings -> g
+    1:1:void <clinit>():380:380 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):385:386 -> <init>
+    1:3:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):395:397 -> a
+    4:4:boolean isRenamedByApplyMapping(com.android.tools.r8.graph.DexType):427:427 -> a
+    1:1:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):405:405 -> b
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    2:2:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):405 -> b
+    3:18:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):407:422 -> b
+com.android.tools.r8.naming.ProguardMapMinifier$ApplyMappingMemberNamingStrategy -> com.android.tools.r8.naming.N:
+    boolean $assertionsDisabled -> k
+    java.util.Map mappedNames -> i
+    com.android.tools.r8.graph.DexItemFactory factory -> j
+    1:1:void <clinit>():431:431 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):439:442 -> <init>
+    boolean allowMemberRenaming(com.android.tools.r8.graph.DexClass) -> a
+    1:1:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):450:450 -> a
+    2:2:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> a
+    2:2:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):450 -> a
+    3:13:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):451:461 -> a
+    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    14:14:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):462 -> a
+    15:15:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):462:462 -> a
+    16:16:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):461:461 -> a
+    17:17:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):471:471 -> a
+    18:18:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):195:195 -> a
+    18:18:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):473 -> a
+    19:19:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):473:473 -> a
+    20:20:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):471:471 -> a
+    21:23:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):489:491 -> a
+    24:24:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    24:24:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):491 -> a
+    25:29:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):492:496 -> a
+    30:36:void reportReservationError(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):545:551 -> a
+    30:36:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):496 -> a
+    37:37:void reportReservationError(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):548:548 -> a
+    37:37:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):496 -> a
+    38:40:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):500:502 -> a
+    41:41:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):507:507 -> a
+    42:42:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):512:512 -> a
+    43:61:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexClass):516:534 -> a
+    1:1:com.android.tools.r8.graph.DexString lambda$next$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):459:459 -> b
+    2:2:com.android.tools.r8.graph.DexString lambda$next$1(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):478:478 -> b
+com.android.tools.r8.naming.ProguardMapReader -> com.android.tools.r8.naming.Q:
+    java.io.BufferedReader reader -> a
+    boolean $assertionsDisabled -> f
+    int lineNo -> b
+    int lineOffset -> c
+    java.util.HashMap cache -> e
+    java.lang.String line -> d
+    1:1:void <clinit>():54:54 -> <clinit>
+    1:264:void <init>(java.io.BufferedReader):65:328 -> <init>
+    265:265:void <init>(java.io.BufferedReader):66:66 -> <init>
+    1:1:int access$000(com.android.tools.r8.naming.ProguardMapReader):54:54 -> a
+    2:3:char peekChar(int):79:80 -> a
+    4:8:boolean isEmptyOrCommentLine(java.lang.String):118:122 -> a
+    9:9:boolean hasLine():139:139 -> a
+    10:14:void expect(char):161:165 -> a
+    15:15:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> a
+    15:15:void expect(char):165 -> a
+    16:16:void expect(char):165:165 -> a
+    17:17:void expect(char):162:162 -> a
+    18:20:void parse(com.android.tools.r8.naming.ProguardMap$Builder):172:174 -> a
+    21:31:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):181:191 -> a
+    21:31:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    32:37:boolean acceptString(java.lang.String):413:418 -> a
+    32:37:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):191 -> a
+    32:37:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    38:40:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):194:196 -> a
+    38:40:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    41:43:boolean acceptArrow():403:405 -> a
+    41:43:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):197 -> a
+    41:43:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    44:47:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):199:202 -> a
+    44:47:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    48:48:com.android.tools.r8.position.TextPosition getPosition():292:292 -> a
+    48:48:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):204 -> a
+    48:48:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    49:51:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):204:206 -> a
+    49:51:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    52:64:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):221:233 -> a
+    52:64:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    52:64:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    65:66:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):228:229 -> a
+    65:66:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    65:66:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    67:67:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> a
+    67:67:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):229 -> a
+    67:67:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    67:67:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    68:74:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):229:235 -> a
+    68:74:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    68:74:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    75:75:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():366:366 -> a
+    75:75:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):236 -> a
+    75:75:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    75:75:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    76:78:void expectWhitespace():151:153 -> a
+    76:78:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():367 -> a
+    76:78:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):236 -> a
+    76:78:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    76:78:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    79:103:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():368:392 -> a
+    79:103:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):236 -> a
+    79:103:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    79:103:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    104:111:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):237:244 -> a
+    104:111:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    104:111:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    112:112:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> a
+    112:112:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):244 -> a
+    112:112:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    112:112:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    113:117:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):244:248 -> a
+    113:117:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    113:117:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    118:118:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> a
+    118:118:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):248 -> a
+    118:118:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    118:118:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    119:122:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):248:251 -> a
+    119:122:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    119:122:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    123:124:void skipArrow():398:399 -> a
+    123:124:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):252 -> a
+    123:124:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    123:124:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    125:149:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):253:277 -> a
+    125:149:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    125:149:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    150:150:com.android.tools.r8.position.TextPosition getPosition():292:292 -> a
+    150:150:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):277 -> a
+    150:150:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    150:150:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    151:160:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):277:286 -> a
+    151:160:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    151:160:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    161:161:void expectWhitespace():156:156 -> a
+    161:161:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():367 -> a
+    161:161:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):236 -> a
+    161:161:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
+    161:161:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
+    162:174:java.lang.String parseType(boolean):350:362 -> a
+    boolean isSimpleDigit(char) -> b
+    1:1:int access$100(com.android.tools.r8.naming.ProguardMapReader):54:54 -> b
+    2:2:boolean hasNext():85:85 -> b
+    3:14:void skipIdentifier(boolean):299:310 -> b
+    15:15:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> b
+    15:15:void skipIdentifier(boolean):310 -> b
+    16:28:void skipIdentifier(boolean):310:322 -> b
+    29:29:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> b
+    29:29:void skipIdentifier(boolean):322 -> b
+    30:30:void skipIdentifier(boolean):322:322 -> b
+    31:31:void skipIdentifier(boolean):315:315 -> b
+    32:36:java.lang.String substring(int):331:335 -> b
+    1:12:java.lang.Object maybeParseRangeOrInt():428:439 -> c
+    1:2:void close():60:61 -> close
+    1:5:char nextChar():99:103 -> d
+    6:6:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> d
+    6:6:char nextChar():103 -> d
+    7:7:char nextChar():103:103 -> d
+    1:5:int nextCodePoint():90:94 -> e
+    6:6:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> e
+    6:6:int nextCodePoint():94 -> e
+    7:7:int nextCodePoint():94:94 -> e
+    1:4:boolean nextLine():108:111 -> f
+    5:5:boolean nextLine():109:109 -> f
+    6:6:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> f
+    6:6:boolean nextLine():109 -> f
+    7:7:boolean nextLine():109:109 -> f
+    1:7:java.lang.String parseMethodName():340:346 -> g
+    1:7:int parseNumber():444:450 -> h
+    8:8:int parseNumber():445:445 -> h
+    9:9:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> h
+    9:9:int parseNumber():445 -> h
+    10:10:int parseNumber():445:445 -> h
+    1:1:int peekCodePoint():75:75 -> i
+    1:6:boolean skipLine():130:135 -> j
+    1:2:void skipWhitespace():144:145 -> k
+com.android.tools.r8.naming.ProguardMapReader$ParseException -> com.android.tools.r8.naming.P:
+    com.android.tools.r8.naming.ProguardMapReader this$0 -> e
+    int lineOffset -> b
+    boolean eol -> c
+    int lineNo -> a
+    java.lang.String msg -> d
+    1:5:void <init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String,boolean):465:469 -> <init>
+    1:4:java.lang.String toString():474:477 -> toString
+com.android.tools.r8.naming.ProguardMapSupplier -> com.android.tools.r8.naming.S:
+    com.android.tools.r8.naming.ClassNameMapper classNameMapper -> b
+    java.lang.Integer minApiLevel -> e
+    com.android.tools.r8.naming.NamingLens namingLens -> c
+    int PG_MAP_ID_LENGTH -> f
+    boolean $assertionsDisabled -> g
+    boolean useClassNameMapper -> a
+    com.android.tools.r8.graph.DexApplication application -> d
+    1:10:void <clinit>():17:26 -> <clinit>
+    1:6:void <init>(boolean,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):54:59 -> <init>
+    1:1:com.android.tools.r8.naming.ProguardMapSupplier fromClassNameMapper(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.InternalOptions):30:30 -> a
+    2:2:boolean lambda$getProguardMapAndId$0(int):76:76 -> a
+    3:9:java.lang.String getBody():107:113 -> a
+    3:9:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
+    10:127:boolean com.android.tools.r8.naming.NamingLens.isIdentityLens():0:117 -> a
+    10:127:java.lang.String getBody():113 -> a
+    10:127:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
+    128:141:java.lang.String getBody():114:127 -> a
+    128:141:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
+    142:142:java.lang.String getBody():125:125 -> a
+    142:142:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
+    143:169:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():70:96 -> a
+    170:178:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():95:103 -> a
+com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId -> com.android.tools.r8.naming.S$a:
+    java.lang.String map -> a
+    java.lang.String id -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():38:38 -> <clinit>
+    1:4:void <init>(java.lang.String,java.lang.String):42:45 -> <init>
+com.android.tools.r8.naming.Range -> com.android.tools.r8.naming.T:
+    int to -> b
+    int from -> a
+    1:3:void <init>(int,int):12:14 -> <init>
+    1:1:boolean contains(int):19:19 -> a
+    1:6:boolean equals(java.lang.Object):32:37 -> equals
+    1:2:int hashCode():42:43 -> hashCode
+    1:1:java.lang.String toString():24:24 -> toString
+com.android.tools.r8.naming.ReservedFieldNamingState -> com.android.tools.r8.naming.V:
+    1:1:void <init>(com.android.tools.r8.graph.AppView):17:17 -> <init>
+    1:2:void includeReservations(com.android.tools.r8.naming.ReservedFieldNamingState):34:35 -> a
+    3:6:com.android.tools.r8.graph.DexType com.android.tools.r8.naming.FieldNamingStateBase.getInternalStateKey(com.android.tools.r8.graph.DexType):38:41 -> a
+    3:6:java.lang.Object com.android.tools.r8.naming.FieldNamingStateBase.getInternalState(com.android.tools.r8.graph.DexType):24 -> a
+    3:6:com.android.tools.r8.graph.DexString getReservedByName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):25 -> a
+    3:6:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):21 -> a
+    7:7:java.lang.Object com.android.tools.r8.naming.FieldNamingStateBase.getInternalState(com.android.tools.r8.graph.DexType):25:25 -> a
+    7:7:com.android.tools.r8.graph.DexString getReservedByName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):25 -> a
+    7:7:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):21 -> a
+    8:9:com.android.tools.r8.graph.DexString getReservedByName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):25:26 -> a
+    8:9:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):21 -> a
+    10:10:com.android.tools.r8.naming.ReservedFieldNamingState$InternalState createInternalState():47:47 -> a
+    10:10:java.lang.Object createInternalState():14 -> a
+    1:2:void includeReservationsFromBelow(com.android.tools.r8.naming.ReservedFieldNamingState):40:41 -> b
+com.android.tools.r8.naming.ReservedFieldNamingState$InternalState -> com.android.tools.r8.naming.U:
+    java.util.Map reservedNamesDirect -> a
+    java.util.Map reservedNamesBelow -> b
+    1:4:void <init>():50:53 -> <init>
+    1:2:com.android.tools.r8.graph.DexString getReservedByName(com.android.tools.r8.graph.DexString):56:57 -> a
+    3:3:void markReservedDirectly(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):61:61 -> a
+    4:4:void includeReservations(com.android.tools.r8.naming.ReservedFieldNamingState$InternalState):65:65 -> a
+    1:2:void includeReservationsFromBelow(com.android.tools.r8.naming.ReservedFieldNamingState$InternalState):69:70 -> b
+com.android.tools.r8.naming.SeedMapper -> com.android.tools.r8.naming.W:
+    com.android.tools.r8.com.google.common.collect.ImmutableMap mappings -> a
+    com.android.tools.r8.utils.Reporter reporter -> b
+    1:1:void <init>(java.util.Map,com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.SeedMapper$1):36:36 -> <init>
+    2:9:void <init>(java.util.Map,com.android.tools.r8.utils.Reporter):87:94 -> <init>
+    1:1:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81:81 -> a
+    2:3:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):72:73 -> a
+    2:3:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> a
+    4:4:com.android.tools.r8.naming.SeedMapper$Builder builder(com.android.tools.r8.utils.Reporter):67:67 -> a
+    4:4:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):74 -> a
+    4:4:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> a
+    5:7:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):75:77 -> a
+    5:7:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> a
+    8:12:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):73:77 -> a
+    8:12:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> a
+    13:13:com.android.tools.r8.naming.ClassNamingForMapApplier getClassNaming(com.android.tools.r8.graph.DexType):136:136 -> a
+    14:14:java.util.Set getKeyset():140:140 -> a
+    15:15:com.android.tools.r8.naming.ClassNamingForMapApplier getMapping(java.lang.String):144:144 -> a
+    1:10:void verifyMappingsAreConflictFree():98:107 -> b
+    11:11:void verifyMappingsAreConflictFree():104:104 -> b
+    12:35:void verifyMappingsAreConflictFree():103:126 -> b
+com.android.tools.r8.naming.SeedMapper$1 -> com.android.tools.r8.naming.W$a:
+com.android.tools.r8.naming.SeedMapper$Builder -> com.android.tools.r8.naming.W$b:
+    java.util.Map map -> a
+    com.android.tools.r8.utils.Reporter reporter -> b
+    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.SeedMapper$1):38:38 -> <init>
+    2:2:void <init>(com.android.tools.r8.utils.Reporter):42:42 -> <init>
+    3:7:void <init>(com.android.tools.r8.utils.Reporter):39:43 -> <init>
+    1:4:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):49:52 -> a
+    1:4:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38 -> a
+    5:8:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):51:54 -> a
+    5:8:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38 -> a
+    9:10:com.android.tools.r8.naming.SeedMapper build():61:62 -> a
+com.android.tools.r8.naming.SourceFileRewriter -> com.android.tools.r8.naming.X:
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView):25:26 -> <init>
+    1:14:void run():30:43 -> a
+    15:33:void lambda$run$2(com.android.tools.r8.graph.DexEncodedMethod):45:63 -> a
+    34:34:boolean lambda$run$0(com.android.tools.r8.graph.DexDebugEvent):60:60 -> a
+    35:35:com.android.tools.r8.graph.DexDebugEvent[] lambda$run$1(int):61:61 -> a
+com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo -> com.android.tools.r8.naming.Y.b:
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo TYPE_NAME_INSTANCE -> g
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo SIMPLE_NAME_INSTANCE -> f
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping mapping -> b
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo CANONICAL_NAME_INSTANCE -> c
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo NONE_INSTANCE -> e
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo NAME_INSTANCE -> d
+    int arrayDepth -> a
+    1:1:void <clinit>():88:88 -> <clinit>
+    2:2:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
+    2:2:void <clinit>():88 -> <clinit>
+    3:6:void <clinit>():88:91 -> <clinit>
+    7:7:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
+    7:7:void <clinit>():91 -> <clinit>
+    8:11:void <clinit>():91:94 -> <clinit>
+    12:12:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
+    12:12:void <clinit>():94 -> <clinit>
+    13:16:void <clinit>():94:97 -> <clinit>
+    17:17:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
+    17:17:void <clinit>():97 -> <clinit>
+    18:21:void <clinit>():97:100 -> <clinit>
+    22:22:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
+    22:22:void <clinit>():100 -> <clinit>
+    23:23:void <clinit>():100:100 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,int):110:112 -> <init>
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo asClassNameComputationInfo() -> a
+    1:2:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo create(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,int):117:118 -> a
+    3:15:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo getInstance(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):122:134 -> a
+    16:18:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo getInstance(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):128:130 -> a
+    19:27:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo getInstance(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):124:132 -> a
+    28:28:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo getInstance(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):126:126 -> a
+    29:33:com.android.tools.r8.graph.DexString internalComputeNameFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):155:155 -> a
+    boolean isClassNameComputationInfo() -> c
+    1:1:boolean needsToComputeName():144:144 -> e
+    2:32:boolean com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping.needsToComputeClassName():0:30 -> e
+    2:32:boolean needsToComputeName():144 -> e
+    1:5:boolean equals(java.lang.Object):174:178 -> equals
+    1:1:boolean needsToRegisterReference():149:149 -> f
+    2:36:boolean com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping.needsToRegisterTypeReference():0:34 -> f
+    2:36:boolean needsToRegisterReference():149 -> f
+    1:1:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo none():139:139 -> g
+    1:1:int hashCode():183:183 -> hashCode
+com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping -> com.android.tools.r8.naming.Y.a:
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping NONE -> a
+    boolean $assertionsDisabled -> g
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping NAME -> b
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping TYPE_NAME -> c
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping CANONICAL_NAME -> d
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping[] $VALUES -> f
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping SIMPLE_NAME -> e
+    1:7:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(java.lang.String,int):22:22 -> <init>
+    1:39:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):44:82 -> a
+    40:49:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):68:77 -> a
+    50:51:java.lang.String com.android.tools.r8.utils.DescriptorUtils.getCanonicalNameFromDescriptor(java.lang.String):297:298 -> a
+    50:51:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):61 -> a
+    52:52:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):63:63 -> a
+    53:53:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):54:54 -> a
+    54:92:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):46:84 -> a
+com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo -> com.android.tools.r8.naming.Y.c:
+    com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo FIELD_NAME_INSTANCE -> a
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:1:void <init>():18:18 -> <init>
+    com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo asFieldNameComputationInfo() -> b
+    boolean isFieldNameComputationInfo() -> d
+    boolean needsToComputeName() -> e
+    boolean needsToRegisterReference() -> f
+    1:1:com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo forFieldName():21:21 -> g
+com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo -> com.android.tools.r8.naming.Y.d:
+    1:1:void <init>():12:12 -> <init>
+    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo asClassNameComputationInfo() -> a
+    1:8:com.android.tools.r8.graph.DexString computeNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):16:23 -> a
+    9:10:com.android.tools.r8.graph.DexString computeNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):18:19 -> a
+    11:43:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo.internalComputeNameFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):0:32 -> a
+    11:43:com.android.tools.r8.graph.DexString computeNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):19 -> a
+    44:44:com.android.tools.r8.graph.DexString computeNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):26:26 -> a
+    com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo asFieldNameComputationInfo() -> b
+    boolean isClassNameComputationInfo() -> c
+    boolean isFieldNameComputationInfo() -> d
+    boolean needsToComputeName() -> e
+    boolean needsToRegisterReference() -> f
+com.android.tools.r8.naming.signature.GenericSignatureAction -> com.android.tools.r8.naming.Z.a:
+    void parsedIdentifier(java.lang.String) -> a
+    java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String) -> a
+    void parsedSymbol(char) -> a
+    java.lang.Object parsedTypeName(java.lang.String,com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition) -> a
+    void stop() -> a
+    void start() -> b
+com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition -> com.android.tools.r8.naming.Z.a$a:
+    com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition MEMBER_ANNOTATION -> c
+    com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition ENCLOSING_INNER_OR_TYPE_ANNOTATION -> b
+    com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition CLASS_SUPER_OR_INTERFACE_ANNOTATION -> a
+    1:3:void <clinit>():13:15 -> <clinit>
+    1:1:void <init>(java.lang.String,int):12:12 -> <init>
+com.android.tools.r8.naming.signature.GenericSignatureParser -> com.android.tools.r8.naming.Z.b:
+    com.android.tools.r8.naming.signature.GenericSignatureAction actions -> a
+    char[] buffer -> e
+    int pos -> f
+    boolean $assertionsDisabled -> g
+    char symbol -> b
+    java.lang.String identifier -> c
+    boolean eof -> d
+    1:1:void <clinit>():52:52 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.naming.signature.GenericSignatureAction):74:75 -> <init>
+    1:2:void parseClassSignature(java.lang.String):80:81 -> a
+    3:10:void parseClassSignature():142:149 -> a
+    3:10:void parseClassSignature(java.lang.String):82 -> a
+    11:18:void parseClassSignature(java.lang.String):83:90 -> a
+    19:19:void parseClassSignature(java.lang.String):85:85 -> a
+    20:49:void parseClassTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):216:245 -> a
+    50:60:void parseMethodTypeSignature():317:327 -> a
+    61:65:void updateReturnType():348:352 -> a
+    61:65:void parseMethodTypeSignature():329 -> a
+    66:77:void parseMethodTypeSignature():331:342 -> a
+    78:84:void expect(char):377:383 -> a
+    85:85:void expect(char):378:378 -> a
+    86:88:void parseError(java.lang.String,int):442:444 -> a
+    1:11:void parseFieldSignature(java.lang.String):112:122 -> b
+    12:12:void parseFieldSignature(java.lang.String):117:117 -> b
+    13:24:void parseOptFormalTypeParameters():156:167 -> b
+    25:39:void parseFieldTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):195:209 -> b
+    40:40:void parseFieldTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):206:206 -> b
+    41:41:void parseFieldTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):197:197 -> b
+    1:11:void parseMethodSignature(java.lang.String):96:106 -> c
+    12:12:void parseMethodSignature(java.lang.String):101:101 -> c
+    13:27:void updateTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):296:310 -> c
+    28:29:void updateTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):305:306 -> c
+    30:52:void scanIdentifier():403:425 -> c
+    53:64:void scanIdentifier():418:429 -> c
+    65:65:void parseError():438:438 -> c
+    65:65:void scanIdentifier():430 -> c
+    66:66:void scanIdentifier():433:433 -> c
+    1:6:void setInput(java.lang.String):127:132 -> d
+    7:17:void scanSymbol():362:372 -> d
+    1:17:void updateFormalTypeParameter():173:189 -> e
+    1:11:void updateOptTypeArguments():250:260 -> f
+    1:13:void updateTypeArgument():266:278 -> g
+    1:9:void updateTypeVariableSignature():284:292 -> h
+com.android.tools.r8.naming.signature.GenericSignatureRewriter -> com.android.tools.r8.naming.Z.d:
+    java.util.Map renaming -> b
+    com.android.tools.r8.graph.AppView appView -> a
+    boolean $assertionsDisabled -> d
+    com.android.tools.r8.utils.Reporter reporter -> c
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):40:40 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):44:47 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.naming.signature.GenericSignatureRewriter):33:33 -> a
+    2:2:void run(java.lang.Iterable,java.util.concurrent.ExecutorService):56:56 -> a
+    3:9:void lambda$run$5(com.android.tools.r8.graph.DexProgramClass):59:65 -> a
+    10:10:void lambda$run$5(com.android.tools.r8.graph.DexProgramClass):64:64 -> a
+    11:25:void lambda$run$5(com.android.tools.r8.graph.DexProgramClass):63:77 -> a
+    26:26:void lambda$run$2(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):73:73 -> a
+    27:27:void lambda$run$2(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):72:72 -> a
+    28:28:void lambda$run$2(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):71:71 -> a
+    29:29:void lambda$run$4(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):81:81 -> a
+    30:30:void lambda$run$4(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):80:80 -> a
+    31:31:void lambda$run$4(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):79:79 -> a
+    32:70:com.android.tools.r8.graph.DexAnnotationSet rewriteGenericSignatures(com.android.tools.r8.graph.DexAnnotationSet,java.util.function.Consumer,java.util.function.Supplier,java.util.function.BiConsumer):99:137 -> a
+    71:76:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):142:147 -> a
+    77:77:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    77:77:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):147 -> a
+    78:91:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):147:160 -> a
+    92:92:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    92:92:void lambda$run$0(com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):68 -> a
+    93:93:void lambda$run$0(com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):68:68 -> a
+    94:94:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    94:94:void lambda$run$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):76 -> a
+    95:95:void lambda$run$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):76:76 -> a
+    96:96:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    96:96:void lambda$run$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):84 -> a
+    97:97:void lambda$run$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):84:84 -> a
+    1:1:java.util.Map access$100(com.android.tools.r8.naming.signature.GenericSignatureRewriter):33:33 -> b
+    1:1:com.android.tools.r8.utils.Reporter access$200(com.android.tools.r8.naming.signature.GenericSignatureRewriter):33:33 -> c
+com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector -> com.android.tools.r8.naming.Z.c:
+    com.android.tools.r8.naming.signature.GenericSignatureRewriter this$0 -> d
+    com.android.tools.r8.graph.DexProgramClass currentClassContext -> b
+    boolean $assertionsDisabled -> e
+    java.lang.StringBuilder renamedSignature -> a
+    com.android.tools.r8.graph.DexType lastWrittenType -> c
+    1:1:void <clinit>():163:163 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.naming.signature.GenericSignatureRewriter,com.android.tools.r8.graph.DexProgramClass):168:168 -> <init>
+    2:5:void <init>(com.android.tools.r8.naming.signature.GenericSignatureRewriter,com.android.tools.r8.graph.DexProgramClass):166:169 -> <init>
+    void stop() -> a
+    1:1:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):163:163 -> a
+    2:12:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):243:253 -> a
+    2:12:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):163 -> a
+    13:13:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):252:252 -> a
+    13:13:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):163 -> a
+    14:21:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):251:258 -> a
+    14:21:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):163 -> a
+    22:38:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):257:273 -> a
+    22:38:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):163 -> a
+    39:48:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):270:279 -> a
+    39:48:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):163 -> a
+    49:58:void parsedSymbol(char):178:187 -> a
+    59:59:boolean lambda$parsedSymbol$0(java.lang.Character):184:184 -> a
+    60:60:void parsedIdentifier(java.lang.String):192:192 -> a
+    61:86:com.android.tools.r8.graph.DexType parsedTypeName(java.lang.String,com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):197:222 -> a
+    61:86:java.lang.Object parsedTypeName(java.lang.String,com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):163 -> a
+    87:91:boolean removeWrittenCharacter(java.util.function.Predicate):227:231 -> a
+    1:1:boolean lambda$removeWrittenClassCharacter$1(java.lang.Character):236:236 -> b
+    2:2:void start():286:286 -> b
+    1:1:java.lang.String getRenamedSignature():173:173 -> c
+    1:1:void removeWrittenClassCharacter():236:236 -> d
+com.android.tools.r8.optimize.ClassAndMemberPublicizer -> com.android.tools.r8.z.a:
+    com.android.tools.r8.graph.DexApplication application -> a
+    com.android.tools.r8.ir.optimize.MethodPoolCollection methodPoolCollection -> c
+    com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder lenseBuilder -> d
+    com.android.tools.r8.graph.AppView appView -> b
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):36:36 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):33:39 -> <init>
+    1:1:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):56:56 -> a
+    2:12:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):62:72 -> a
+    2:12:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):56 -> a
+    13:37:void publicizeType(com.android.tools.r8.graph.DexType):76:100 -> a
+    38:44:void publicizeType(com.android.tools.r8.graph.DexType):98:104 -> a
+    45:45:void lambda$publicizeType$0(com.android.tools.r8.graph.DexEncodedField):81:81 -> a
+    46:90:boolean publicizeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):108:152 -> a
+    46:90:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):86 -> a
+    91:91:boolean publicizeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):113:113 -> a
+    91:91:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):86 -> a
+    92:92:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):87:87 -> a
+com.android.tools.r8.optimize.InvokeSingleTargetExtractor -> com.android.tools.r8.z.c:
+    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind kind -> a
+    com.android.tools.r8.graph.DexMethod target -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):17:17 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):13:13 -> <init>
+    1:7:boolean setTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind):21:27 -> a
+    8:8:com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind getKind():42:42 -> a
+    1:1:com.android.tools.r8.graph.DexMethod getTarget():38:38 -> b
+    1:1:boolean invalid():33:33 -> c
+    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):77:77 -> registerInstanceFieldRead
+    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):72:72 -> registerInstanceFieldWrite
+    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):52:52 -> registerInvokeDirect
+    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):62:62 -> registerInvokeInterface
+    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):57:57 -> registerInvokeStatic
+    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):67:67 -> registerInvokeSuper
+    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):47:47 -> registerInvokeVirtual
+    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):82:82 -> registerNewInstance
+    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):87:87 -> registerStaticFieldRead
+    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):92:92 -> registerStaticFieldWrite
+    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):97:97 -> registerTypeReference
+com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind -> com.android.tools.r8.z.b:
+    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind ILLEGAL -> d
+    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind NONE -> e
+    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind STATIC -> b
+    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind SUPER -> c
+    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind VIRTUAL -> a
+    1:5:void <clinit>():101:105 -> <clinit>
+    1:1:void <init>(java.lang.String,int):100:100 -> <init>
+com.android.tools.r8.optimize.MemberRebindingAnalysis -> com.android.tools.r8.z.d:
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.optimize.MemberRebindingLense$Builder builder -> d
+    com.android.tools.r8.utils.InternalOptions options -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.graph.GraphLense lense -> b
+    1:1:void <clinit>():27:27 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.graph.AppView):35:40 -> <init>
+    1:1:com.android.tools.r8.graph.DexMethod validTargetFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):44:44 -> a
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    2:2:com.android.tools.r8.graph.DexMethod validTargetFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):44 -> a
+    3:14:com.android.tools.r8.graph.DexMethod validTargetFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):45:56 -> a
+    15:15:com.android.tools.r8.graph.DexType firstLibraryClassForInterfaceTarget(java.lang.Object,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):77:77 -> a
+    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    16:16:com.android.tools.r8.graph.DexType firstLibraryClassForInterfaceTarget(java.lang.Object,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):77 -> a
+    17:33:com.android.tools.r8.graph.DexType firstLibraryClassForInterfaceTarget(java.lang.Object,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):78:94 -> a
+    34:34:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):101:101 -> a
+    35:35:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    35:35:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):101 -> a
+    36:37:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):101:102 -> a
+    38:38:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    38:38:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):102 -> a
+    39:40:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):103:104 -> a
+    41:41:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    41:41:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):104 -> a
+    42:42:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):106:106 -> a
+    43:43:com.android.tools.r8.graph.DexEncodedMethod anyLookup(com.android.tools.r8.graph.DexMethod):118:118 -> a
+    44:49:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):125:130 -> a
+    50:50:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    50:50:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):130 -> a
+    51:58:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):131:138 -> a
+    59:59:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    59:59:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):138 -> a
+    60:60:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):139:139 -> a
+    61:61:boolean needsBridgeForInterfaceMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Invoke$Type):169:169 -> a
+    61:61:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):145 -> a
+    62:62:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> a
+    62:62:boolean needsBridgeForInterfaceMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Invoke$Type):169 -> a
+    62:62:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):145 -> a
+    63:66:boolean needsBridgeForInterfaceMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Invoke$Type):169:172 -> a
+    63:66:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):145 -> a
+    67:67:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):148:148 -> a
+    68:74:com.android.tools.r8.graph.DexEncodedMethod insertBridgeForInterfaceMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,java.util.function.Function):189:195 -> a
+    68:74:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):147 -> a
+    75:76:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):154:155 -> a
+    77:85:com.android.tools.r8.graph.DexEncodedMethod insertBridgeForVisibilityIfNeeded(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.util.function.Function):238:246 -> a
+    77:85:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):158 -> a
+    86:86:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):162:162 -> a
+    87:87:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):156:156 -> a
+    88:89:boolean mayNeedBridgeForVisibility(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):213:214 -> a
+    88:89:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):156 -> a
+    90:90:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    90:90:boolean mayNeedBridgeForVisibility(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):214 -> a
+    90:90:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):156 -> a
+    91:97:boolean mayNeedBridgeForVisibility(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):218:224 -> a
+    91:97:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):156 -> a
+    98:101:com.android.tools.r8.graph.DexProgramClass findHolderForInterfaceMethodBridge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):200:203 -> a
+    102:102:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    102:102:com.android.tools.r8.graph.DexProgramClass findHolderForInterfaceMethodBridge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):203 -> a
+    103:107:com.android.tools.r8.graph.DexProgramClass findHolderForInterfaceMethodBridge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):205:209 -> a
+    108:114:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):254:260 -> a
+    115:115:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    115:115:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):260 -> a
+    116:120:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):261:265 -> a
+    121:121:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    121:121:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):265 -> a
+    122:132:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):266:276 -> a
+    133:135:void computeFieldRebinding():282:284 -> a
+    136:136:void computeFieldRebindingForIndirectAccesses(com.android.tools.r8.graph.FieldAccessInfo):288:288 -> a
+    137:155:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):294:312 -> a
+    156:156:com.android.tools.r8.graph.DexField validTargetFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField,java.util.function.BiFunction):61:61 -> a
+    156:156:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
+    157:157:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    157:157:com.android.tools.r8.graph.DexField validTargetFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField,java.util.function.BiFunction):61 -> a
+    157:157:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
+    158:168:com.android.tools.r8.graph.DexField validTargetFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField,java.util.function.BiFunction):62:72 -> a
+    158:168:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
+    169:169:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313:313 -> a
+    170:170:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):312:312 -> a
+    171:171:boolean lambda$computeFieldRebindingForIndirectAccessWithContexts$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):310:310 -> a
+    172:172:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):328:328 -> a
+    173:173:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    173:173:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):329 -> a
+    174:174:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):330:330 -> a
+    175:177:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):335:337 -> a
+    178:183:boolean isMemberVisibleFromOriginalContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):342:347 -> a
+    1:1:com.android.tools.r8.graph.DexEncodedMethod classLookup(com.android.tools.r8.graph.DexMethod):110:110 -> b
+    2:6:boolean isTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):319:323 -> b
+    7:21:com.android.tools.r8.graph.GraphLense run():351:365 -> b
+    1:1:com.android.tools.r8.graph.DexEncodedMethod interfaceLookup(com.android.tools.r8.graph.DexMethod):114:114 -> c
+com.android.tools.r8.optimize.MemberRebindingLense -> com.android.tools.r8.z.f:
+    com.android.tools.r8.graph.AppView appView -> a
+    1:7:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):43:49 -> <init>
+    8:16:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):42:50 -> <init>
+    1:1:com.android.tools.r8.optimize.MemberRebindingLense$Builder builder(com.android.tools.r8.graph.AppView):54:54 -> a
+    1:1:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):59:59 -> mapInvocationType
+com.android.tools.r8.optimize.MemberRebindingLense$Builder -> com.android.tools.r8.z.e:
+    com.android.tools.r8.graph.AppView appView -> f
+    boolean $assertionsDisabled -> g
+    1:1:void <clinit>():18:18 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.AppView):22:23 -> <init>
+    1:5:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.GraphLense):27:31 -> a
+com.android.tools.r8.optimize.PublicizerLense -> com.android.tools.r8.z.i:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.Set publicizedMethods -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.optimize.PublicizerLense$1):17:17 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):24:30 -> <init>
+    9:18:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):23:32 -> <init>
+    1:1:com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder createBuilder():67:67 -> b
+    1:5:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):44:48 -> lookupMethod
+    6:9:boolean publicizedMethodIsPresentOnHolder(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):55:58 -> lookupMethod
+    6:9:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):48 -> lookupMethod
+    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> lookupMethod
+    10:10:boolean publicizedMethodIsPresentOnHolder(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):58 -> lookupMethod
+    10:10:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):48 -> lookupMethod
+    11:14:boolean publicizedMethodIsPresentOnHolder(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):59:62 -> lookupMethod
+    11:14:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):48 -> lookupMethod
+    15:17:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):49:51 -> lookupMethod
+com.android.tools.r8.optimize.PublicizerLense$1 -> com.android.tools.r8.z.g:
+com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder -> com.android.tools.r8.z.h:
+    java.util.Set publicizedMethods -> a
+    1:1:void <init>(com.android.tools.r8.optimize.PublicizerLense$1):70:70 -> <init>
+    2:2:void <init>():73:73 -> <init>
+    3:3:void <init>():71:71 -> <init>
+    1:4:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.AppView):77:80 -> a
+    5:5:void add(com.android.tools.r8.graph.DexMethod):84:84 -> a
+com.android.tools.r8.optimize.VisibilityBridgeRemover -> com.android.tools.r8.z.j:
+    com.android.tools.r8.graph.AppView appView -> a
+    java.util.function.Consumer unneededVisibilityBridgeConsumer -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):25:25 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Consumer):30:32 -> <init>
+    1:1:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):48:48 -> a
+    2:16:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):69:83 -> a
+    2:16:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):49 -> a
+    17:17:boolean com.android.tools.r8.graph.DexMethod.hasSameProtoAndName(com.android.tools.r8.graph.DexMethod):101:101 -> a
+    17:17:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):83 -> a
+    17:17:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):49 -> a
+    18:26:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):84:92 -> a
+    18:26:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):49 -> a
+    27:27:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):91:91 -> a
+    27:27:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):49 -> a
+    28:40:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):51:63 -> a
+    41:41:boolean lambda$removeUnneededVisibilityBridges$0(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):62:62 -> a
+    42:42:com.android.tools.r8.graph.DexEncodedMethod[] lambda$removeUnneededVisibilityBridges$1(int):63:63 -> a
+    43:43:void run():105:105 -> a
+    44:50:void removeUnneededVisibilityBridgesFromClass(com.android.tools.r8.graph.DexProgramClass):36:42 -> a
+    44:50:void run():106 -> a
+com.android.tools.r8.org.objectweb.asm.AnnotationVisitor -> com.android.tools.r8.A.a.a.a:
+    1:1:void <init>(int):56:56 -> <init>
+    2:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.AnnotationVisitor):67:69 -> <init>
+    void visit(java.lang.String,java.lang.Object) -> a
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String) -> a
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String) -> a
+    void visitEnd() -> a
+    void visitEnum(java.lang.String,java.lang.String,java.lang.String) -> a
+com.android.tools.r8.org.objectweb.asm.AnnotationWriter -> com.android.tools.r8.A.a.a.b:
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter previousAnnotation -> f
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter nextAnnotation -> g
+    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> a
+    com.android.tools.r8.org.objectweb.asm.ByteVector annotation -> c
+    int numElementValuePairsOffset -> d
+    int numElementValuePairs -> e
+    boolean useNamedValues -> b
+    1:9:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,boolean,com.android.tools.r8.org.objectweb.asm.ByteVector,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):115:123 -> <init>
+    1:4:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):142:145 -> a
+    5:5:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):173:173 -> a
+    6:6:void com.android.tools.r8.org.objectweb.asm.TypeReference.putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):433:433 -> a
+    6:6:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):175 -> a
+    7:25:void com.android.tools.r8.org.objectweb.asm.TypeReference.putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):412:430 -> a
+    7:25:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):175 -> a
+    26:26:void com.android.tools.r8.org.objectweb.asm.TypeReference.putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):407:407 -> a
+    26:26:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):175 -> a
+    27:30:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):176:179 -> a
+    31:98:void visit(java.lang.String,java.lang.Object):191:258 -> a
+    99:105:void visitEnum(java.lang.String,java.lang.String,java.lang.String):266:272 -> a
+    106:112:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):279:285 -> a
+    113:125:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):292:304 -> a
+    126:129:void visitEnd():309:312 -> a
+    130:145:int computeAnnotationsSize(com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):373:388 -> a
+    146:158:void putAnnotations(int,com.android.tools.r8.org.objectweb.asm.ByteVector):410:422 -> a
+    159:159:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):455:455 -> a
+    160:165:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):454:459 -> a
+    166:171:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):458:463 -> a
+    172:177:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):462:467 -> a
+    178:178:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):466:466 -> a
+    179:181:int computeParameterAnnotationsSize(java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter[],int):496:498 -> a
+    182:205:void putParameterAnnotations(int,com.android.tools.r8.org.objectweb.asm.AnnotationWriter[],int,com.android.tools.r8.org.objectweb.asm.ByteVector):524:547 -> a
+    1:8:int computeAnnotationsSize(java.lang.String):332:339 -> b
+com.android.tools.r8.org.objectweb.asm.Attribute -> com.android.tools.r8.A.a.a.d:
+    byte[] content -> b
+    java.lang.String type -> a
+    com.android.tools.r8.org.objectweb.asm.Attribute nextAttribute -> c
+    1:2:void <init>(java.lang.String):64:65 -> <init>
+    1:3:com.android.tools.r8.org.objectweb.asm.Attribute read(com.android.tools.r8.org.objectweb.asm.ClassReader,int,int,char[],int,com.android.tools.r8.org.objectweb.asm.Label[]):128:130 -> a
+    4:4:int getAttributeCount():172:172 -> a
+    5:5:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable):191:191 -> a
+    6:10:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):219:223 -> a
+    11:11:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159:159 -> a
+    11:11:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):224 -> a
+    12:12:void com.android.tools.r8.org.objectweb.asm.ByteVector.<init>(byte[]):65:65 -> a
+    12:12:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159 -> a
+    12:12:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):224 -> a
+    13:13:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):225:225 -> a
+    14:27:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int):247:260 -> a
+    28:28:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.ByteVector):279:279 -> a
+    29:29:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):307:307 -> a
+    30:30:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159:159 -> a
+    30:30:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):311 -> a
+    31:31:void com.android.tools.r8.org.objectweb.asm.ByteVector.<init>(byte[]):65:65 -> a
+    31:31:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159 -> a
+    31:31:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):311 -> a
+    32:34:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):313:315 -> a
+    35:45:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):336:346 -> a
+com.android.tools.r8.org.objectweb.asm.Attribute$Set -> com.android.tools.r8.A.a.a.c:
+    com.android.tools.r8.org.objectweb.asm.Attribute[] data -> b
+    int size -> a
+    1:6:void <init>():351:356 -> <init>
+    1:2:com.android.tools.r8.org.objectweb.asm.Attribute[] toArray():369:370 -> a
+    3:4:boolean contains(com.android.tools.r8.org.objectweb.asm.Attribute):375:376 -> a
+    3:4:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):361 -> a
+    5:10:void add(com.android.tools.r8.org.objectweb.asm.Attribute):384:389 -> a
+    5:10:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):362 -> a
+    11:11:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):364:364 -> a
+com.android.tools.r8.org.objectweb.asm.ByteVector -> com.android.tools.r8.A.a.a.e:
+    byte[] data -> a
+    int length -> b
+    1:2:void <init>():45:46 -> <init>
+    3:4:void <init>(int):54:55 -> <init>
+    1:8:com.android.tools.r8.org.objectweb.asm.ByteVector put11(int,int):92:99 -> a
+    9:18:com.android.tools.r8.org.objectweb.asm.ByteVector put112(int,int,int):152:161 -> a
+    19:34:com.android.tools.r8.org.objectweb.asm.ByteVector putLong(long):216:231 -> a
+    35:59:com.android.tools.r8.org.objectweb.asm.ByteVector putUTF8(java.lang.String):244:268 -> a
+    60:60:com.android.tools.r8.org.objectweb.asm.ByteVector putUTF8(java.lang.String):246:246 -> a
+    61:99:com.android.tools.r8.org.objectweb.asm.ByteVector encodeUtf8(java.lang.String,int,int):285:323 -> a
+    100:100:com.android.tools.r8.org.objectweb.asm.ByteVector encodeUtf8(java.lang.String,int,int):298:298 -> a
+    101:107:com.android.tools.r8.org.objectweb.asm.ByteVector putByteArray(byte[],int,int):339:345 -> a
+    108:112:void enlarge(int):355:359 -> a
+    1:6:com.android.tools.r8.org.objectweb.asm.ByteVector putByte(int):75:80 -> b
+    7:15:com.android.tools.r8.org.objectweb.asm.ByteVector put12(int,int):130:138 -> b
+    16:26:com.android.tools.r8.org.objectweb.asm.ByteVector put122(int,int,int):195:205 -> b
+    1:10:com.android.tools.r8.org.objectweb.asm.ByteVector putInt(int):172:181 -> c
+    1:8:com.android.tools.r8.org.objectweb.asm.ByteVector putShort(int):110:117 -> d
+com.android.tools.r8.org.objectweb.asm.ClassReader -> com.android.tools.r8.A.a.a.f:
+    int[] bootstrapMethodOffsets -> f
+    byte[] classFileBuffer -> b
+    byte[] b -> a
+    int[] cpInfoOffsets -> c
+    com.android.tools.r8.org.objectweb.asm.ConstantDynamic[] constantDynamicValues -> e
+    int header -> h
+    java.lang.String[] constantUtf8Values -> d
+    int maxStringLength -> g
+    1:1:void <init>(byte[]):162:162 -> <init>
+    2:2:void <init>(byte[],int,int):176:176 -> <init>
+    3:73:void <init>(byte[],int,boolean):188:258 -> <init>
+    74:106:void <init>(byte[],int,boolean):239:271 -> <init>
+    107:107:void <init>(java.io.InputStream):283:283 -> <init>
+    1:12:byte[] readStream(java.io.InputStream,boolean):312:312 -> a
+    20:24:byte[] readStream(java.io.InputStream,boolean):320:324 -> a
+    25:25:byte[] readStream(java.io.InputStream,boolean):310:310 -> a
+    26:139:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):421:534 -> a
+    140:146:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):533:539 -> a
+    147:147:void readModuleAttributes(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):716:716 -> a
+    147:147:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):544 -> a
+    148:148:java.lang.String readStringish(int,char[]):3493:3493 -> a
+    148:148:java.lang.String readModule(int,char[]):3523 -> a
+    148:148:void readModuleAttributes(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):720 -> a
+    148:148:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):544 -> a
+    149:246:void readModuleAttributes(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):721:818 -> a
+    149:246:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):544 -> a
+    247:270:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):550:573 -> a
+    271:290:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):572:591 -> a
+    291:312:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):590:611 -> a
+    313:338:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):610:635 -> a
+    339:379:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):634:674 -> a
+    380:390:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):670:680 -> a
+    391:478:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):835:922 -> a
+    391:478:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
+    479:498:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):921:940 -> a
+    479:498:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
+    499:520:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):939:960 -> a
+    499:520:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
+    521:546:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):959:984 -> a
+    521:546:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
+    547:569:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):983:1005 -> a
+    547:569:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
+    570:570:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):685:685 -> a
+    571:678:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1019:1126 -> a
+    571:678:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
+    679:699:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1122:1142 -> a
+    679:699:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
+    700:720:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1138:1158 -> a
+    700:720:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
+    721:748:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1156:1183 -> a
+    721:748:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
+    749:768:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1182:1201 -> a
+    749:768:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
+    769:790:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1200:1221 -> a
+    769:790:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
+    791:816:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1220:1245 -> a
+    791:816:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
+    817:860:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1244:1287 -> a
+    817:860:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
+    861:861:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):692:692 -> a
+    862:1163:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1308:1609 -> a
+    1164:1217:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1511:1564 -> a
+    1218:1223:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1546:1551 -> a
+    1224:1492:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1490:1758 -> a
+    1493:1548:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2964:3019 -> a
+    1493:1548:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
+    1549:1567:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2997:3015 -> a
+    1549:1567:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
+    1568:1568:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2991:2991 -> a
+    1568:1568:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
+    1569:1575:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2988:2994 -> a
+    1569:1575:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
+    1576:1576:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2985:2985 -> a
+    1576:1576:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
+    1577:1648:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1770:1841 -> a
+    1649:1649:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1834:1834 -> a
+    1650:1725:int readStackMapFrame(int,boolean,boolean,com.android.tools.r8.org.objectweb.asm.Context):3045:3120 -> a
+    1650:1725:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1854 -> a
+    1726:1726:int readStackMapFrame(int,boolean,boolean,com.android.tools.r8.org.objectweb.asm.Context):3117:3117 -> a
+    1726:1726:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1854 -> a
+    1727:2127:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1863:2263 -> a
+    2128:2128:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2110:2110 -> a
+    2129:2129:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2109:2109 -> a
+    2130:2141:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2088:2099 -> a
+    2142:2142:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2091:2091 -> a
+    2143:2143:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2056:2056 -> a
+    2144:2349:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2054:2259 -> a
+    2350:2350:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2258:2258 -> a
+    2351:2354:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2118:2121 -> a
+    2355:2484:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2120:2249 -> a
+    2485:2500:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2225:2240 -> a
+    2501:2511:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2204:2214 -> a
+    2512:2522:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2150:2160 -> a
+    2523:2532:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2133:2142 -> a
+    2533:2533:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2049:2049 -> a
+    2534:2739:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2048:2253 -> a
+    2740:2740:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2027:2027 -> a
+    2741:2930:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2003:2192 -> a
+    2931:2931:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2187:2187 -> a
+    2932:2932:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2183:2183 -> a
+    2933:2933:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2179:2179 -> a
+    2934:3235:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1979:2280 -> a
+    3236:3265:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2279:2308 -> a
+    3266:3337:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2307:2378 -> a
+    3338:3367:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2377:2406 -> a
+    3368:3394:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2405:2431 -> a
+    3395:3395:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2475:2475 -> a
+    3396:3399:com.android.tools.r8.org.objectweb.asm.Label readLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2445:2448 -> a
+    3396:3399:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2476 -> a
+    3400:3400:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2476:2476 -> a
+    3401:3406:int getTypeAnnotationBytecodeOffset(int[],int):2603:2608 -> a
+    3407:3465:int readTypeAnnotationTarget(com.android.tools.r8.org.objectweb.asm.Context,int):2624:2682 -> a
+    3466:3512:int readTypeAnnotationTarget(com.android.tools.r8.org.objectweb.asm.Context,int):2641:2687 -> a
+    3513:3526:void readParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2710:2723 -> a
+    3527:3527:void readParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2722:2722 -> a
+    3528:3545:int readElementValues(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,boolean,char[]):2752:2769 -> a
+    3546:3552:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2791:2797 -> a
+    3553:3706:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2795:2948 -> a
+    3707:3714:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2836:2843 -> a
+    3715:3738:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2840:2863 -> a
+    3739:3817:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2862:2940 -> a
+    3818:3818:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2939:2939 -> a
+    3819:3856:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2878:2915 -> a
+    3857:3877:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2902:2922 -> a
+    3878:3889:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2921:2932 -> a
+    3890:3894:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2931:2935 -> a
+    3895:3900:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2894:2899 -> a
+    3901:3906:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2870:2875 -> a
+    3907:3910:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2828:2828 -> a
+    3911:3913:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2822:2822 -> a
+    3914:3914:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2818:2818 -> a
+    3915:3915:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2817:2817 -> a
+    3916:3918:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2809:2809 -> a
+    3919:3921:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2804:2804 -> a
+    3970:3970:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2853:2853 -> a
+    3971:3971:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2852:2852 -> a
+    3972:4004:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3145:3177 -> a
+    4005:4005:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3173:3173 -> a
+    4006:4006:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3169:3169 -> a
+    4007:4007:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3166:3166 -> a
+    4008:4008:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3163:3163 -> a
+    4009:4009:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3160:3160 -> a
+    4010:4010:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3157:3157 -> a
+    4011:4011:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3154:3154 -> a
+    4012:4012:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3151:3151 -> a
+    4013:4013:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3148:3148 -> a
+    4014:4043:int getFirstAttributeOffset():3196:3225 -> a
+    4044:4050:com.android.tools.r8.org.objectweb.asm.Attribute readAttribute(com.android.tools.r8.org.objectweb.asm.Attribute[],java.lang.String,int,int,char[],int,com.android.tools.r8.org.objectweb.asm.Label[]):3296:3302 -> a
+    4051:4051:int getItem(int):3329:3329 -> a
+    4052:4068:java.lang.String readUtf(int,int,char[]):3458:3474 -> a
+    4069:4069:java.lang.String readStringish(int,char[]):3493:3493 -> a
+    4069:4069:java.lang.String readClass(int,char[]):3508 -> a
+    1:4:com.android.tools.r8.org.objectweb.asm.Label readLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2445:2448 -> b
+    1:4:com.android.tools.r8.org.objectweb.asm.Label createLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2461 -> b
+    5:5:com.android.tools.r8.org.objectweb.asm.Label createLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2462:2462 -> b
+    6:59:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2503:2556 -> b
+    60:112:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2519:2571 -> b
+    113:127:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2570:2584 -> b
+    128:152:int[] readBootstrapMethodsAttribute(int):3241:3265 -> b
+    153:153:int getItemCount():3315:3315 -> b
+    154:183:java.lang.Object readConst(int,char[]):3587:3616 -> b
+    184:200:com.android.tools.r8.org.objectweb.asm.ConstantDynamic readConstantDynamic(int,char[]):3552:3568 -> b
+    184:200:java.lang.Object readConst(int,char[]):3614 -> b
+    201:211:java.lang.Object readConst(int,char[]):3602:3612 -> b
+    212:212:java.lang.Object readConst(int,char[]):3600:3600 -> b
+    213:213:java.lang.Object readConst(int,char[]):3598:3598 -> b
+    214:214:java.lang.Object readConst(int,char[]):3596:3596 -> b
+    215:215:java.lang.Object readConst(int,char[]):3594:3594 -> b
+    216:216:java.lang.Object readConst(int,char[]):3592:3592 -> b
+    217:217:java.lang.Object readConst(int,char[]):3590:3590 -> b
+    1:1:int getMaxStringLength():3340:3340 -> c
+    2:2:int readByte(int):3351:3351 -> c
+    3:3:java.lang.String readStringish(int,char[]):3493:3493 -> c
+    3:3:java.lang.String readModule(int,char[]):3523 -> c
+    1:2:int readInt(int):3386:3387 -> d
+    3:3:java.lang.String readStringish(int,char[]):3493:3493 -> d
+    3:3:java.lang.String readPackage(int,char[]):3538 -> d
+    1:2:long readLong(int):3401:3402 -> e
+    3:7:java.lang.String readUTF8(int,char[]):3419:3423 -> e
+    1:2:short readShort(int):3374:3375 -> f
+    3:9:java.lang.String readUtf(int,char[]):3436:3442 -> f
+    1:2:int readUnsignedShort(int):3362:3363 -> g
+com.android.tools.r8.org.objectweb.asm.ClassTooLargeException -> com.android.tools.r8.A.a.a.g:
+    1:1:void <init>(java.lang.String,int):49:49 -> <init>
+com.android.tools.r8.org.objectweb.asm.ClassVisitor -> com.android.tools.r8.A.a.a.h:
+    com.android.tools.r8.org.objectweb.asm.ClassVisitor cv -> b
+    int api -> a
+    1:1:void <init>(int):57:57 -> <init>
+    2:7:void <init>(int,com.android.tools.r8.org.objectweb.asm.ClassVisitor):68:73 -> <init>
+    1:2:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):99:100 -> a
+    3:4:void visitSource(java.lang.String,java.lang.String):113:114 -> a
+    5:9:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):129:133 -> a
+    10:10:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):130:130 -> a
+    11:15:void visitNestHost(java.lang.String):149:153 -> a
+    16:16:void visitNestHost(java.lang.String):150:150 -> a
+    17:18:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):168:169 -> a
+    19:20:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):182:183 -> a
+    21:25:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):205:209 -> a
+    26:26:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):206:206 -> a
+    27:28:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):220:221 -> a
+    29:30:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):257:258 -> a
+    31:32:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):286:287 -> a
+    33:34:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):314:315 -> a
+    35:36:void visitEnd():325:326 -> a
+    1:5:void visitNestMember(java.lang.String):235:239 -> b
+    6:6:void visitNestMember(java.lang.String):236:236 -> b
+com.android.tools.r8.org.objectweb.asm.ClassWriter -> com.android.tools.r8.A.a.a.i:
+    int numberOfInnerClasses -> n
+    com.android.tools.r8.org.objectweb.asm.FieldWriter firstField -> j
+    int interfaceCount -> h
+    int thisClass -> f
+    com.android.tools.r8.org.objectweb.asm.ByteVector debugExtension -> t
+    com.android.tools.r8.org.objectweb.asm.ModuleWriter moduleWriter -> y
+    int numberOfNestMemberClasses -> A
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> x
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> v
+    com.android.tools.r8.org.objectweb.asm.MethodWriter firstMethod -> l
+    com.android.tools.r8.org.objectweb.asm.ByteVector nestMemberClasses -> B
+    int sourceFileIndex -> s
+    int enclosingMethodIndex -> q
+    com.android.tools.r8.org.objectweb.asm.FieldWriter lastField -> k
+    com.android.tools.r8.org.objectweb.asm.ByteVector innerClasses -> o
+    int superClass -> g
+    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> C
+    int compute -> D
+    int accessFlags -> e
+    int version -> c
+    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> d
+    int[] interfaces -> i
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> w
+    int nestHostClassIndex -> z
+    com.android.tools.r8.org.objectweb.asm.MethodWriter lastMethod -> m
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> u
+    int signatureIndex -> r
+    int enclosingClassIndex -> p
+    1:8:void <init>(com.android.tools.r8.org.objectweb.asm.ClassReader,int):237:244 -> <init>
+    void visitEnd() -> a
+    1:16:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):260:275 -> a
+    17:20:void visitSource(java.lang.String,java.lang.String):282:285 -> a
+    21:26:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):292:297 -> a
+    27:27:void visitNestHost(java.lang.String):302:302 -> a
+    28:30:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):308:310 -> a
+    31:35:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):317:321 -> a
+    36:41:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):329:334 -> a
+    42:43:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):342:343 -> a
+    44:60:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):358:374 -> a
+    61:68:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):387:394 -> a
+    69:76:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):404:411 -> a
+    77:77:int newConst(java.lang.Object):714:714 -> a
+    1:5:void visitNestMember(java.lang.String):348:352 -> b
+    6:210:byte[] toByteArray():435:639 -> b
+    211:223:com.android.tools.r8.org.objectweb.asm.Attribute[] getAttributePrototypes():685:697 -> b
+    211:223:byte[] replaceAsmInstructions(byte[],boolean):656 -> b
+    211:223:byte[] toByteArray():639 -> b
+    224:243:byte[] replaceAsmInstructions(byte[],boolean):657:676 -> b
+    224:243:byte[] toByteArray():639 -> b
+    244:244:byte[] toByteArray():641:641 -> b
+    245:245:byte[] toByteArray():538:538 -> b
+com.android.tools.r8.org.objectweb.asm.ConstantDynamic -> com.android.tools.r8.A.a.a.j:
+    java.lang.Object[] bootstrapMethodArguments -> d
+    java.lang.String name -> a
+    java.lang.String descriptor -> b
+    com.android.tools.r8.org.objectweb.asm.Handle bootstrapMethod -> c
+    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):67:71 -> <init>
+    1:1:com.android.tools.r8.org.objectweb.asm.Handle getBootstrapMethod():98:98 -> a
+    1:1:java.lang.Object[] getBootstrapMethodArgumentsUnsafe():132:132 -> b
+    1:1:java.lang.String getDescriptor():89:89 -> c
+    1:1:java.lang.String getName():80:80 -> d
+    1:8:boolean equals(java.lang.Object):155:162 -> equals
+    1:4:int hashCode():167:170 -> hashCode
+    1:7:java.lang.String toString():175:181 -> toString
+com.android.tools.r8.org.objectweb.asm.Context -> com.android.tools.r8.A.a.a.k:
+    int currentFrameType -> n
+    java.lang.String currentMethodDescriptor -> f
+    int currentFrameLocalCount -> o
+    char[] charBuffer -> c
+    int currentFrameOffset -> m
+    int currentTypeAnnotationTarget -> h
+    com.android.tools.r8.org.objectweb.asm.Attribute[] attributePrototypes -> a
+    int currentMethodAccessFlags -> d
+    int parsingOptions -> b
+    com.android.tools.r8.org.objectweb.asm.Label[] currentMethodLabels -> g
+    com.android.tools.r8.org.objectweb.asm.Label[] currentLocalVariableAnnotationRangeEnds -> k
+    com.android.tools.r8.org.objectweb.asm.Label[] currentLocalVariableAnnotationRangeStarts -> j
+    com.android.tools.r8.org.objectweb.asm.TypePath currentTypeAnnotationTargetPath -> i
+    java.lang.Object[] currentFrameStackTypes -> s
+    java.lang.Object[] currentFrameLocalTypes -> q
+    int currentFrameStackCount -> r
+    java.lang.String currentMethodName -> e
+    int[] currentLocalVariableAnnotationRangeIndices -> l
+    int currentFrameLocalCountDelta -> p
+    1:1:void <init>():36:36 -> <init>
+com.android.tools.r8.org.objectweb.asm.CurrentFrame -> com.android.tools.r8.A.a.a.l:
+    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.Label):40:40 -> <init>
+    1:4:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):51:54 -> a
+com.android.tools.r8.org.objectweb.asm.Edge -> com.android.tools.r8.A.a.a.m:
+    com.android.tools.r8.org.objectweb.asm.Label successor -> b
+    int info -> a
+    com.android.tools.r8.org.objectweb.asm.Edge nextEdge -> c
+    1:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Edge):86:89 -> <init>
+com.android.tools.r8.org.objectweb.asm.FieldVisitor -> com.android.tools.r8.A.a.a.n:
+    com.android.tools.r8.org.objectweb.asm.FieldVisitor fv -> a
+    1:1:void <init>(int):55:55 -> <init>
+    2:7:void <init>(int,com.android.tools.r8.org.objectweb.asm.FieldVisitor):66:71 -> <init>
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean) -> a
+    void visitEnd() -> a
+    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
+    1:2:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):119:120 -> a
+com.android.tools.r8.org.objectweb.asm.FieldWriter -> com.android.tools.r8.A.a.a.o:
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> h
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> i
+    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> l
+    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> b
+    int signatureIndex -> f
+    int constantValueIndex -> g
+    int nameIndex -> d
+    int descriptorIndex -> e
+    int accessFlags -> c
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> j
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> k
+    1:10:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):127:136 -> <init>
+    void visitEnd() -> a
+    1:5:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):147:151 -> a
+    6:11:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):159:164 -> a
+    12:13:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):172:173 -> a
+    14:66:void putFieldInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):220:272 -> a
+    67:67:void collectAttributePrototypes(com.android.tools.r8.org.objectweb.asm.Attribute$Set):282:282 -> a
+    1:14:int computeFieldInfoSize():195:208 -> b
+com.android.tools.r8.org.objectweb.asm.Frame -> com.android.tools.r8.A.a.a.p:
+    short outputStackTop -> g
+    short outputStackStart -> f
+    int[] initializations -> i
+    int[] inputLocals -> b
+    int[] inputStack -> c
+    int[] outputLocals -> d
+    int initializationCount -> h
+    int[] outputStack -> e
+    com.android.tools.r8.org.objectweb.asm.Label owner -> a
+    1:2:void <init>(com.android.tools.r8.org.objectweb.asm.Label):242:243 -> <init>
+    1:8:void copyFrom(com.android.tools.r8.org.objectweb.asm.Frame):255:262 -> a
+    9:16:int getAbstractTypeFromApiFormat(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.Object):281:288 -> a
+    17:75:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):316:374 -> a
+    76:110:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):336:370 -> a
+    111:112:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):366:367 -> a
+    113:114:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):332:333 -> a
+    115:135:void setInputFrameFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,int):397:417 -> a
+    136:159:void setInputFrameFromApiFormat(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.Object[],int,java.lang.Object[]):440:463 -> a
+    160:160:int getInputStackSize():467:467 -> a
+    161:170:int getLocal(int):481:490 -> a
+    171:176:void push(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String):551:556 -> a
+    177:183:void pop(java.lang.String):597:603 -> a
+    184:184:void pop(java.lang.String):601:601 -> a
+    185:200:int getInitializedType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int):645:660 -> a
+    201:201:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1106:1106 -> a
+    202:203:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1102:1103 -> a
+    204:209:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1093:1098 -> a
+    210:215:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1084:1089 -> a
+    216:243:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1053:1080 -> a
+    244:244:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1077:1077 -> a
+    245:245:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1068:1068 -> a
+    246:246:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1065:1065 -> a
+    247:259:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1062:1074 -> a
+    260:260:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1071:1071 -> a
+    261:261:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1059:1059 -> a
+    262:262:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1056:1056 -> a
+    263:263:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1050:1050 -> a
+    264:265:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1046:1047 -> a
+    266:269:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1036:1039 -> a
+    270:281:void addInitializedType(int):619:630 -> a
+    270:281:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1040 -> a
+    282:282:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1043:1043 -> a
+    283:284:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1029:1030 -> a
+    285:286:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1025:1026 -> a
+    287:287:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1022:1022 -> a
+    288:288:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1019:1019 -> a
+    289:289:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1017:1017 -> a
+    290:291:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1012:1013 -> a
+    292:293:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1006:1007 -> a
+    294:296:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):999:1001 -> a
+    297:298:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):994:995 -> a
+    299:301:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):989:991 -> a
+    302:302:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):985:985 -> a
+    303:305:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):980:982 -> a
+    306:308:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):973:975 -> a
+    309:311:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):953:955 -> a
+    312:315:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):918:921 -> a
+    316:325:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):906:915 -> a
+    326:333:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):896:903 -> a
+    334:339:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):888:893 -> a
+    340:346:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):879:885 -> a
+    347:351:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):872:876 -> a
+    352:354:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):867:869 -> a
+    355:355:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):864:864 -> a
+    356:356:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):851:851 -> a
+    357:357:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):832:832 -> a
+    358:358:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):828:828 -> a
+    359:371:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):806:818 -> a
+    372:372:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):813:813 -> a
+    373:383:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):790:800 -> a
+    384:384:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):795:795 -> a
+    385:387:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):783:785 -> a
+    388:576:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):778:966 -> a
+    577:748:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):772:943 -> a
+    749:749:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):768:768 -> a
+    750:781:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):733:764 -> a
+    782:782:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):761:761 -> a
+    783:786:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):755:758 -> a
+    787:787:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):752:752 -> a
+    788:788:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):749:749 -> a
+    789:790:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):745:746 -> a
+    791:795:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):738:742 -> a
+    796:796:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):735:735 -> a
+    797:798:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):729:730 -> a
+    799:799:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):724:724 -> a
+    800:801:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):717:718 -> a
+    802:802:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):712:712 -> a
+    803:803:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):700:700 -> a
+    804:814:int getConcreteOutputType(int,int):1129:1139 -> a
+    815:890:boolean merge(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.Frame,int):1169:1244 -> a
+    891:958:boolean merge(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int[],int):1268:1335 -> a
+    959:996:void accept(com.android.tools.r8.org.objectweb.asm.MethodWriter):1356:1393 -> a
+    1:11:void setLocal(int,int):504:514 -> b
+    12:16:int pop():567:571 -> b
+    17:23:void pop(int):581:587 -> b
+    1:16:void push(int):524:539 -> c
+com.android.tools.r8.org.objectweb.asm.Handle -> com.android.tools.r8.A.a.a.q:
+    boolean isInterface -> e
+    java.lang.String name -> c
+    java.lang.String owner -> b
+    int tag -> a
+    java.lang.String descriptor -> d
+    1:6:void <init>(int,java.lang.String,java.lang.String,java.lang.String,boolean):98:103 -> <init>
+    1:1:java.lang.String getDesc():142:142 -> a
+    1:1:java.lang.String getName():133:133 -> b
+    1:1:java.lang.String getOwner():124:124 -> c
+    1:1:int getTag():115:115 -> d
+    1:1:boolean isInterface():151:151 -> e
+    1:9:boolean equals(java.lang.Object):159:167 -> equals
+    1:3:int hashCode():172:174 -> hashCode
+    1:1:java.lang.String toString():187:187 -> toString
+com.android.tools.r8.org.objectweb.asm.Handler -> com.android.tools.r8.A.a.a.r:
+    com.android.tools.r8.org.objectweb.asm.Handler nextHandler -> f
+    com.android.tools.r8.org.objectweb.asm.Label handlerPc -> c
+    int catchType -> d
+    com.android.tools.r8.org.objectweb.asm.Label endPc -> b
+    com.android.tools.r8.org.objectweb.asm.Label startPc -> a
+    java.lang.String catchTypeDescriptor -> e
+    1:6:void <init>(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int,java.lang.String):90:95 -> <init>
+    7:8:void <init>(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):106:107 -> <init>
+    1:17:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):123:139 -> a
+    18:19:void <init>(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):106:107 -> a
+    18:19:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):139 -> a
+    20:24:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):143:147 -> a
+    25:26:void <init>(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):106:107 -> a
+    25:26:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):147 -> a
+    27:28:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):147:148 -> a
+com.android.tools.r8.org.objectweb.asm.Label -> com.android.tools.r8.A.a.a.s:
+    com.android.tools.r8.org.objectweb.asm.Frame frame -> k
+    com.android.tools.r8.org.objectweb.asm.Edge outgoingEdges -> m
+    int bytecodeOffset -> e
+    int[] forwardReferences -> f
+    short inputStackSize -> g
+    short outputStackSize -> h
+    com.android.tools.r8.org.objectweb.asm.Label nextBasicBlock -> l
+    int[] otherLineNumbers -> d
+    short outputStackMax -> i
+    short subroutineId -> j
+    java.lang.Object info -> a
+    short lineNumber -> c
+    com.android.tools.r8.org.objectweb.asm.Label EMPTY_LIST -> o
+    short flags -> b
+    com.android.tools.r8.org.objectweb.asm.Label nextListElement -> n
+    1:1:void <clinit>():130:130 -> <clinit>
+    1:1:void <init>():288:288 -> <init>
+    1:1:com.android.tools.r8.org.objectweb.asm.Label getCanonicalInstance():321:321 -> a
+    2:14:void addLineNumber(int):334:346 -> a
+    15:20:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):357:362 -> a
+    21:33:void put(com.android.tools.r8.org.objectweb.asm.ByteVector,int,boolean):385:397 -> a
+    34:45:void addForwardReference(int,int,int):416:427 -> a
+    46:79:boolean resolve(byte[],int):445:478 -> a
+    80:91:void markSubroutine(short):506:517 -> a
+    92:126:void addSubroutineRetSuccessors(com.android.tools.r8.org.objectweb.asm.Label):541:575 -> a
+    1:13:com.android.tools.r8.org.objectweb.asm.Label pushSuccessors(com.android.tools.r8.org.objectweb.asm.Label):591:603 -> b
+    1:1:java.lang.String toString():619:619 -> toString
+com.android.tools.r8.org.objectweb.asm.MethodTooLargeException -> com.android.tools.r8.A.a.a.t:
+    1:1:void <init>(java.lang.String,java.lang.String,java.lang.String,int):57:57 -> <init>
+com.android.tools.r8.org.objectweb.asm.MethodVisitor -> com.android.tools.r8.A.a.a.u:
+    int api -> h
+    com.android.tools.r8.org.objectweb.asm.MethodVisitor mv -> i
+    1:1:void <init>(int):69:69 -> <init>
+    2:7:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor):80:85 -> <init>
+    1:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():117:118 -> a
+    3:4:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):132:133 -> a
+    5:6:void visitAnnotableParameterCount(int,boolean):180:181 -> a
+    7:8:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):201:202 -> a
+    9:10:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):213:214 -> a
+    11:12:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):288:289 -> a
+    13:14:void visitInsn(int):312:313 -> a
+    15:16:void visitTypeInsn(int,java.lang.String):362:363 -> a
+    17:18:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):379:380 -> a
+    19:19:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):419:419 -> a
+    20:21:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):398:399 -> a
+    20:21:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):423 -> a
+    22:28:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):421:427 -> a
+    29:33:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):447:451 -> a
+    34:34:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):448:448 -> a
+    35:36:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):466:467 -> a
+    37:38:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):477:478 -> a
+    39:48:void visitLdcInsn(java.lang.Object):530:539 -> a
+    49:50:void visitIincInsn(int,int):550:551 -> a
+    51:52:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):566:567 -> a
+    53:54:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):580:581 -> a
+    55:56:void visitMultiANewArrayInsn(java.lang.String,int):592:593 -> a
+    57:61:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):618:622 -> a
+    62:62:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):619:619 -> a
+    63:64:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):644:645 -> a
+    65:66:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):696:697 -> a
+    67:71:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):729:733 -> a
+    72:72:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):730:730 -> a
+    1:5:void visitParameter(java.lang.String,int):100:104 -> b
+    6:6:void visitParameter(java.lang.String,int):101:101 -> b
+    7:8:void visitCode():220:221 -> b
+    9:10:void visitIntInsn(int,int):332:333 -> b
+    11:15:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):666:670 -> b
+    16:16:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):667:667 -> b
+    17:18:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):749:750 -> b
+    1:5:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):156:160 -> c
+    6:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):157:157 -> c
+    7:8:void visitMaxs(int,int):761:762 -> c
+    9:10:void visitEnd():771:772 -> c
+    1:2:void visitVarInsn(int,int):347:348 -> d
+com.android.tools.r8.org.objectweb.asm.MethodWriter -> com.android.tools.r8.A.a.a.v:
+    boolean hasSubroutines -> d0
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> I
+    int nameIndex -> l
+    com.android.tools.r8.org.objectweb.asm.ByteVector code -> r
+    com.android.tools.r8.org.objectweb.asm.ByteVector lineNumberTable -> v
+    int signatureIndex -> G
+    com.android.tools.r8.org.objectweb.asm.ByteVector localVariableTypeTable -> z
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter[] lastRuntimeInvisibleParameterAnnotations -> M
+    int relativeStackSize -> X
+    int localVariableTypeTableLength -> y
+    int compute -> T
+    int lineNumberTableLength -> u
+    int maxLocals -> q
+    int invisibleAnnotableParameterCount -> L
+    int sourceLength -> h0
+    java.lang.String name -> m
+    com.android.tools.r8.org.objectweb.asm.Label currentBasicBlock -> W
+    int lastBytecodeOffset -> f0
+    com.android.tools.r8.org.objectweb.asm.ByteVector defaultValue -> P
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> N
+    int maxRelativeStackSize -> Y
+    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> S
+    int parametersCount -> Q
+    int[] previousFrame -> b0
+    int descriptorIndex -> n
+    boolean hasAsmInstructions -> e0
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastCodeRuntimeVisibleTypeAnnotation -> C
+    com.android.tools.r8.org.objectweb.asm.Label lastBasicBlock -> V
+    int numberOfExceptions -> E
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> O
+    com.android.tools.r8.org.objectweb.asm.ByteVector localVariableTable -> x
+    int stackMapTableNumberOfEntries -> A
+    int currentLocals -> Z
+    com.android.tools.r8.org.objectweb.asm.ByteVector stackMapTableEntries -> B
+    com.android.tools.r8.org.objectweb.asm.Label firstBasicBlock -> U
+    int localVariableTableLength -> w
+    com.android.tools.r8.org.objectweb.asm.Handler lastHandler -> t
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter[] lastRuntimeVisibleParameterAnnotations -> K
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> H
+    int previousFrameOffset -> a0
+    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastCodeRuntimeInvisibleTypeAnnotation -> D
+    int visibleAnnotableParameterCount -> J
+    int accessFlags -> k
+    com.android.tools.r8.org.objectweb.asm.ByteVector parameters -> R
+    int sourceOffset -> g0
+    java.lang.String descriptor -> o
+    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> j
+    int[] exceptionIndexTable -> F
+    com.android.tools.r8.org.objectweb.asm.Handler firstHandler -> s
+    int[] STACK_SIZE_DELTA -> i0
+    int[] currentFrame -> c0
+    int maxStack -> p
+    1:1:void <clinit>():81:81 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],int):595:595 -> <init>
+    2:306:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],int):320:624 -> <init>
+    1:1:boolean com.android.tools.r8.org.objectweb.asm.Attribute.isCodeAttribute():0:0 -> a
+    1:1:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):716 -> a
+    2:3:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):720:721 -> a
+    4:5:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():651:652 -> a
+    6:10:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):658:662 -> a
+    11:13:void visitAnnotableParameterCount(int,boolean):683:685 -> a
+    14:27:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):693:706 -> a
+    28:125:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):737:834 -> a
+    126:132:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):825:831 -> a
+    133:135:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):818:820 -> a
+    136:137:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):813:814 -> a
+    138:141:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):806:809 -> a
+    142:201:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):795:854 -> a
+    202:214:void visitInsn(int):859:871 -> a
+    215:224:void visitInsn(int):865:874 -> a
+    225:239:void visitTypeInsn(int,java.lang.String):967:981 -> a
+    240:240:void visitTypeInsn(int,java.lang.String):974:974 -> a
+    241:264:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):989:1012 -> a
+    265:265:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1008:1008 -> a
+    266:266:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1005:1005 -> a
+    267:283:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1002:1018 -> a
+    284:284:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):996:996 -> a
+    285:310:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):1030:1055 -> a
+    311:311:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):1042:1042 -> a
+    312:330:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1066:1084 -> a
+    331:331:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1076:1076 -> a
+    332:431:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):1091:1190 -> a
+    432:502:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):1198:1268 -> a
+    503:530:void visitLdcInsn(java.lang.Object):1274:1301 -> a
+    531:531:void visitLdcInsn(java.lang.Object):1295:1295 -> a
+    532:537:void visitIincInsn(int,int):1308:1313 -> a
+    538:550:void visitIincInsn(int,int):1311:1323 -> a
+    551:560:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):1331:1340 -> a
+    561:571:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):1345:1355 -> a
+    572:592:void visitSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):1359:1379 -> a
+    593:604:void visitMultiANewArrayInsn(java.lang.String,int):1385:1396 -> a
+    605:605:void visitMultiANewArrayInsn(java.lang.String,int):1392:1392 -> a
+    606:615:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1405:1414 -> a
+    616:624:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):1426:1434 -> a
+    625:650:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):1460:1485 -> a
+    651:671:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):1501:1521 -> a
+    672:677:int visitFrameStart(int,int,int):1818:1823 -> a
+    678:696:boolean canCopyMethodAttributes(com.android.tools.r8.org.objectweb.asm.ClassReader,boolean,boolean,int,int,int):2023:2041 -> a
+    697:754:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2178:2235 -> a
+    755:755:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableLength(com.android.tools.r8.org.objectweb.asm.Handler):163:163 -> a
+    755:755:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableSize(com.android.tools.r8.org.objectweb.asm.Handler):176 -> a
+    755:755:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2235 -> a
+    756:801:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2237:2282 -> a
+    802:802:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableLength(com.android.tools.r8.org.objectweb.asm.Handler):163:163 -> a
+    802:802:void com.android.tools.r8.org.objectweb.asm.Handler.putExceptionTable(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.ByteVector):187 -> a
+    802:802:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2282 -> a
+    803:811:void com.android.tools.r8.org.objectweb.asm.Handler.putExceptionTable(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.ByteVector):187:195 -> a
+    803:811:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2282 -> a
+    812:817:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2283:2288 -> a
+    818:848:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2287:2317 -> a
+    849:854:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2316:2321 -> a
+    855:882:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2320:2347 -> a
+    883:893:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2346:2356 -> a
+    894:916:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2355:2377 -> a
+    917:918:void collectAttributePrototypes(com.android.tools.r8.org.objectweb.asm.Attribute$Set):2387:2388 -> a
+    void visitCode() -> b
+    1:5:void visitParameter(java.lang.String,int):642:646 -> b
+    6:23:void visitIntInsn(int,int):881:898 -> b
+    24:24:void visitIntInsn(int,int):891:891 -> b
+    25:30:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1441:1446 -> b
+    31:36:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):1532:1537 -> b
+    37:46:void putFrameType(java.lang.Object):1971:1980 -> b
+    void visitEnd() -> c
+    1:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):670:675 -> c
+    7:7:void visitMaxs(int,int):1542:1542 -> c
+    8:12:void computeAllFrames():1557:1561 -> c
+    8:12:void visitMaxs(int,int):1543 -> c
+    13:13:int com.android.tools.r8.org.objectweb.asm.Frame.getAbstractTypeFromInternalName(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String):302:302 -> c
+    13:13:void computeAllFrames():1561 -> c
+    13:13:void visitMaxs(int,int):1543 -> c
+    14:92:void computeAllFrames():1563:1641 -> c
+    14:92:void visitMaxs(int,int):1543 -> c
+    93:93:int com.android.tools.r8.org.objectweb.asm.Frame.getAbstractTypeFromInternalName(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String):302:302 -> c
+    93:93:void computeAllFrames():1642 -> c
+    93:93:void visitMaxs(int,int):1543 -> c
+    94:105:void computeAllFrames():1642:1653 -> c
+    94:105:void visitMaxs(int,int):1543 -> c
+    106:207:void computeMaxStackAndLocal():1659:1760 -> c
+    106:207:void visitMaxs(int,int):1545 -> c
+    208:211:void visitMaxs(int,int):1547:1550 -> c
+    212:212:void addSuccessorToCurrentBasicBlock(int,com.android.tools.r8.org.objectweb.asm.Label):1779:1779 -> c
+    1:31:void visitVarInsn(int,int):905:935 -> d
+    32:70:void visitVarInsn(int,int):923:961 -> d
+    71:86:int computeMethodInfoSize():2074:2089 -> d
+    87:87:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableLength(com.android.tools.r8.org.objectweb.asm.Handler):163:163 -> d
+    87:87:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableSize(com.android.tools.r8.org.objectweb.asm.Handler):176 -> d
+    87:87:int computeMethodInfoSize():2089 -> d
+    88:116:int computeMethodInfoSize():2090:2118 -> d
+    117:200:int computeMethodInfoSize():2083:2166 -> d
+    1:10:void endCurrentBasicBlockWithNoSuccessor():1791:1800 -> e
+    11:11:void putAbstractTypes(int,int):1956:1956 -> e
+    12:15:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1422:1425 -> e
+    12:15:void putAbstractTypes(int,int):1956 -> e
+    16:17:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1418:1419 -> e
+    16:17:void putAbstractTypes(int,int):1956 -> e
+    18:69:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1414:1465 -> e
+    18:69:void putAbstractTypes(int,int):1956 -> e
+    70:70:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1450:1450 -> e
+    70:70:void putAbstractTypes(int,int):1956 -> e
+    71:71:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1447:1447 -> e
+    71:71:void putAbstractTypes(int,int):1956 -> e
+    72:72:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1444:1444 -> e
+    72:72:void putAbstractTypes(int,int):1956 -> e
+    73:94:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1441:1462 -> e
+    73:94:void putAbstractTypes(int,int):1956 -> e
+    95:95:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1456:1456 -> e
+    95:95:void putAbstractTypes(int,int):1956 -> e
+    96:113:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1453:1470 -> e
+    96:113:void putAbstractTypes(int,int):1956 -> e
+    1:1:boolean hasAsmInstructions():633:633 -> f
+    2:3:void setMethodAttributesSource(int,int):2062:2063 -> f
+    1:1:boolean hasFrames():629:629 -> g
+    2:2:void visitAbstractType(int,int):1834:1834 -> g
+    1:3:void visitFrameEnd():1843:1845 -> h
+    4:90:void putFrame():1856:1942 -> h
+    4:90:void visitFrameEnd():1847 -> h
+    91:94:void putFrame():1932:1935 -> h
+    91:94:void visitFrameEnd():1847 -> h
+    95:100:void putFrame():1924:1929 -> h
+    95:100:void visitFrameEnd():1847 -> h
+    101:104:void putFrame():1918:1921 -> h
+    101:104:void visitFrameEnd():1847 -> h
+    105:106:void putFrame():1914:1915 -> h
+    105:106:void visitFrameEnd():1847 -> h
+    107:107:void putFrame():1911:1911 -> h
+    107:107:void visitFrameEnd():1847 -> h
+    108:111:void visitFrameEnd():1848:1851 -> h
+com.android.tools.r8.org.objectweb.asm.ModuleVisitor -> com.android.tools.r8.A.a.a.w:
+    1:1:void <init>(int):55:55 -> <init>
+    2:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.ModuleVisitor):66:68 -> <init>
+    void visitExport(java.lang.String,int,java.lang.String[]) -> a
+    void visitMainClass(java.lang.String) -> a
+    void visitProvide(java.lang.String,java.lang.String[]) -> a
+    void visitRequire(java.lang.String,int,java.lang.String) -> a
+    void visitOpen(java.lang.String,int,java.lang.String[]) -> b
+    void visitPackage(java.lang.String) -> b
+    void visitUse(java.lang.String) -> c
+com.android.tools.r8.org.objectweb.asm.ModuleWriter -> com.android.tools.r8.A.a.a.x:
+    com.android.tools.r8.org.objectweb.asm.ByteVector provides -> n
+    int packageCount -> o
+    com.android.tools.r8.org.objectweb.asm.ByteVector usesIndex -> l
+    int providesCount -> m
+    int usesCount -> k
+    int opensCount -> i
+    com.android.tools.r8.org.objectweb.asm.ByteVector packageIndex -> p
+    int exportsCount -> g
+    int moduleVersionIndex -> d
+    int requiresCount -> e
+    int moduleNameIndex -> b
+    int moduleFlags -> c
+    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> a
+    com.android.tools.r8.org.objectweb.asm.ByteVector requires -> f
+    com.android.tools.r8.org.objectweb.asm.ByteVector opens -> j
+    com.android.tools.r8.org.objectweb.asm.ByteVector exports -> h
+    int mainClassIndex -> q
+    1:11:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int,int):97:107 -> <init>
+    1:1:void visitMainClass(java.lang.String):112:112 -> a
+    2:6:void visitRequire(java.lang.String,int,java.lang.String):123:127 -> a
+    7:16:void visitExport(java.lang.String,int,java.lang.String[]):132:141 -> a
+    17:22:void visitProvide(java.lang.String,java.lang.String[]):166:171 -> a
+    23:33:int computeAttributesSize():196:206 -> a
+    34:63:void putAttributes(com.android.tools.r8.org.objectweb.asm.ByteVector):221:250 -> a
+    1:2:void visitPackage(java.lang.String):117:118 -> b
+    3:12:void visitOpen(java.lang.String,int,java.lang.String[]):146:155 -> b
+    13:13:int getAttributeCount():186:186 -> b
+    1:2:void visitUse(java.lang.String):160:161 -> c
+com.android.tools.r8.org.objectweb.asm.Opcodes -> com.android.tools.r8.A.a.a.y:
+    java.lang.Integer FLOAT -> c
+    java.lang.Integer DOUBLE -> d
+    java.lang.Integer LONG -> e
+    java.lang.Integer NULL -> f
+    java.lang.Integer UNINITIALIZED_THIS -> g
+    java.lang.Integer TOP -> a
+    java.lang.Integer INTEGER -> b
+    1:7:void <clinit>():376:382 -> <clinit>
+com.android.tools.r8.org.objectweb.asm.SymbolTable -> com.android.tools.r8.A.a.a.A:
+    com.android.tools.r8.org.objectweb.asm.ClassWriter classWriter -> a
+    int typeCount -> k
+    int bootstrapMethodCount -> i
+    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry[] typeTable -> l
+    int constantPoolCount -> g
+    int entryCount -> e
+    int majorVersion -> c
+    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry[] entries -> f
+    com.android.tools.r8.org.objectweb.asm.ByteVector bootstrapMethods -> j
+    com.android.tools.r8.org.objectweb.asm.ClassReader sourceClassReader -> b
+    java.lang.String className -> d
+    com.android.tools.r8.org.objectweb.asm.ByteVector constantPool -> h
+    1:6:void <init>(com.android.tools.r8.org.objectweb.asm.ClassWriter):121:126 -> <init>
+    1:3:int computeBootstrapMethodsSize():358:360 -> a
+    4:9:void putBootstrapMethods(com.android.tools.r8.org.objectweb.asm.ByteVector):373:378 -> a
+    10:11:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):457:458 -> a
+    12:12:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
+    12:12:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):458 -> a
+    13:14:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):459:460 -> a
+    15:15:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
+    15:15:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):460 -> a
+    16:17:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):461:462 -> a
+    18:18:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
+    18:18:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):462 -> a
+    19:20:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):463:464 -> a
+    21:21:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
+    21:21:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):464 -> a
+    22:23:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):465:466 -> a
+    24:24:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
+    24:24:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):466 -> a
+    25:26:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):467:468 -> a
+    27:27:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFloat(float):626:626 -> a
+    27:27:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):468 -> a
+    28:29:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):469:470 -> a
+    30:30:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLong(long):670:670 -> a
+    30:30:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):470 -> a
+    31:32:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):471:472 -> a
+    33:33:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDouble(double):681:681 -> a
+    33:33:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):472 -> a
+    34:35:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):473:474 -> a
+    36:36:com.android.tools.r8.org.objectweb.asm.Symbol addConstantString(java.lang.String):604:604 -> a
+    36:36:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):474 -> a
+    37:41:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):475:479 -> a
+    42:42:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
+    42:42:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):479 -> a
+    43:43:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):481:481 -> a
+    44:44:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodType(java.lang.String):865:865 -> a
+    44:44:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):481 -> a
+    45:45:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):483:483 -> a
+    46:46:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
+    46:46:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):483 -> a
+    47:54:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):485:492 -> a
+    55:67:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):487:499 -> a
+    68:69:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamic(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):884:885 -> a
+    68:69:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):495 -> a
+    70:70:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):501:501 -> a
+    71:71:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
+    72:72:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFieldref(java.lang.String,java.lang.String,java.lang.String):526:526 -> a
+    73:73:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodref(java.lang.String,java.lang.String,java.lang.String,boolean):542:542 -> a
+    74:74:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
+    75:75:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFloat(float):626:626 -> a
+    76:85:com.android.tools.r8.org.objectweb.asm.Symbol addConstantIntegerOrFloat(int,int):638:647 -> a
+    86:86:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLong(long):670:670 -> a
+    87:87:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDouble(double):681:681 -> a
+    88:98:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLongOrDouble(int,long):694:704 -> a
+    99:100:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInvokeDynamic(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):905:906 -> a
+    101:124:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1040:1063 -> a
+    125:125:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1058:1058 -> a
+    126:144:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1057:1075 -> a
+    145:145:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1094:1094 -> a
+    145:145:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
+    146:146:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry get(int):394:394 -> a
+    146:146:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1095 -> a
+    146:146:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
+    147:163:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1097:1113 -> a
+    147:163:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
+    164:173:int addTypeInternal(com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry):1214:1223 -> a
+    174:174:int hash(int,java.lang.String):1239:1239 -> a
+    174:174:com.android.tools.r8.org.objectweb.asm.Symbol addConstantUtf8Reference(int,java.lang.String):999 -> a
+    175:183:com.android.tools.r8.org.objectweb.asm.Symbol addConstantUtf8Reference(int,java.lang.String):1000:1008 -> a
+    184:184:int hash(int,java.lang.String,int):1243:1243 -> a
+    184:184:int addUninitializedType(java.lang.String,int):1159 -> a
+    185:195:int addUninitializedType(java.lang.String,int):1160:1170 -> a
+    196:196:int hash(int,java.lang.String,java.lang.String):1247:1247 -> a
+    196:196:int addConstantNameAndType(java.lang.String,java.lang.String):729 -> a
+    197:208:int addConstantNameAndType(java.lang.String,java.lang.String):730:741 -> a
+    209:209:int hash(int,java.lang.String,java.lang.String,int):1252:1252 -> a
+    209:209:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamicOrInvokeDynamicReference(int,java.lang.String,java.lang.String,int):924 -> a
+    210:222:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamicOrInvokeDynamicReference(int,java.lang.String,java.lang.String,int):925:937 -> a
+    223:223:int hash(int,java.lang.String,java.lang.String,java.lang.String):1257:1257 -> a
+    223:223:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):559 -> a
+    224:235:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):560:571 -> a
+    236:236:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
+    236:236:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):572 -> a
+    237:237:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):572:572 -> a
+    238:240:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):571:573 -> a
+    241:241:int hash(int,java.lang.String,java.lang.String,java.lang.String,int):1266:1266 -> a
+    241:241:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):811 -> a
+    242:255:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):812:825 -> a
+    256:256:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFieldref(java.lang.String,java.lang.String,java.lang.String):526:526 -> a
+    256:256:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):825 -> a
+    257:259:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):825:827 -> a
+    260:260:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodref(java.lang.String,java.lang.String,java.lang.String,boolean):542:542 -> a
+    260:260:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):828 -> a
+    261:261:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):828:828 -> a
+    262:265:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):827:830 -> a
+    1:1:java.lang.String getClassName():306:306 -> b
+    2:3:int setMajorVersionAndClassName(int,java.lang.String):318:319 -> b
+    4:4:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> b
+    4:4:int setMajorVersionAndClassName(int,java.lang.String):320 -> b
+    5:5:int setMajorVersionAndClassName(int,java.lang.String):320:320 -> b
+    6:6:void putConstantPool(com.android.tools.r8.org.objectweb.asm.ByteVector):348:348 -> b
+    7:7:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry get(int):394:394 -> b
+    8:27:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry put(com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry):407:426 -> b
+    28:28:com.android.tools.r8.org.objectweb.asm.Symbol addConstantModule(java.lang.String):972:972 -> b
+    29:39:int addMergedType(int,int):1190:1200 -> b
+    40:40:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):0:0 -> b
+    40:40:int addMergedType(int,int):1200 -> b
+    41:41:java.lang.ClassLoader com.android.tools.r8.org.objectweb.asm.ClassWriter.getClassLoader():963:963 -> b
+    41:41:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):926 -> b
+    41:41:int addMergedType(int,int):1200 -> b
+    42:64:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):929:951 -> b
+    42:64:int addMergedType(int,int):1200 -> b
+    65:66:int addMergedType(int,int):1200:1201 -> b
+    67:67:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):937:937 -> b
+    67:67:int addMergedType(int,int):1200 -> b
+    68:68:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):931:931 -> b
+    68:68:int addMergedType(int,int):1200 -> b
+    int hash(int,int) -> c
+    1:1:int getConstantPoolCount():329:329 -> c
+    2:2:com.android.tools.r8.org.objectweb.asm.Symbol addConstantPackage(java.lang.String):983:983 -> c
+    3:3:com.android.tools.r8.org.objectweb.asm.Symbol getType(int):1127:1127 -> c
+    1:1:int getConstantPoolLength():338:338 -> d
+    2:2:int hash(int,java.lang.String):1239:1239 -> d
+    2:2:int addConstantUtf8(java.lang.String):764 -> d
+    3:13:int addConstantUtf8(java.lang.String):765:775 -> d
+    1:1:int getMajorVersion():297:297 -> e
+    2:2:int hash(int,java.lang.String):1239:1239 -> e
+    2:2:int addType(java.lang.String):1138 -> e
+    3:10:int addType(java.lang.String):1139:1146 -> e
+    1:1:com.android.tools.r8.org.objectweb.asm.ClassReader getSource():288:288 -> f
+com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry -> com.android.tools.r8.A.a.a.z:
+    long com.android.tools.r8.org.objectweb.asm.Symbol.data -> f
+    int hashCode -> h
+    int com.android.tools.r8.org.objectweb.asm.Symbol.info -> g
+    int com.android.tools.r8.org.objectweb.asm.Symbol.tag -> b
+    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.owner -> c
+    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry next -> i
+    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.value -> e
+    int com.android.tools.r8.org.objectweb.asm.Symbol.index -> a
+    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.name -> d
+    1:7:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
+    1:7:void <init>(int,int,long,int):1316 -> <init>
+    8:8:void <init>(int,int,long,int):1317:1317 -> <init>
+    9:15:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
+    9:15:void <init>(int,int,java.lang.String,int):1300 -> <init>
+    16:16:void <init>(int,int,java.lang.String,int):1301:1301 -> <init>
+    17:23:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
+    17:23:void <init>(int,int,java.lang.String,long,int):1305 -> <init>
+    24:24:void <init>(int,int,java.lang.String,long,int):1306:1306 -> <init>
+    25:31:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
+    25:31:void <init>(int,int,java.lang.String,java.lang.String,int):1311 -> <init>
+    32:32:void <init>(int,int,java.lang.String,java.lang.String,int):1312:1312 -> <init>
+    33:39:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
+    33:39:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,long,int):1295 -> <init>
+    40:40:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,long,int):1296:1296 -> <init>
+    1:4:int com.android.tools.r8.org.objectweb.asm.Symbol.getArgumentsAndReturnSizes():238:241 -> a
+    1:4:int com.android.tools.r8.org.objectweb.asm.Symbol.getArgumentsAndReturnSizes():0 -> a
+com.android.tools.r8.org.objectweb.asm.Type -> com.android.tools.r8.A.a.a.B:
+    com.android.tools.r8.org.objectweb.asm.Type FLOAT_TYPE -> k
+    com.android.tools.r8.org.objectweb.asm.Type INT_TYPE -> j
+    com.android.tools.r8.org.objectweb.asm.Type DOUBLE_TYPE -> m
+    com.android.tools.r8.org.objectweb.asm.Type LONG_TYPE -> l
+    int valueEnd -> d
+    int valueBegin -> c
+    int sort -> a
+    com.android.tools.r8.org.objectweb.asm.Type VOID_TYPE -> e
+    com.android.tools.r8.org.objectweb.asm.Type CHAR_TYPE -> g
+    com.android.tools.r8.org.objectweb.asm.Type BOOLEAN_TYPE -> f
+    java.lang.String valueBuffer -> b
+    com.android.tools.r8.org.objectweb.asm.Type SHORT_TYPE -> i
+    com.android.tools.r8.org.objectweb.asm.Type BYTE_TYPE -> h
+    1:26:void <clinit>():85:110 -> <clinit>
+    1:5:void <init>(int,java.lang.String,int,int):159:163 -> <init>
+    1:28:com.android.tools.r8.org.objectweb.asm.Type[] getArgumentTypes(java.lang.String):302:329 -> a
+    29:55:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):414:440 -> a
+    56:56:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):434:434 -> a
+    57:57:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):418:418 -> a
+    58:78:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):416:436 -> a
+    79:79:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):430:430 -> a
+    80:86:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):426:432 -> a
+    87:105:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):420:438 -> a
+    106:111:java.lang.String getDescriptor():516:521 -> a
+    1:1:java.lang.String getInternalName():496:496 -> b
+    2:20:int getArgumentsAndReturnSizes(java.lang.String):728:746 -> b
+    1:1:com.android.tools.r8.org.objectweb.asm.Type getMethodType(java.lang.String):264:264 -> c
+    2:2:int getSort():657:657 -> c
+    1:2:com.android.tools.r8.org.objectweb.asm.Type getObjectType(java.lang.String):252:253 -> d
+    1:1:com.android.tools.r8.org.objectweb.asm.Type getReturnType(java.lang.String):367:367 -> e
+    2:2:com.android.tools.r8.org.objectweb.asm.Type getReturnType(java.lang.String):366:366 -> e
+    1:17:boolean equals(java.lang.Object):843:859 -> equals
+    1:7:int getReturnTypeOffset(java.lang.String):390:396 -> f
+    1:1:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String):177:177 -> g
+    1:4:int hashCode():873:876 -> hashCode
+    1:1:java.lang.String toString():889:889 -> toString
+com.android.tools.r8.org.objectweb.asm.TypePath -> com.android.tools.r8.A.a.a.C:
+    byte[] typePathContainer -> a
+    int typePathOffset -> b
+    1:3:void <init>(byte[],int):72:74 -> <init>
+    1:4:void put(com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.ByteVector):195:198 -> a
+    1:1:int getLength():84:84 -> toString
+    1:1:java.lang.String toString():163 -> toString
+    2:2:java.lang.String toString():164:164 -> toString
+    3:3:int getStep(int):96:96 -> toString
+    3:3:java.lang.String toString():166 -> toString
+    4:4:java.lang.String toString():180:180 -> toString
+    5:5:int getStepArgument(int):108:108 -> toString
+    5:5:java.lang.String toString():177 -> toString
+    6:6:java.lang.String toString():177:177 -> toString
+    7:7:java.lang.String toString():174:174 -> toString
+    8:8:java.lang.String toString():171:171 -> toString
+    9:24:java.lang.String toString():168:183 -> toString
+com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter -> com.android.tools.r8.A.a.a.D.b:
+    java.util.BitSet sharedSubroutineInsns -> F
+    java.util.Map subroutinesInsns -> E
+    java.util.BitSet mainSubroutineInsns -> D
+    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):101:101 -> <init>
+    2:2:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):129:129 -> <init>
+    3:68:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):65:130 -> <init>
+    1:4:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):135:138 -> a
+    5:27:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):231:253 -> a
+    28:36:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):252:260 -> a
+    37:45:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):259:267 -> a
+    1:20:void findSubroutineInsns(int,java.util.BitSet,java.util.BitSet):181:200 -> b
+    1:1:void visitEnd():144:144 -> c
+    2:8:void findSubroutinesInsns():157:163 -> c
+    2:8:void visitEnd():146 -> c
+    9:18:void emitCode():294:303 -> c
+    9:18:void visitEnd():147 -> c
+    19:23:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):332:336 -> c
+    19:23:void emitCode():304 -> c
+    19:23:void visitEnd():147 -> c
+    24:24:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation.getClonedLabel(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):538:538 -> c
+    24:24:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):337 -> c
+    24:24:void emitCode():304 -> c
+    24:24:void visitEnd():147 -> c
+    25:43:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):339:357 -> c
+    25:43:void emitCode():304 -> c
+    25:43:void visitEnd():147 -> c
+    44:55:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):355:366 -> c
+    44:55:void emitCode():304 -> c
+    44:55:void visitEnd():147 -> c
+    56:90:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):363:397 -> c
+    56:90:void emitCode():304 -> c
+    56:90:void visitEnd():147 -> c
+    91:102:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):395:406 -> c
+    91:102:void emitCode():304 -> c
+    91:102:void visitEnd():147 -> c
+    103:105:void emitCode():307:309 -> c
+    103:105:void visitEnd():147 -> c
+    106:107:void visitEnd():149:150 -> c
+com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation -> com.android.tools.r8.A.a.a.D.a:
+    java.util.Map clonedLabels -> c
+    com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation parent -> a
+    java.util.BitSet subroutineInsns -> b
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode returnLabel -> d
+    com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter this$0 -> e
+    1:5:void <init>(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter,com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.BitSet):446:450 -> <init>
+    6:29:void <init>(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter,com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.BitSet):449:472 -> <init>
+    1:11:com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation findOwner(int):499:509 -> a
+    12:12:com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation findOwner(int):508:508 -> a
+    13:13:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getClonedLabel(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):538:538 -> a
+    1:1:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getClonedLabelForJumpInsn(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):526:526 -> b
+    1:1:java.util.Set entrySet():545:545 -> entrySet
+    1:1:boolean equals(java.lang.Object):555:555 -> equals
+    1:1:com.android.tools.r8.org.objectweb.asm.tree.LabelNode get(java.lang.Object):550:550 -> get
+    1:1:java.lang.Object get(java.lang.Object):419 -> get
+    1:1:int hashCode():560:560 -> hashCode
+com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode -> com.android.tools.r8.A.a.a.E.a:
+    java.util.List visibleTypeAnnotations -> b
+    java.util.List invisibleTypeAnnotations -> c
+    int index -> f
+    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode previousInsn -> d
+    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode nextInsn -> e
+    int opcode -> a
+    1:3:void <init>(int):126:128 -> <init>
+    void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor) -> a
+    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map) -> a
+    1:1:int getOpcode():137:137 -> a
+    2:4:com.android.tools.r8.org.objectweb.asm.tree.LabelNode[] clone(java.util.List,java.util.Map):227:229 -> a
+    5:24:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode cloneAnnotations(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):241:260 -> a
+    int getType() -> b
+    1:5:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):180:184 -> b
+    6:15:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):183:192 -> b
+    16:16:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):191:191 -> b
+com.android.tools.r8.org.objectweb.asm.tree.AnnotationNode -> com.android.tools.r8.A.a.a.E.b:
+    java.util.List values -> b
+    java.lang.String desc -> a
+    1:3:void <init>(java.lang.String):63:65 -> <init>
+    4:5:void <init>(int,java.lang.String):77:78 -> <init>
+    6:7:void <init>(java.util.List):87:88 -> <init>
+    void visitEnd() -> a
+    1:8:void visit(java.lang.String,java.lang.Object):97:104 -> a
+    9:13:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(byte[]):64:68 -> a
+    9:13:void visit(java.lang.String,java.lang.Object):104 -> a
+    14:16:void visit(java.lang.String,java.lang.Object):104:106 -> a
+    17:21:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(boolean[]):75:79 -> a
+    17:21:void visit(java.lang.String,java.lang.Object):106 -> a
+    22:24:void visit(java.lang.String,java.lang.Object):106:108 -> a
+    25:29:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(short[]):86:90 -> a
+    25:29:void visit(java.lang.String,java.lang.Object):108 -> a
+    30:32:void visit(java.lang.String,java.lang.Object):108:110 -> a
+    33:37:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(char[]):97:101 -> a
+    33:37:void visit(java.lang.String,java.lang.Object):110 -> a
+    38:42:void visit(java.lang.String,java.lang.Object):110:114 -> a
+    43:47:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(long[]):130:134 -> a
+    43:47:void visit(java.lang.String,java.lang.Object):114 -> a
+    48:50:void visit(java.lang.String,java.lang.Object):114:116 -> a
+    51:55:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(float[]):119:123 -> a
+    51:55:void visit(java.lang.String,java.lang.Object):116 -> a
+    56:58:void visit(java.lang.String,java.lang.Object):116:118 -> a
+    59:63:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(double[]):141:145 -> a
+    59:63:void visit(java.lang.String,java.lang.Object):118 -> a
+    64:66:void visit(java.lang.String,java.lang.Object):118:120 -> a
+    67:73:void visitEnum(java.lang.String,java.lang.String,java.lang.String):126:132 -> a
+    74:81:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):137:144 -> a
+    82:90:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):150:158 -> a
+    91:98:void accept(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor):189:196 -> a
+    99:115:void accept(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,java.lang.Object):210:226 -> a
+com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode -> com.android.tools.r8.A.a.a.E.c:
+    java.lang.String owner -> g
+    java.lang.String desc -> i
+    java.lang.String name -> h
+    1:4:void <init>(int,java.lang.String,java.lang.String,java.lang.String):65:68 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):88:89 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):94:94 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.FrameNode -> com.android.tools.r8.A.a.a.E.d:
+    int type -> g
+    java.util.List stack -> i
+    java.util.List local -> h
+    1:1:void <init>():73:73 -> <init>
+    2:22:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):97:117 -> <init>
+    23:23:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):114:114 -> <init>
+    24:24:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):109:109 -> <init>
+    25:25:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):106:106 -> <init>
+    26:27:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):102:103 -> <init>
+    1:19:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):128:146 -> a
+    20:20:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):143:143 -> a
+    21:21:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):140:140 -> a
+    22:22:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):137:137 -> a
+    23:23:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):134:134 -> a
+    24:24:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):131:131 -> a
+    25:44:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):152:171 -> a
+    45:51:java.lang.Object[] asArray(java.util.List):178:184 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.IincInsnNode -> com.android.tools.r8.A.a.a.E.e:
+    int incr -> h
+    int var -> g
+    1:3:void <init>(int,int):54:56 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.InsnList -> com.android.tools.r8.A.a.a.E.f:
+    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode[] cache -> d
+    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode firstInsn -> b
+    int size -> a
+    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode lastInsn -> c
+    1:1:void <init>():38:38 -> <init>
+    1:1:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getLast():79:79 -> a
+    2:8:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode get(int):93:99 -> a
+    9:9:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode get(int):94:94 -> a
+    10:13:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):142:145 -> a
+    14:24:void add(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):225:235 -> a
+    1:4:int indexOf(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):130:133 -> b
+    5:10:void resetLabels():469:474 -> b
+    1:1:int size():61:61 -> c
+    1:6:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode[] toArray():176:181 -> d
+com.android.tools.r8.org.objectweb.asm.tree.InsnNode -> com.android.tools.r8.A.a.a.E.g:
+    1:1:void <init>(int):55:55 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):65:66 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):71:71 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.IntInsnNode -> com.android.tools.r8.A.a.a.E.h:
+    int operand -> g
+    1:2:void <init>(int,int):51:52 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):71:72 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):77:77 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.InvokeDynamicInsnNode -> com.android.tools.r8.A.a.a.E.i:
+    java.lang.String name -> g
+    java.lang.String desc -> h
+    com.android.tools.r8.org.objectweb.asm.Handle bsm -> i
+    java.lang.Object[] bsmArgs -> j
+    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):70:74 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):84:85 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:90 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode -> com.android.tools.r8.A.a.a.E.j:
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode label -> g
+    1:2:void <init>(int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode):57:58 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):79:80 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85:85 -> a
+    4:4:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
+    4:4:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85 -> a
+    5:5:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85:85 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.LabelNode -> com.android.tools.r8.A.a.a.E.k:
+    com.android.tools.r8.org.objectweb.asm.Label value -> g
+    1:1:void <init>():40:40 -> <init>
+    1:1:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):68:68 -> a
+    2:2:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):73:73 -> a
+    int getType() -> b
+    1:4:com.android.tools.r8.org.objectweb.asm.Label getLabel():60:63 -> c
+    1:1:void resetLabel():77:77 -> d
+com.android.tools.r8.org.objectweb.asm.tree.LdcInsnNode -> com.android.tools.r8.A.a.a.E.l:
+    java.lang.Object cst -> g
+    1:2:void <init>(java.lang.Object):55:56 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.LineNumberNode -> com.android.tools.r8.A.a.a.E.m:
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> h
+    int line -> g
+    1:3:void <init>(int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode):55:57 -> <init>
+    1:1:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):67:67 -> a
+    2:2:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72 -> a
+    4:4:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.LocalVariableAnnotationNode -> com.android.tools.r8.A.a.a.E.n:
+    java.util.List end -> f
+    java.util.List start -> e
+    java.util.List index -> g
+    1:4:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],int[],java.lang.String):115:118 -> <init>
+    1:10:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):128:137 -> a
+    11:11:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):136:136 -> a
+com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode -> com.android.tools.r8.A.a.a.E.o:
+    int index -> f
+    java.lang.String name -> a
+    java.lang.String signature -> c
+    java.lang.String desc -> b
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode end -> e
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> d
+    1:7:void <init>(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,int):74:80 -> <init>
+com.android.tools.r8.org.objectweb.asm.tree.LookupSwitchInsnNode -> com.android.tools.r8.A.a.a.E.p:
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode dflt -> g
+    java.util.List labels -> i
+    java.util.List keys -> h
+    1:4:void <init>(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,int[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[]):61:64 -> <init>
+    1:10:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):74:83 -> a
+    11:11:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):88:88 -> a
+    12:12:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
+    12:12:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):89 -> a
+    13:15:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):89:91 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode -> com.android.tools.r8.A.a.a.E.q:
+    java.lang.String owner -> g
+    java.lang.String desc -> i
+    java.lang.String name -> h
+    boolean itf -> j
+    1:5:void <init>(int,java.lang.String,java.lang.String,java.lang.String,boolean):91:95 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):115:116 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):121:121 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.MethodNode -> com.android.tools.r8.A.a.a.E.s:
+    java.util.List attrs -> p
+    java.util.List invisibleTypeAnnotations -> o
+    java.lang.String desc -> j
+    java.util.List localVariables -> z
+    java.lang.Object annotationDefault -> q
+    java.util.List tryCatchBlocks -> w
+    com.android.tools.r8.org.objectweb.asm.tree.InsnList instructions -> v
+    java.util.List invisibleLocalVariableAnnotations -> B
+    java.util.List visibleLocalVariableAnnotations -> A
+    java.util.List[] visibleParameterAnnotations -> s
+    java.util.List[] invisibleParameterAnnotations -> u
+    int maxStack -> x
+    int maxLocals -> y
+    int invisibleAnnotableParameterCount -> t
+    java.util.List visibleTypeAnnotations -> n
+    int visibleAnnotableParameterCount -> r
+    java.util.List invisibleAnnotations -> m
+    java.util.List visibleAnnotations -> l
+    boolean visited -> C
+    java.util.List parameters -> k
+    1:11:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):220:230 -> <init>
+    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():248:248 -> a
+    2:12:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):260:270 -> a
+    13:15:void visitAnnotableParameterCount(int,boolean):296:298 -> a
+    16:34:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):306:324 -> a
+    35:38:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):331:334 -> a
+    39:46:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):349:349 -> a
+    47:47:void visitInsn(int):360:360 -> a
+    48:48:void visitTypeInsn(int,java.lang.String):375:375 -> a
+    49:49:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):381:381 -> a
+    50:57:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):391:398 -> a
+    58:58:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):407:407 -> a
+    59:59:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):414:414 -> a
+    60:60:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):419:419 -> a
+    61:61:void visitLdcInsn(java.lang.Object):424:424 -> a
+    62:62:void visitIincInsn(int,int):429:429 -> a
+    63:63:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):435:435 -> a
+    64:64:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):440:440 -> a
+    65:65:void visitMultiANewArrayInsn(java.lang.String,int):445:445 -> a
+    66:66:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):452:452 -> a
+    67:67:int com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.getOpcode():137:137 -> a
+    67:67:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):453 -> a
+    68:68:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.getPrevious():154:154 -> a
+    68:68:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):454 -> a
+    69:79:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):457:467 -> a
+    80:84:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):475:479 -> a
+    85:85:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):478:478 -> a
+    86:91:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):509:514 -> a
+    92:92:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):512:512 -> a
+    93:95:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):526:528 -> a
+    96:96:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableAnnotationNode.<init>(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],int[],java.lang.String):87:87 -> a
+    96:96:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):528 -> a
+    97:105:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):530:538 -> a
+    106:108:com.android.tools.r8.org.objectweb.asm.tree.LabelNode[] getLabelNodes(com.android.tools.r8.org.objectweb.asm.Label[]):575:577 -> a
+    109:115:java.lang.Object[] getLabelNodes(java.lang.Object[]):583:589 -> a
+    116:118:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):693:695 -> a
+    119:119:void com.android.tools.r8.org.objectweb.asm.tree.ParameterNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:66 -> a
+    119:119:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):695 -> a
+    120:143:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):699:722 -> a
+    144:153:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):721:730 -> a
+    154:204:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):729:779 -> a
+    205:212:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.updateIndex(int):89:96 -> a
+    205:212:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):779 -> a
+    213:213:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780:780 -> a
+    214:216:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):107:107 -> a
+    214:216:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
+    218:222:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):109:113 -> a
+    218:222:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
+    223:232:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):112:121 -> a
+    223:232:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
+    233:233:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):120:120 -> a
+    233:233:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
+    234:238:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):784:788 -> a
+    239:241:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):89:89 -> a
+    239:241:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):788 -> a
+    242:255:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):792:805 -> a
+    void visitCode() -> b
+    1:4:void visitParameter(java.lang.String,int):239:242 -> b
+    5:5:void visitIntInsn(int,int):365:365 -> b
+    6:17:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):485:496 -> b
+    18:18:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):545:545 -> b
+    19:22:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getLabelNode(com.android.tools.r8.org.objectweb.asm.Label):568:571 -> b
+    1:11:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):278:288 -> c
+    12:13:void visitMaxs(int,int):550:551 -> c
+    1:1:void visitVarInsn(int,int):370:370 -> d
+com.android.tools.r8.org.objectweb.asm.tree.MethodNode$1 -> com.android.tools.r8.A.a.a.E.r:
+    com.android.tools.r8.org.objectweb.asm.tree.MethodNode this$0 -> a
+    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.tree.MethodNode,int):249:249 -> <init>
+    1:2:boolean add(java.lang.Object):252:253 -> add
+com.android.tools.r8.org.objectweb.asm.tree.MultiANewArrayInsnNode -> com.android.tools.r8.A.a.a.E.t:
+    java.lang.String desc -> g
+    int dims -> h
+    1:3:void <init>(java.lang.String,int):54:56 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.ParameterNode -> com.android.tools.r8.A.a.a.E.u:
+    java.lang.String name -> a
+    int access -> b
+    1:3:void <init>(java.lang.String,int):55:57 -> <init>
+com.android.tools.r8.org.objectweb.asm.tree.TableSwitchInsnNode -> com.android.tools.r8.A.a.a.E.v:
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode dflt -> i
+    int max -> h
+    java.util.List labels -> j
+    int min -> g
+    1:5:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[]):66:70 -> <init>
+    1:6:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):80:85 -> a
+    7:7:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:90 -> a
+    8:8:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
+    8:8:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90 -> a
+    9:10:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:91 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode -> com.android.tools.r8.A.a.a.E.w:
+    java.util.List invisibleTypeAnnotations -> f
+    java.util.List visibleTypeAnnotations -> e
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> a
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode handler -> c
+    com.android.tools.r8.org.objectweb.asm.tree.LabelNode end -> b
+    java.lang.String type -> d
+    1:5:void <init>(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.lang.String):73:77 -> <init>
+com.android.tools.r8.org.objectweb.asm.tree.TypeAnnotationNode -> com.android.tools.r8.A.a.a.E.x:
+    int typeRef -> c
+    com.android.tools.r8.org.objectweb.asm.TypePath typePath -> d
+    1:3:void <init>(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String):62:64 -> <init>
+    4:6:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String):81:83 -> <init>
+com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode -> com.android.tools.r8.A.a.a.E.y:
+    java.lang.String desc -> g
+    1:2:void <init>(int,java.lang.String):56:57 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):77:78 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):83:83 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.tree.Util -> com.android.tools.r8.A.a.a.E.z:
+    1:3:java.util.List asArrayList(int):44:46 -> a
+    4:8:java.util.List asArrayList(java.lang.Object[]):53:57 -> a
+    9:13:java.util.List asArrayList(int[]):108:112 -> a
+    14:16:java.util.List asArrayList(int,java.lang.Object[]):151:153 -> a
+com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode -> com.android.tools.r8.A.a.a.E.A:
+    int var -> g
+    1:2:void <init>(int,int):53:54 -> <init>
+    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):74:75 -> a
+    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):80:80 -> a
+    int getType() -> b
+com.android.tools.r8.org.objectweb.asm.util.Printer -> com.android.tools.r8.A.a.a.F.a:
+    java.lang.String[] OPCODES -> a
+    1:1:void <clinit>():53:53 -> <clinit>
+com.android.tools.r8.origin.ArchiveEntryOrigin -> com.android.tools.r8.origin.ArchiveEntryOrigin:
+    java.lang.String entryName -> a
+    1:2:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):18:19 -> <init>
+    1:1:java.lang.String getEntryName():28:28 -> getEntryName
+    1:1:java.lang.String part():24:24 -> part
+com.android.tools.r8.origin.CommandLineOrigin -> com.android.tools.r8.origin.a:
+    com.android.tools.r8.origin.CommandLineOrigin INSTANCE -> a
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>():12:12 -> <init>
+com.android.tools.r8.origin.EmbeddedOrigin -> com.android.tools.r8.origin.b:
+    com.android.tools.r8.origin.EmbeddedOrigin INSTANCE -> a
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>():12:12 -> <init>
+com.android.tools.r8.origin.Origin -> com.android.tools.r8.origin.Origin:
+    1:17:void <clinit>():26:42 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.origin.Origin$1):27:27 -> <init>
+    2:3:void <init>():67:68 -> <init>
+    4:6:void <init>(com.android.tools.r8.origin.Origin):71:73 -> <init>
+    1:2:java.util.List buildParts(int):87:88 -> buildParts
+    1:1:int compareTo(java.lang.Object):26:26 -> compareTo
+    2:11:int compareTo(com.android.tools.r8.origin.Origin):130:139 -> compareTo
+    1:8:boolean equals(java.lang.Object):115:122 -> equals
+    1:4:com.android.tools.r8.origin.Origin getFromHierarchy(java.lang.Class):101:104 -> getFromHierarchy
+    1:2:int hashCode():145:146 -> hashCode
+    1:1:com.android.tools.r8.origin.Origin parent():79:79 -> parent
+    1:1:java.util.List parts():83:83 -> parts
+    1:1:com.android.tools.r8.origin.Origin root():58:58 -> root
+    1:1:java.lang.String toString():153:153 -> toString
+    1:1:com.android.tools.r8.origin.Origin unknown():62:62 -> unknown
+com.android.tools.r8.origin.Origin$1 -> com.android.tools.r8.origin.Origin$a:
+    1:1:void <init>():30:30 -> <init>
+    1:1:java.util.List buildParts(int):38:38 -> buildParts
+    1:1:int compareTo(java.lang.Object):30:30 -> compareTo
+com.android.tools.r8.origin.Origin$2 -> com.android.tools.r8.origin.Origin$b:
+    1:1:void <init>():43:43 -> <init>
+    1:2:java.util.List buildParts(int):51:52 -> buildParts
+    1:1:int compareTo(java.lang.Object):43:43 -> compareTo
+com.android.tools.r8.origin.PathOrigin -> com.android.tools.r8.origin.PathOrigin:
+    java.nio.file.Path path -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:3:void <init>(java.nio.file.Path):19:21 -> <init>
+    1:1:java.nio.file.Path getPath():30:30 -> getPath
+    1:1:java.lang.String part():26:26 -> part
+com.android.tools.r8.origin.SynthesizedOrigin -> com.android.tools.r8.origin.c:
+    java.lang.String reason -> a
+    1:2:void <init>(java.lang.String,java.lang.Class):13:14 -> <init>
+    1:1:java.lang.String part():20:20 -> part
+com.android.tools.r8.position.MethodPosition -> com.android.tools.r8.position.MethodPosition:
+    com.android.tools.r8.graph.DexMethod method -> a
+    1:2:void <init>(com.android.tools.r8.graph.DexMethod):20:21 -> <init>
+    1:2:boolean equals(java.lang.Object):63:64 -> equals
+    1:1:java.lang.String getDescription():53:53 -> getDescription
+    1:1:java.lang.String getHolder():31:31 -> getHolder
+    1:1:java.lang.String getName():26:26 -> getName
+    1:3:java.util.List getParameterTypes():41:43 -> getParameterTypes
+    1:1:java.lang.String getReturnType():36:36 -> getReturnType
+    1:1:int hashCode():58:58 -> hashCode
+    1:1:java.lang.String toString():48:48 -> toString
+com.android.tools.r8.position.Position -> com.android.tools.r8.position.Position:
+    1:1:void <clinit>():19:19 -> <clinit>
+com.android.tools.r8.position.Position$1 -> com.android.tools.r8.position.Position$a:
+    1:1:void <init>():19:19 -> <init>
+com.android.tools.r8.position.TextPosition -> com.android.tools.r8.position.TextPosition:
+    long offset -> a
+    int line -> b
+    int column -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:7:void <init>(long,int,int):27:33 -> <init>
+    1:3:boolean equals(java.lang.Object):75:77 -> equals
+    1:1:int getColumn():48:48 -> getColumn
+    1:1:java.lang.String getDescription():62:62 -> getDescription
+    1:1:int getLine():40:40 -> getLine
+    1:1:long getOffset():52:52 -> getOffset
+    1:1:int hashCode():67:67 -> hashCode
+    1:1:java.lang.String toString():57:57 -> toString
+com.android.tools.r8.position.TextRange -> com.android.tools.r8.position.TextRange:
+    com.android.tools.r8.position.TextPosition end -> b
+    com.android.tools.r8.position.TextPosition start -> a
+    1:3:void <init>(com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):14:16 -> <init>
+    1:3:boolean equals(java.lang.Object):43:45 -> equals
+    1:1:java.lang.String getDescription():57:57 -> getDescription
+    1:1:com.android.tools.r8.position.TextPosition getEnd():30:30 -> getEnd
+    1:1:com.android.tools.r8.position.TextPosition getStart():23:23 -> getStart
+    1:1:int hashCode():35:35 -> hashCode
+    1:1:java.lang.String toString():52:52 -> toString
+com.android.tools.r8.references.ArrayReference -> com.android.tools.r8.references.ArrayReference:
+    java.lang.String descriptor -> c
+    com.android.tools.r8.references.TypeReference baseType -> b
+    boolean $assertionsDisabled -> d
+    int dimensions -> a
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:5:void <init>(int,com.android.tools.r8.references.TypeReference,java.lang.String):18:22 -> <init>
+    1:10:com.android.tools.r8.references.ArrayReference fromDescriptor(java.lang.String):26:35 -> a
+    11:14:com.android.tools.r8.references.ArrayReference fromBaseType(com.android.tools.r8.references.TypeReference,int):39:42 -> a
+    1:1:com.android.tools.r8.references.TypeReference getBaseType():54:54 -> getBaseType
+    1:1:java.lang.String getDescriptor():69:69 -> getDescriptor
+    1:1:int getDimensions():46:46 -> getDimensions
+    1:1:com.android.tools.r8.references.TypeReference getMemberType():50:50 -> getMemberType
+    1:1:int hashCode():79:79 -> hashCode
+com.android.tools.r8.references.ClassReference -> com.android.tools.r8.references.ClassReference:
+    java.lang.String descriptor -> a
+    1:2:void <init>(java.lang.String):15:16 -> <init>
+    1:1:com.android.tools.r8.references.ClassReference fromDescriptor(java.lang.String):20:20 -> a
+    1:1:java.lang.String getBinaryName():24:24 -> getBinaryName
+    1:1:java.lang.String getDescriptor():39:39 -> getDescriptor
+    1:1:int hashCode():49:49 -> hashCode
+    1:1:java.lang.String toString():54:54 -> toString
+com.android.tools.r8.references.FieldReference -> com.android.tools.r8.references.FieldReference:
+    com.android.tools.r8.references.ClassReference holderClass -> a
+    java.lang.String fieldName -> b
+    com.android.tools.r8.references.TypeReference fieldType -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():15:15 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.TypeReference):25:31 -> <init>
+    boolean isUnknown() -> a
+    1:7:boolean equals(java.lang.Object):54:60 -> equals
+    1:1:java.lang.String getFieldName():39:39 -> getFieldName
+    1:1:com.android.tools.r8.references.TypeReference getFieldType():43:43 -> getFieldType
+    1:1:com.android.tools.r8.references.ClassReference getHolderClass():35:35 -> getHolderClass
+    1:1:int hashCode():65:65 -> hashCode
+    1:1:java.lang.String toString():70:70 -> toString
+com.android.tools.r8.references.FieldReference$UnknownFieldReference -> com.android.tools.r8.references.FieldReference$a:
+    1:1:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String):76:76 -> <init>
+    boolean isUnknown() -> a
+com.android.tools.r8.references.MethodReference -> com.android.tools.r8.references.MethodReference:
+    com.android.tools.r8.references.ClassReference holderClass -> a
+    java.util.List formalTypes -> c
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.references.TypeReference returnType -> d
+    java.lang.String methodName -> b
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:8:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String,java.util.List,com.android.tools.r8.references.TypeReference):30:37 -> <init>
+    1:8:boolean equals(java.lang.Object):68:75 -> equals
+    1:1:java.util.List getFormalTypes():53:53 -> getFormalTypes
+    1:1:com.android.tools.r8.references.ClassReference getHolderClass():45:45 -> getHolderClass
+    1:3:java.lang.String getMethodDescriptor():84:84 -> getMethodDescriptor
+    5:5:java.lang.String getMethodDescriptor():86:86 -> getMethodDescriptor
+    1:1:java.lang.String getMethodName():49:49 -> getMethodName
+    1:1:com.android.tools.r8.references.TypeReference getReturnType():57:57 -> getReturnType
+    1:1:int hashCode():80:80 -> hashCode
+    1:1:java.lang.String toString():91:91 -> toString
+com.android.tools.r8.references.MethodReference$UnknownMethodReference -> com.android.tools.r8.references.MethodReference$a:
+    1:1:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String):102:102 -> <init>
+com.android.tools.r8.references.PrimitiveReference -> com.android.tools.r8.references.PrimitiveReference:
+    com.android.tools.r8.references.PrimitiveReference LONG -> g
+    com.android.tools.r8.references.PrimitiveReference FLOAT -> f
+    com.android.tools.r8.references.PrimitiveReference DOUBLE -> h
+    com.android.tools.r8.references.PrimitiveReference CHAR -> c
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.references.PrimitiveReference BYTE -> b
+    com.android.tools.r8.references.PrimitiveReference INT -> e
+    com.android.tools.r8.references.PrimitiveReference SHORT -> d
+    com.android.tools.r8.references.PrimitiveReference BOOL -> a
+    1:60:void <clinit>():9:68 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.references.PrimitiveReference$1):10:10 -> <init>
+    2:2:void <init>():76:76 -> <init>
+    1:1:int hashCode():122:122 -> hashCode
+com.android.tools.r8.references.PrimitiveReference$1 -> com.android.tools.r8.references.PrimitiveReference$a:
+    1:1:void <init>():13:13 -> <init>
+com.android.tools.r8.references.PrimitiveReference$2 -> com.android.tools.r8.references.PrimitiveReference$b:
+    1:1:void <init>():21:21 -> <init>
+com.android.tools.r8.references.PrimitiveReference$3 -> com.android.tools.r8.references.PrimitiveReference$c:
+    1:1:void <init>():29:29 -> <init>
+com.android.tools.r8.references.PrimitiveReference$4 -> com.android.tools.r8.references.PrimitiveReference$d:
+    1:1:void <init>():37:37 -> <init>
+com.android.tools.r8.references.PrimitiveReference$5 -> com.android.tools.r8.references.PrimitiveReference$e:
+    1:1:void <init>():45:45 -> <init>
+com.android.tools.r8.references.PrimitiveReference$6 -> com.android.tools.r8.references.PrimitiveReference$f:
+    1:1:void <init>():53:53 -> <init>
+com.android.tools.r8.references.PrimitiveReference$7 -> com.android.tools.r8.references.PrimitiveReference$g:
+    1:1:void <init>():61:61 -> <init>
+com.android.tools.r8.references.PrimitiveReference$8 -> com.android.tools.r8.references.PrimitiveReference$h:
+    1:1:void <init>():69:69 -> <init>
+com.android.tools.r8.references.Reference -> com.android.tools.r8.references.Reference:
+    com.android.tools.r8.references.Reference instance -> e
+    java.util.concurrent.ConcurrentMap methods -> c
+    java.util.concurrent.ConcurrentMap fields -> d
+    java.util.concurrent.ConcurrentMap classes -> a
+    java.util.concurrent.ConcurrentMap arrays -> b
+    1:8:void <clinit>():30:37 -> <clinit>
+    1:1:void <init>():57:57 -> <init>
+    2:15:void <init>():42:55 -> <init>
+    1:4:com.android.tools.r8.references.Reference getInstance():62:65 -> a
+    5:5:com.android.tools.r8.references.TypeReference typeFromClass(java.lang.Class):89:89 -> a
+    6:6:com.android.tools.r8.references.ArrayReference lambda$array$0(com.android.tools.r8.references.TypeReference,int,java.lang.String):136:136 -> a
+    7:11:com.android.tools.r8.references.MethodReference lambda$method$1(com.android.tools.r8.references.MethodReference):149:153 -> a
+    12:12:com.android.tools.r8.references.FieldReference lambda$field$2(com.android.tools.r8.references.FieldReference):194:194 -> a
+    1:4:com.android.tools.r8.references.ArrayReference array(com.android.tools.r8.references.TypeReference,int):132:135 -> array
+    1:1:com.android.tools.r8.references.ArrayReference arrayFromDescriptor(java.lang.String):126:126 -> arrayFromDescriptor
+    1:1:com.android.tools.r8.references.MethodReference classConstructor(com.android.tools.r8.references.ClassReference):185:185 -> classConstructor
+    1:1:com.android.tools.r8.references.ClassReference classFromBinaryName(java.lang.String):107:107 -> classFromBinaryName
+    1:1:com.android.tools.r8.references.ClassReference classFromClass(java.lang.Class):121:121 -> classFromClass
+    1:1:com.android.tools.r8.references.ClassReference classFromDescriptor(java.lang.String):98:98 -> classFromDescriptor
+    1:1:com.android.tools.r8.references.ClassReference classFromTypeName(java.lang.String):116:116 -> classFromTypeName
+    1:2:com.android.tools.r8.references.FieldReference field(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.TypeReference):191:192 -> field
+    1:4:com.android.tools.r8.references.FieldReference fieldFromField(java.lang.reflect.Field):199:202 -> fieldFromField
+    1:3:com.android.tools.r8.references.MethodReference method(com.android.tools.r8.references.ClassReference,java.lang.String,java.util.List,com.android.tools.r8.references.TypeReference):145:147 -> method
+    1:13:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Method):158:170 -> methodFromMethod
+    14:14:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Method):166:166 -> methodFromMethod
+    15:21:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Constructor):175:181 -> methodFromMethod
+    1:20:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):79:98 -> primitiveFromDescriptor
+    1:20:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
+    21:33:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):82:94 -> primitiveFromDescriptor
+    21:33:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
+    34:40:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):90:96 -> primitiveFromDescriptor
+    34:40:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
+    41:41:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):86:86 -> primitiveFromDescriptor
+    41:41:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
+    42:42:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):84:84 -> primitiveFromDescriptor
+    42:42:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
+    1:1:com.android.tools.r8.references.TypeReference returnTypeFromDescriptor(java.lang.String):69:69 -> returnTypeFromDescriptor
+    1:7:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):73:79 -> typeFromDescriptor
+    8:8:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):77:77 -> typeFromDescriptor
+    9:9:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):75:75 -> typeFromDescriptor
+    1:1:com.android.tools.r8.references.TypeReference typeFromTypeName(java.lang.String):84:84 -> typeFromTypeName
+com.android.tools.r8.references.TypeReference -> com.android.tools.r8.references.TypeReference:
+    1:1:java.lang.String getTypeName():62:62 -> getTypeName
+com.android.tools.r8.retrace.AmbiguousComparator -> com.android.tools.r8.retrace.b:
+    java.util.function.BiFunction getter -> a
+    1:2:void <init>(java.util.function.BiFunction):21:22 -> <init>
+    1:16:int compare(java.lang.Object,java.lang.Object):27:42 -> compare
+    17:17:int compare(java.lang.Object,java.lang.Object):40:40 -> compare
+com.android.tools.r8.retrace.AmbiguousComparator$SortKeys -> com.android.tools.r8.retrace.a:
+    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys CLASS -> a
+    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys[] $VALUES -> e
+    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys LINE -> d
+    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys METHOD -> b
+    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys SOURCE -> c
+    1:4:void <clinit>():13:16 -> <clinit>
+    5:5:void <clinit>():12:12 -> <clinit>
+    1:1:void <init>(java.lang.String,int):12:12 -> <init>
+com.android.tools.r8.retrace.Result -> com.android.tools.r8.retrace.Result:
+    1:1:void <init>():12:12 -> <init>
+com.android.tools.r8.retrace.Retrace -> com.android.tools.r8.retrace.Retrace:
+    boolean $assertionsDisabled -> a
+    1:5:void <clinit>():35:39 -> <clinit>
+    1:1:void <init>():36:36 -> <init>
+    1:7:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):96:102 -> a
+    8:10:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):98:98 -> a
+    12:12:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):100:100 -> a
+    13:13:java.lang.String lambda$getMappingSupplier$0(java.nio.file.Path):102:102 -> a
+    14:14:void lambda$run$1(java.util.List):170:170 -> a
+    15:15:void lambda$main$2(java.lang.String[]):180:180 -> a
+    1:1:void main(java.lang.String[]):180:180 -> main
+    2:10:void withMainProgramHandler(com.android.tools.r8.retrace.Retrace$MainAction):200:208 -> main
+    2:10:void main(java.lang.String[]):180 -> main
+    11:11:void withMainProgramHandler(com.android.tools.r8.retrace.Retrace$MainAction):203:203 -> main
+    11:11:void main(java.lang.String[]):180 -> main
+    1:49:boolean com.android.tools.r8.retrace.RetraceCommand.printMemory():0:48 -> run
+    1:49:void run(com.android.tools.r8.retrace.RetraceCommand):122 -> run
+    50:75:void run(com.android.tools.r8.retrace.RetraceCommand):122:147 -> run
+    76:76:boolean com.android.tools.r8.retrace.RetraceCommand.printTimes():44:44 -> run
+    76:76:void run(com.android.tools.r8.retrace.RetraceCommand):148 -> run
+    77:81:void run(com.android.tools.r8.retrace.RetraceCommand):149:153 -> run
+    82:84:void run(com.android.tools.r8.retrace.RetraceCommand):152:154 -> run
+    85:87:void run(java.lang.String[]):159:161 -> run
+    88:117:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):44:73 -> run
+    88:117:void run(java.lang.String[]):162 -> run
+    118:118:java.util.List getStackTraceFromFile(java.lang.String,com.android.tools.r8.DiagnosticsHandler):108:108 -> run
+    118:118:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):73 -> run
+    118:118:void run(java.lang.String[]):162 -> run
+    119:120:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):73:74 -> run
+    119:120:void run(java.lang.String[]):162 -> run
+    121:122:java.util.List getStackTraceFromFile(java.lang.String,com.android.tools.r8.DiagnosticsHandler):110:111 -> run
+    121:122:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):73 -> run
+    121:122:void run(java.lang.String[]):162 -> run
+    123:126:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):77:77 -> run
+    123:126:void run(java.lang.String[]):162 -> run
+    129:130:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):80:81 -> run
+    129:130:void run(java.lang.String[]):162 -> run
+    131:134:java.util.List getStackTraceFromStandardInput():184:187 -> run
+    131:134:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):89 -> run
+    131:134:void run(java.lang.String[]):162 -> run
+    135:135:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):89:89 -> run
+    135:135:void run(java.lang.String[]):162 -> run
+    136:142:void run(java.lang.String[]):165:171 -> run
+    143:144:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):85:86 -> run
+    143:144:void run(java.lang.String[]):162 -> run
+com.android.tools.r8.retrace.Retrace$1 -> com.android.tools.r8.retrace.Retrace$a:
+    1:1:void <init>():161:161 -> <init>
+com.android.tools.r8.retrace.Retrace$MainAction -> com.android.tools.r8.retrace.Retrace$b:
+com.android.tools.r8.retrace.Retrace$RetraceAbortException -> com.android.tools.r8.retrace.Retrace$c:
+    1:1:void <init>():192:192 -> <init>
+com.android.tools.r8.retrace.Retrace$RetraceDiagnosticsHandler -> com.android.tools.r8.retrace.Retrace$d:
+    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> a
+    boolean printInfo -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():212:212 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.DiagnosticsHandler,boolean):217:220 -> <init>
+    1:1:void error(com.android.tools.r8.Diagnostic):225:225 -> error
+    1:2:void info(com.android.tools.r8.Diagnostic):235:236 -> info
+    1:1:void warning(com.android.tools.r8.Diagnostic):230:230 -> warning
+com.android.tools.r8.retrace.RetraceBase -> com.android.tools.r8.retrace.c:
+    com.android.tools.r8.retrace.RetraceClassResult retrace(com.android.tools.r8.references.ClassReference) -> a
+    com.android.tools.r8.retrace.RetraceMethodResult retrace(com.android.tools.r8.references.MethodReference) -> a
+    com.android.tools.r8.retrace.RetraceTypeResult retrace(com.android.tools.r8.references.TypeReference) -> a
+    java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean) -> a
+com.android.tools.r8.retrace.RetraceBaseImpl -> com.android.tools.r8.retrace.d:
+    com.android.tools.r8.naming.ClassNameMapper classNameMapper -> a
+    java.util.Set UNKNOWN_SOURCEFILE_NAMES -> b
+    boolean $assertionsDisabled -> c
+    1:4:void <clinit>():17:20 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.naming.ClassNameMapper):24:25 -> <init>
+    1:1:com.android.tools.r8.retrace.RetraceBase create(com.android.tools.r8.naming.ClassNameMapper):29:29 -> a
+    2:2:com.android.tools.r8.retrace.RetraceMethodResult retrace(com.android.tools.r8.references.MethodReference):34:34 -> a
+    3:5:com.android.tools.r8.retrace.RetraceClassResult retrace(com.android.tools.r8.references.ClassReference):44:44 -> a
+    6:6:com.android.tools.r8.retrace.RetraceTypeResult retrace(com.android.tools.r8.references.TypeReference):58:58 -> a
+    7:19:java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean):69:81 -> a
+    20:22:java.lang.String com.android.tools.r8.com.google.common.io.Files.getFileExtension(java.lang.String):792:794 -> a
+    20:22:java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean):82 -> a
+    23:26:java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean):83:86 -> a
+    27:27:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
+    27:27:java.lang.String com.android.tools.r8.com.google.common.io.Files.getFileExtension(java.lang.String):791 -> a
+    27:27:java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean):82 -> a
+    28:34:java.lang.String getClassSimpleName(java.lang.String):90:96 -> a
+com.android.tools.r8.retrace.RetraceClassResult -> com.android.tools.r8.retrace.RetraceClassResult:
+    com.android.tools.r8.references.ClassReference obfuscatedReference -> a
+    com.android.tools.r8.naming.ClassNamingForNameMapper mapper -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.references.ClassReference,com.android.tools.r8.naming.ClassNamingForNameMapper):26:28 -> <init>
+    1:1:com.android.tools.r8.references.ClassReference access$000(com.android.tools.r8.retrace.RetraceClassResult):21:21 -> a
+    2:2:com.android.tools.r8.retrace.RetraceClassResult create(com.android.tools.r8.references.ClassReference,com.android.tools.r8.naming.ClassNamingForNameMapper):33:33 -> a
+    3:4:java.util.List lambda$lookupField$0(com.android.tools.r8.naming.ClassNamingForNameMapper,java.lang.String):40:41 -> a
+    5:15:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):66:76 -> a
+    16:21:void lambda$lookup$2(com.android.tools.r8.utils.Box,java.util.function.BiFunction,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor,com.android.tools.r8.retrace.RetraceClassResult$Element):69:74 -> a
+    1:2:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName lambda$lookupMethod$1(com.android.tools.r8.naming.ClassNamingForNameMapper,java.lang.String):53:54 -> b
+    1:1:com.android.tools.r8.retrace.Result forEach(java.util.function.Consumer):20:20 -> forEach
+    2:2:com.android.tools.r8.retrace.RetraceClassResult forEach(java.util.function.Consumer):94:94 -> forEach
+    1:1:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):37:37 -> lookupField
+    1:1:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):50:50 -> lookupMethod
+    1:5:java.util.stream.Stream stream():85:85 -> stream
+com.android.tools.r8.retrace.RetraceClassResult$Element -> com.android.tools.r8.retrace.RetraceClassResult$a:
+    com.android.tools.r8.naming.ClassNamingForNameMapper mapper -> c
+    com.android.tools.r8.references.ClassReference classReference -> b
+    com.android.tools.r8.retrace.RetraceClassResult classResult -> a
+    1:4:void <init>(com.android.tools.r8.retrace.RetraceClassResult,com.android.tools.r8.references.ClassReference,com.android.tools.r8.naming.ClassNamingForNameMapper):111:114 -> <init>
+    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper access$100(com.android.tools.r8.retrace.RetraceClassResult$Element):102:102 -> a
+    2:2:com.android.tools.r8.references.ClassReference getClassReference():118:118 -> a
+    3:5:java.lang.String retraceSourceFile(java.lang.String,com.android.tools.r8.retrace.RetraceBase):126:126 -> a
+    6:6:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):131:131 -> a
+    7:7:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):161:161 -> a
+    7:7:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):131 -> a
+    8:8:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):160:160 -> a
+    8:8:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):131 -> a
+    9:9:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):131:131 -> a
+    10:11:java.util.List lambda$lookupField$0(com.android.tools.r8.naming.ClassNamingForNameMapper,java.lang.String):134:135 -> a
+    1:1:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):144:144 -> b
+    2:2:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):161:161 -> b
+    2:2:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):144 -> b
+    3:3:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):160:160 -> b
+    3:3:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):144 -> b
+    4:4:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):144:144 -> b
+    5:6:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName lambda$lookupMethod$1(com.android.tools.r8.naming.ClassNamingForNameMapper,java.lang.String):147:148 -> b
+com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor -> com.android.tools.r8.retrace.RetraceClassResult$b:
+    java.lang.Object create(com.android.tools.r8.retrace.RetraceClassResult$Element,java.lang.Object,java.lang.String) -> a
+com.android.tools.r8.retrace.RetraceCommand -> com.android.tools.r8.retrace.RetraceCommand:
+    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> c
+    java.util.List stackTrace -> e
+    com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer proguardMapProducer -> d
+    boolean $assertionsDisabled -> g
+    java.util.function.Consumer retracedStackTraceConsumer -> f
+    boolean isVerbose -> a
+    java.lang.String regularExpression -> b
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:1:void <init>(boolean,java.lang.String,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer,java.util.List,java.util.function.Consumer,com.android.tools.r8.retrace.RetraceCommand$1):14:14 -> <init>
+    2:13:void <init>(boolean,java.lang.String,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer,java.util.List,java.util.function.Consumer):29:40 -> <init>
+    1:1:com.android.tools.r8.retrace.RetraceCommand$Builder builder(com.android.tools.r8.DiagnosticsHandler):57:57 -> a
+    2:2:com.android.tools.r8.retrace.RetraceCommand$Builder builder():62:62 -> a
+com.android.tools.r8.retrace.RetraceCommand$1 -> com.android.tools.r8.retrace.RetraceCommand$a:
+    1:1:void <init>():62:62 -> <init>
+com.android.tools.r8.retrace.RetraceCommand$Builder -> com.android.tools.r8.retrace.RetraceCommand$b:
+    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> b
+    java.util.List stackTrace -> e
+    com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer proguardMapProducer -> c
+    java.util.function.Consumer retracedStackTraceConsumer -> f
+    boolean isVerbose -> a
+    java.lang.String regularExpression -> d
+    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.retrace.RetraceCommand$1):65:65 -> <init>
+    2:3:void <init>(com.android.tools.r8.DiagnosticsHandler):74:75 -> <init>
+    1:1:com.android.tools.r8.retrace.RetraceCommand$Builder setVerbose(boolean):80:80 -> a
+    2:2:com.android.tools.r8.retrace.RetraceCommand$Builder setProguardMapProducer(com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer):90:90 -> a
+    3:3:com.android.tools.r8.retrace.RetraceCommand$Builder setRegularExpression(java.lang.String):101:101 -> a
+    4:4:com.android.tools.r8.retrace.RetraceCommand$Builder setStackTrace(java.util.List):112:112 -> a
+    5:5:com.android.tools.r8.retrace.RetraceCommand$Builder setRetracedStackTraceConsumer(java.util.function.Consumer):122:122 -> a
+    6:23:com.android.tools.r8.retrace.RetraceCommand build():127:144 -> a
+    24:24:com.android.tools.r8.retrace.RetraceCommand build():137:137 -> a
+    25:25:com.android.tools.r8.retrace.RetraceCommand build():134:134 -> a
+    26:26:com.android.tools.r8.retrace.RetraceCommand build():131:131 -> a
+    27:27:com.android.tools.r8.retrace.RetraceCommand build():128:128 -> a
+com.android.tools.r8.retrace.RetraceCommandLineResult -> com.android.tools.r8.retrace.e:
+    java.util.List nodes -> a
+    1:2:void <init>(java.util.List):13:14 -> <init>
+    1:1:java.util.List getNodes():18:18 -> a
+com.android.tools.r8.retrace.RetraceFieldResult -> com.android.tools.r8.retrace.RetraceFieldResult:
+    java.util.List memberNamings -> b
+    com.android.tools.r8.retrace.RetraceClassResult$Element classElement -> a
+    java.lang.String obfuscatedName -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:7:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,java.util.List,java.lang.String):30:36 -> <init>
+    8:8:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,java.util.List,java.lang.String):35:35 -> <init>
+    1:8:com.android.tools.r8.retrace.RetraceFieldResult$Element lambda$stream$0(com.android.tools.r8.naming.MemberNaming):64:71 -> a
+    9:9:com.android.tools.r8.retrace.RetraceFieldResult$Element lambda$stream$0(com.android.tools.r8.naming.MemberNaming):70:70 -> a
+    10:22:com.android.tools.r8.retrace.RetraceFieldResult$Element lambda$stream$0(com.android.tools.r8.naming.MemberNaming):69:81 -> a
+    23:23:com.android.tools.r8.retrace.RetraceFieldResult$Element lambda$stream$0(com.android.tools.r8.naming.MemberNaming):76:76 -> a
+    1:1:com.android.tools.r8.retrace.Result forEach(java.util.function.Consumer):20:20 -> forEach
+    2:2:com.android.tools.r8.retrace.RetraceFieldResult forEach(java.util.function.Consumer):87:87 -> forEach
+    1:1:boolean hasRetraceResult():40:40 -> stream
+    1:1:java.util.stream.Stream stream():53 -> stream
+    2:7:java.util.stream.Stream stream():54:54 -> stream
+    13:15:java.util.stream.Stream stream():60:62 -> stream
+com.android.tools.r8.retrace.RetraceFieldResult$1 -> com.android.tools.r8.retrace.RetraceFieldResult$a:
+com.android.tools.r8.retrace.RetraceFieldResult$Element -> com.android.tools.r8.retrace.RetraceFieldResult$b:
+    com.android.tools.r8.references.FieldReference fieldReference -> a
+    1:1:void <init>(com.android.tools.r8.retrace.RetraceFieldResult,com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.references.FieldReference,com.android.tools.r8.retrace.RetraceFieldResult$1):91:91 -> <init>
+    2:4:void <init>(com.android.tools.r8.retrace.RetraceFieldResult,com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.references.FieldReference):100:102 -> <init>
+    1:1:com.android.tools.r8.references.FieldReference getFieldReference():107:107 -> a
+com.android.tools.r8.retrace.RetraceInvalidStackTraceLineDiagnostics -> com.android.tools.r8.retrace.RetraceInvalidStackTraceLineDiagnostics:
+    java.lang.String message -> b
+    int lineNumber -> a
+    1:3:void <init>(int,java.lang.String):23:25 -> <init>
+    1:1:com.android.tools.r8.retrace.RetraceInvalidStackTraceLineDiagnostics createNull(int):44:44 -> createNull
+    1:2:com.android.tools.r8.retrace.RetraceInvalidStackTraceLineDiagnostics createParse(int,java.lang.String):48:49 -> createParse
+    1:1:java.lang.String getDiagnosticMessage():40:40 -> getDiagnosticMessage
+    1:1:com.android.tools.r8.origin.Origin getOrigin():30:30 -> getOrigin
+    1:1:com.android.tools.r8.position.Position getPosition():35:35 -> getPosition
+com.android.tools.r8.retrace.RetraceMethodResult -> com.android.tools.r8.retrace.RetraceMethodResult:
+    com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName mappedRanges -> c
+    com.android.tools.r8.retrace.RetraceClassResult$Element classElement -> b
+    boolean $assertionsDisabled -> e
+    java.lang.String obfuscatedName -> a
+    java.lang.Boolean isAmbiguousCached -> d
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName,java.lang.String):34:34 -> <init>
+    2:11:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName,java.lang.String):29:38 -> <init>
+    1:1:boolean hasRetraceResult():46:46 -> a
+    2:7:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):101:106 -> a
+    8:8:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):105:105 -> a
+    9:19:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):104:114 -> a
+    20:25:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):113:118 -> a
+    26:31:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):116:121 -> a
+    1:1:com.android.tools.r8.retrace.Result forEach(java.util.function.Consumer):23:23 -> forEach
+    2:2:com.android.tools.r8.retrace.RetraceMethodResult forEach(java.util.function.Consumer):127:127 -> forEach
+    1:1:com.android.tools.r8.references.MethodReference$UnknownMethodReference getUnknownReference():42:42 -> getUnknownReference
+    1:23:boolean isAmbiguous():50:72 -> isAmbiguous
+    1:13:com.android.tools.r8.retrace.RetraceMethodResult narrowByLine(int):77:89 -> narrowByLine
+    1:5:java.util.stream.Stream stream():95:99 -> stream
+com.android.tools.r8.retrace.RetraceMethodResult$1 -> com.android.tools.r8.retrace.RetraceMethodResult$a:
+com.android.tools.r8.retrace.RetraceMethodResult$Element -> com.android.tools.r8.retrace.RetraceMethodResult$b:
+    com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange mappedRange -> c
+    com.android.tools.r8.references.MethodReference methodReference -> a
+    com.android.tools.r8.retrace.RetraceMethodResult retraceMethodResult -> b
+    1:1:void <init>(com.android.tools.r8.retrace.RetraceMethodResult,com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.references.MethodReference,com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange,com.android.tools.r8.retrace.RetraceMethodResult$1):131:131 -> <init>
+    2:6:void <init>(com.android.tools.r8.retrace.RetraceMethodResult,com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.references.MethodReference,com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):142:146 -> <init>
+    1:1:com.android.tools.r8.references.MethodReference getMethodReference():150:150 -> a
+    2:2:boolean hasNoLineNumberRange():174:174 -> a
+    2:2:boolean containsMinifiedLineNumber(int):166 -> a
+    3:3:boolean containsMinifiedLineNumber(int):169:169 -> a
+    1:1:com.android.tools.r8.retrace.RetraceMethodResult getRetraceMethodResult():154:154 -> b
+    2:2:int getOriginalLineNumber(int):162:162 -> b
+    1:1:boolean hasNoLineNumberRange():174:174 -> c
+com.android.tools.r8.retrace.RetraceRegularExpression -> com.android.tools.r8.retrace.u:
+    java.util.List stackTrace -> b
+    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> c
+    com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroup[] groups -> e
+    com.android.tools.r8.retrace.RetraceBase retraceBase -> a
+    boolean $assertionsDisabled -> f
+    java.lang.String regularExpression -> d
+    1:1:void <clinit>():27:27 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.retrace.RetraceBase,java.util.List,com.android.tools.r8.DiagnosticsHandler,java.lang.String):54:54 -> <init>
+    2:24:void <init>(com.android.tools.r8.retrace.RetraceBase,java.util.List,com.android.tools.r8.DiagnosticsHandler,java.lang.String):36:58 -> <init>
+    1:1:com.android.tools.r8.DiagnosticsHandler access$2300(com.android.tools.r8.retrace.RetraceRegularExpression):27:27 -> a
+    2:3:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():62:63 -> a
+    4:26:java.lang.String registerGroups(java.lang.String,java.util.List):133:155 -> a
+    4:26:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():63 -> a
+    27:30:java.lang.String registerGroups(java.lang.String,java.util.List):154:157 -> a
+    27:30:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():63 -> a
+    31:71:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():64:104 -> a
+com.android.tools.r8.retrace.RetraceRegularExpression$1 -> com.android.tools.r8.retrace.f:
+com.android.tools.r8.retrace.RetraceRegularExpression$BinaryNameGroup -> com.android.tools.r8.retrace.g:
+    1:1:void <init>():453:453 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):453:453 -> <init>
+    java.lang.String shortName() -> a
+    1:1:java.lang.String getClassName(com.android.tools.r8.references.ClassReference):467:467 -> a
+    java.lang.String subExpression() -> b
+    1:1:com.android.tools.r8.references.ClassReference classFromMatch(java.lang.String):472:472 -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup -> com.android.tools.r8.retrace.h:
+    1:1:void <init>():395:395 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):395:395 -> <init>
+    java.lang.String getClassName(com.android.tools.r8.references.ClassReference) -> a
+    1:229:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():0:228 -> a
+    1:229:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):415 -> a
+    230:235:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):416:421 -> a
+    236:240:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):418:422 -> a
+    241:241:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):413:413 -> a
+    242:242:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):403:403 -> a
+    243:250:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):404:411 -> a
+    com.android.tools.r8.references.ClassReference classFromMatch(java.lang.String) -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$FieldNameGroup -> com.android.tools.r8.retrace.i:
+    1:1:void <init>():545:545 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):545:545 -> <init>
+    1:229:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():0:228 -> a
+    1:229:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):575 -> a
+    230:237:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):577:584 -> a
+    238:246:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):582:590 -> a
+    247:251:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):587:591 -> a
+    java.lang.String shortName() -> a
+    252:252:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):559:559 -> a
+    253:266:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):560:573 -> a
+    java.lang.String subExpression() -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$FieldOrReturnTypeGroup -> com.android.tools.r8.retrace.j:
+    1:1:void <init>():723:723 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):723:723 -> <init>
+    java.lang.String shortName() -> a
+    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):737:737 -> a
+    2:14:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):738:750 -> a
+    15:15:com.android.tools.r8.retrace.RetraceTypeResult com.android.tools.r8.retrace.RetraceTypeResult.forEach(java.util.function.Consumer):40:40 -> a
+    15:15:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):750 -> a
+    16:16:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):752:752 -> a
+    17:245:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():0:228 -> a
+    17:245:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):755 -> a
+    246:250:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):756:760 -> a
+    251:255:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):757:761 -> a
+    256:256:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):753:753 -> a
+    java.lang.String subExpression() -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$LineNumberGroup -> com.android.tools.r8.retrace.k:
+    com.android.tools.r8.retrace.RetraceRegularExpression this$0 -> a
+    1:1:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression):645:645 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression,com.android.tools.r8.retrace.RetraceRegularExpression$1):645:645 -> <init>
+    java.lang.String shortName() -> a
+    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):659:659 -> a
+    2:30:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):660:688 -> a
+    31:44:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):685:698 -> a
+    45:53:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):695:703 -> a
+    54:282:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():0:228 -> a
+    54:282:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):706 -> a
+    283:288:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):707:712 -> a
+    289:293:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):709:713 -> a
+    294:294:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):704:704 -> a
+    295:295:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):671:671 -> a
+    java.lang.String subExpression() -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$MethodArgumentsGroup -> com.android.tools.r8.retrace.l:
+    com.android.tools.r8.retrace.RetraceRegularExpression this$0 -> a
+    1:1:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression):769:769 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression,com.android.tools.r8.retrace.RetraceRegularExpression$1):769:769 -> <init>
+    java.lang.String shortName() -> a
+    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):783:783 -> a
+    2:40:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):784:822 -> a
+    41:51:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):821:831 -> a
+    52:61:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):828:837 -> a
+    62:62:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
+    62:62:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):840 -> a
+    63:67:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):842:846 -> a
+    68:74:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):841:847 -> a
+    75:75:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):838:838 -> a
+    76:83:java.util.Set lambda$createHandler$1(com.android.tools.r8.retrace.RetraceBase,java.util.Set,java.lang.String):795:802 -> a
+    84:84:com.android.tools.r8.retrace.RetraceTypeResult com.android.tools.r8.retrace.RetraceTypeResult.forEach(java.util.function.Consumer):40:40 -> a
+    84:84:java.util.Set lambda$createHandler$1(com.android.tools.r8.retrace.RetraceBase,java.util.Set,java.lang.String):803 -> a
+    85:89:void lambda$createHandler$0(java.util.Set,java.util.Set,com.android.tools.r8.retrace.RetraceTypeResult$Element):805:809 -> a
+    90:90:java.util.Set lambda$createHandler$2(java.util.Set,java.util.Set):815:815 -> a
+    java.lang.String subExpression() -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$MethodNameGroup -> com.android.tools.r8.retrace.m:
+    1:1:void <init>():476:476 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):476:476 -> <init>
+    java.lang.String shortName() -> a
+    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):490:490 -> a
+    2:15:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):491:504 -> a
+    16:24:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):506:514 -> a
+    25:25:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
+    25:25:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):518 -> a
+    26:33:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):520:527 -> a
+    34:45:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):525:536 -> a
+    46:50:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):533:537 -> a
+    java.lang.String subExpression() -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroup -> com.android.tools.r8.retrace.n:
+    1:1:void <init>():383:383 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):383:383 -> <init>
+    com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String) -> a
+    java.lang.String shortName() -> a
+    java.lang.String subExpression() -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler -> com.android.tools.r8.retrace.o:
+    java.util.List handleMatch(java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase) -> a
+com.android.tools.r8.retrace.RetraceRegularExpression$RetraceLineComparator -> com.android.tools.r8.retrace.p:
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():107:107 -> <clinit>
+    1:1:void <init>():110:110 -> <init>
+    1:11:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):112:122 -> a
+    12:12:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):120:120 -> a
+    13:13:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):118:118 -> a
+    14:14:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):116:116 -> a
+    15:25:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):114:124 -> a
+com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString -> com.android.tools.r8.retrace.r:
+    java.lang.String retracedString -> g
+    com.android.tools.r8.retrace.RetraceMethodResult$Element methodContext -> d
+    com.android.tools.r8.references.TypeReference typeOrReturnTypeContext -> e
+    boolean isAmbiguous -> i
+    int lineNumber -> j
+    java.lang.String source -> k
+    com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup classNameGroup -> b
+    com.android.tools.r8.references.ClassReference qualifiedContext -> c
+    int adjustedIndex -> h
+    com.android.tools.r8.retrace.RetraceClassResult$Element classContext -> a
+    boolean hasTypeOrReturnTypeContext -> f
+    1:1:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element,com.android.tools.r8.references.TypeReference,boolean,java.lang.String,int,boolean,int,java.lang.String,com.android.tools.r8.retrace.RetraceRegularExpression$1):164:164 -> <init>
+    2:13:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element,com.android.tools.r8.references.TypeReference,boolean,java.lang.String,int,boolean,int,java.lang.String):189:200 -> <init>
+    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup access$1000(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> a
+    2:2:com.android.tools.r8.retrace.RetraceClassResult$Element getClassContext():212:212 -> a
+    1:1:com.android.tools.r8.references.ClassReference access$1100(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> b
+    2:2:int getLineNumber():232:232 -> b
+    1:1:com.android.tools.r8.retrace.RetraceMethodResult$Element access$1200(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> c
+    2:2:com.android.tools.r8.retrace.RetraceMethodResult$Element getMethodContext():216:216 -> c
+    1:1:com.android.tools.r8.references.TypeReference access$1300(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> d
+    2:2:com.android.tools.r8.references.ClassReference getQualifiedContext():224:224 -> d
+    1:1:boolean access$1400(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> e
+    2:2:java.lang.String getRetracedString():204:204 -> e
+    1:1:java.lang.String access$1500(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> f
+    2:2:java.lang.String getSource():236:236 -> f
+    1:1:int access$1600(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> g
+    2:2:com.android.tools.r8.references.TypeReference getTypeOrReturnTypeContext():220:220 -> g
+    1:1:int access$1700(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> h
+    2:2:boolean hasTypeOrReturnTypeContext():208:208 -> h
+    1:1:java.lang.String access$1800(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> i
+    1:1:boolean access$800(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> j
+    1:1:com.android.tools.r8.retrace.RetraceClassResult$Element access$900(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> k
+com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder -> com.android.tools.r8.retrace.q:
+    boolean $assertionsDisabled -> m
+    java.lang.String retracedString -> g
+    int maxReplaceStringIndex -> l
+    com.android.tools.r8.retrace.RetraceMethodResult$Element methodContext -> d
+    com.android.tools.r8.references.TypeReference typeOrReturnTypeContext -> e
+    boolean isAmbiguous -> i
+    int lineNumber -> j
+    java.lang.String source -> k
+    com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup classNameGroup -> b
+    com.android.tools.r8.references.ClassReference qualifiedContext -> c
+    int adjustedIndex -> h
+    com.android.tools.r8.retrace.RetraceClassResult$Element classContext -> a
+    boolean hasTypeOrReturnTypeContext -> f
+    1:1:void <clinit>():239:239 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element,com.android.tools.r8.references.TypeReference,boolean,java.lang.String,int,boolean,int,java.lang.String):266:266 -> <init>
+    2:26:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element,com.android.tools.r8.references.TypeReference,boolean,java.lang.String,int,boolean,int,java.lang.String):253:277 -> <init>
+    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup access$2200(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder):239:239 -> a
+    2:2:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder create(java.lang.String):281:281 -> a
+    3:14:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder create(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):286:297 -> a
+    15:16:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setClassContext(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup):301:302 -> a
+    17:17:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setMethodContext(com.android.tools.r8.retrace.RetraceMethodResult$Element):307:307 -> a
+    18:19:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setTypeOrReturnTypeContext(com.android.tools.r8.references.TypeReference):312:313 -> a
+    20:20:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setQualifiedContext(com.android.tools.r8.references.ClassReference):318:318 -> a
+    21:21:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setAmbiguous(boolean):323:323 -> a
+    22:22:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setLineNumber(int):328:328 -> a
+    23:26:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder replaceInString(java.lang.String,java.lang.String):338:341 -> a
+    27:27:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder replaceInString(java.lang.String,int,int):345:345 -> a
+    28:28:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString build():361:361 -> a
+    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setSource(java.lang.String):333:333 -> b
+    2:8:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder replaceInStringRaw(java.lang.String,int,int):350:356 -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$SourceFileGroup -> com.android.tools.r8.retrace.s:
+    1:1:void <init>():599:599 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):599:599 -> <init>
+    java.lang.String shortName() -> a
+    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):613:613 -> a
+    2:17:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):614:629 -> a
+    18:23:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):626:631 -> a
+    24:24:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
+    24:24:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):634 -> a
+    25:27:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):635:637 -> a
+    28:30:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):636:638 -> a
+    31:31:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):632:632 -> a
+    java.lang.String subExpression() -> b
+com.android.tools.r8.retrace.RetraceRegularExpression$TypeNameGroup -> com.android.tools.r8.retrace.t:
+    1:1:void <init>():430:430 -> <init>
+    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):430:430 -> <init>
+    java.lang.String shortName() -> a
+    1:1:java.lang.String getClassName(com.android.tools.r8.references.ClassReference):444:444 -> a
+    java.lang.String subExpression() -> b
+    1:1:com.android.tools.r8.references.ClassReference classFromMatch(java.lang.String):449:449 -> b
+com.android.tools.r8.retrace.RetraceStackTrace -> com.android.tools.r8.retrace.D:
+    java.util.List stackTrace -> b
+    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> c
+    com.android.tools.r8.retrace.RetraceBase retraceBase -> a
+    boolean verbose -> d
+    1:5:void <init>(com.android.tools.r8.retrace.RetraceBase,java.util.List,com.android.tools.r8.DiagnosticsHandler,boolean):98:102 -> <init>
+    1:7:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():106:112 -> a
+    8:11:void retraceLine(java.util.List,int,java.util.List):116:119 -> a
+    12:12:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):609:609 -> a
+    12:12:void retraceLine(java.util.List,int,java.util.List):119 -> a
+    13:33:com.android.tools.r8.retrace.RetraceStackTrace$ExceptionLine com.android.tools.r8.retrace.RetraceStackTrace$ExceptionLine.tryParse(java.lang.String):204:224 -> a
+    13:33:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):613 -> a
+    13:33:void retraceLine(java.util.List,int,java.util.List):119 -> a
+    34:56:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine com.android.tools.r8.retrace.RetraceStackTrace$CircularReferenceLine.tryParse(java.lang.String):539:561 -> a
+    34:56:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):617 -> a
+    34:56:void retraceLine(java.util.List,int,java.util.List):119 -> a
+    57:67:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine com.android.tools.r8.retrace.RetraceStackTrace$MoreLine.tryParse(java.lang.String):495:505 -> a
+    57:67:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):621 -> a
+    57:67:void retraceLine(java.util.List,int,java.util.List):119 -> a
+    68:70:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):623:623 -> a
+    68:70:void retraceLine(java.util.List,int,java.util.List):119 -> a
+    73:73:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):626:626 -> a
+    73:73:void retraceLine(java.util.List,int,java.util.List):119 -> a
+    74:77:void retraceLine(java.util.List,int,java.util.List):120:123 -> a
+    78:79:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):605:606 -> a
+    78:79:void retraceLine(java.util.List,int,java.util.List):119 -> a
+com.android.tools.r8.retrace.RetraceStackTrace$AtLine -> com.android.tools.r8.retrace.v:
+    java.lang.String methodAsString -> g
+    java.lang.String method -> f
+    java.lang.String fileName -> h
+    boolean isAmbiguous -> j
+    int linePosition -> i
+    java.lang.String startingWhitespace -> a
+    java.lang.String classLoaderName -> c
+    java.lang.String at -> b
+    java.lang.String clazz -> e
+    java.lang.String moduleName -> d
+    1:11:void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean):299:309 -> <init>
+    com.android.tools.r8.retrace.RetraceStackTrace$AtLine asAtLine() -> a
+    1:1:boolean access$000(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):273:273 -> a
+    2:72:com.android.tools.r8.retrace.RetraceStackTrace$AtLine tryParse(java.lang.String):314:384 -> a
+    73:85:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):401:413 -> a
+    86:86:void lambda$retrace$0(com.android.tools.r8.retrace.RetraceBase,boolean,java.util.List,com.android.tools.r8.retrace.RetraceClassResult$Element):410:410 -> a
+    87:87:void lambda$retrace$0(com.android.tools.r8.retrace.RetraceBase,boolean,java.util.List,com.android.tools.r8.retrace.RetraceClassResult$Element):409:409 -> a
+    88:93:void retraceClassAndMethods(com.android.tools.r8.retrace.RetraceBase,boolean,java.util.List,java.lang.String):423:428 -> a
+    94:102:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):430:438 -> a
+    103:110:java.lang.String com.android.tools.r8.retrace.RetraceUtils.methodDescriptionFromMethodReference(com.android.tools.r8.references.MethodReference,boolean):14:21 -> a
+    103:110:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):439 -> a
+    111:129:java.lang.String com.android.tools.r8.retrace.RetraceUtils.methodDescriptionFromMethodReference(com.android.tools.r8.references.MethodReference,boolean):18:36 -> a
+    111:129:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):439 -> a
+    130:130:java.lang.String com.android.tools.r8.retrace.RetraceUtils.methodDescriptionFromMethodReference(com.android.tools.r8.references.MethodReference,boolean):15:15 -> a
+    130:130:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):439 -> a
+    131:133:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):439:441 -> a
+    134:134:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):440:440 -> a
+    135:135:boolean hasLinePosition():396:396 -> a
+    135:135:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):442 -> a
+    136:138:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):443:445 -> a
+    139:139:void lambda$retraceClassAndMethods$1(java.util.List,java.lang.String,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):431:431 -> a
+    boolean isAtLine() -> b
+    1:1:java.lang.String access$100(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):273:273 -> b
+    1:1:java.lang.String access$200(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):273:273 -> c
+    1:1:java.lang.String access$300(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):273:273 -> d
+    1:1:int access$400(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):273:273 -> e
+    1:21:java.lang.String toString():451:471 -> toString
+com.android.tools.r8.retrace.RetraceStackTrace$AtStackTraceLineComparator -> com.android.tools.r8.retrace.w:
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():65:65 -> <clinit>
+    1:1:void <init>():68:68 -> <init>
+    1:13:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):70:82 -> a
+    14:14:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):80:80 -> a
+    15:15:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):78:78 -> a
+    16:16:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):76:76 -> a
+    17:27:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):74:84 -> a
+com.android.tools.r8.retrace.RetraceStackTrace$CircularReferenceLine -> com.android.tools.r8.retrace.x:
+    java.lang.String startWhitespace -> a
+    java.lang.String endBracketAndWhitespace -> c
+    java.lang.String exceptionClass -> b
+    1:4:void <init>(java.lang.String,java.lang.String,java.lang.String):531:534 -> <init>
+    1:4:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):566:569 -> a
+    5:9:void lambda$retrace$0(java.util.List,com.android.tools.r8.retrace.RetraceClassResult$Element):571:571 -> a
+    1:1:java.lang.String toString():581:581 -> toString
+com.android.tools.r8.retrace.RetraceStackTrace$ExceptionLine -> com.android.tools.r8.retrace.y:
+    java.lang.String initialWhiteSpace -> a
+    java.lang.String exceptionClass -> c
+    java.lang.String description -> b
+    java.lang.String message -> d
+    1:5:void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String):196:200 -> <init>
+    1:4:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):229:232 -> a
+    5:10:void lambda$retrace$0(java.util.List,com.android.tools.r8.retrace.RetraceClassResult$Element):234:234 -> a
+    1:1:java.lang.String toString():245:245 -> toString
+com.android.tools.r8.retrace.RetraceStackTrace$MoreLine -> com.android.tools.r8.retrace.z:
+    java.lang.String line -> a
+    1:2:void <init>(java.lang.String):488:489 -> <init>
+    1:1:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):513:513 -> a
+    1:1:java.lang.String toString():518:518 -> toString
+com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine -> com.android.tools.r8.retrace.A:
+    1:1:void <init>():126:126 -> <init>
+    com.android.tools.r8.retrace.RetraceStackTrace$AtLine asAtLine() -> a
+    java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean) -> a
+    1:1:int firstNonWhiteSpaceCharacterFromIndex(java.lang.String,int):131:131 -> a
+    2:2:int firstCharFromIndex(java.lang.String,int,char):135:135 -> a
+    3:3:boolean lambda$firstCharFromIndex$0(char,java.lang.Character):135:135 -> a
+    4:9:int firstFromIndex(java.lang.String,int,java.util.function.Predicate):139:144 -> a
+    boolean isAtLine() -> b
+com.android.tools.r8.retrace.RetraceStackTrace$StackTraceNode -> com.android.tools.r8.retrace.B:
+    java.util.List lines -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:4:void <init>(java.util.List):27:30 -> <init>
+    1:9:void append(java.util.List):34:42 -> a
+    10:25:void append(java.util.List):41:56 -> a
+    26:31:void append(java.util.List):53:58 -> a
+    32:32:boolean lambda$append$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine):42:42 -> a
+com.android.tools.r8.retrace.RetraceStackTrace$UnknownLine -> com.android.tools.r8.retrace.C:
+    java.lang.String line -> a
+    1:2:void <init>(java.lang.String):588:589 -> <init>
+    1:1:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):594:594 -> a
+    1:1:java.lang.String toString():599:599 -> toString
+com.android.tools.r8.retrace.RetraceTypeResult -> com.android.tools.r8.retrace.F:
+    com.android.tools.r8.retrace.RetraceBase retraceBase -> b
+    com.android.tools.r8.references.TypeReference obfuscatedType -> a
+    1:3:void <init>(com.android.tools.r8.references.TypeReference,com.android.tools.r8.retrace.RetraceBase):18:20 -> <init>
+    1:1:com.android.tools.r8.retrace.RetraceTypeResult$Element lambda$stream$0(int,com.android.tools.r8.retrace.RetraceTypeResult$Element):32:32 -> a
+    2:2:com.android.tools.r8.retrace.RetraceTypeResult$Element lambda$stream$1(com.android.tools.r8.retrace.RetraceClassResult$Element):35:35 -> a
+    1:1:com.android.tools.r8.retrace.RetraceTypeResult forEach(java.util.function.Consumer):40:40 -> forEach
+    1:1:com.android.tools.r8.retrace.Result forEach(java.util.function.Consumer):13 -> forEach
+    1:10:java.util.stream.Stream stream():26:35 -> stream
+    11:11:java.util.stream.Stream stream():27:27 -> stream
+com.android.tools.r8.retrace.RetraceTypeResult$Element -> com.android.tools.r8.retrace.E:
+    com.android.tools.r8.references.TypeReference typeReference -> a
+    1:2:void <init>(com.android.tools.r8.references.TypeReference):48:49 -> <init>
+    1:1:com.android.tools.r8.references.TypeReference getTypeReference():53:53 -> a
+com.android.tools.r8.shaking.AbstractMethodRemover -> com.android.tools.r8.shaking.AbstractMethodRemover:
+    1:1:void <clinit>():23:23 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness):28:28 -> <init>
+    2:5:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness):26:29 -> <init>
+    1:10:void processClass(com.android.tools.r8.graph.DexType):38:47 -> processClass
+    1:17:com.android.tools.r8.graph.DexEncodedMethod[] processMethods(java.util.List):56:72 -> processMethods
+    18:33:com.android.tools.r8.graph.DexEncodedMethod[] processMethods(java.util.List):62:77 -> processMethods
+    1:2:void run():33:34 -> run
+com.android.tools.r8.shaking.AnnotationFixer -> com.android.tools.r8.shaking.AnnotationFixer:
+    1:1:void <clinit>():20:20 -> <clinit>
+    1:2:void <init>(com.android.tools.r8.graph.GraphLense):24:25 -> <init>
+    1:1:com.android.tools.r8.graph.DexAnnotationSet lambda$processMethod$0(com.android.tools.r8.graph.DexAnnotationSet):40:40 -> lambda$processMethod$0
+    1:1:void processField(com.android.tools.r8.graph.DexEncodedField):44:44 -> processField
+    1:3:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):37:39 -> processMethod
+    1:1:com.android.tools.r8.graph.DexAnnotation rewriteAnnotation(com.android.tools.r8.graph.DexAnnotation):48:48 -> rewriteAnnotation
+    1:3:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexAnnotationElement):59:61 -> rewriteAnnotationElement
+    1:3:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):52:54 -> rewriteEncodedAnnotation
+    1:12:com.android.tools.r8.graph.DexValue rewriteValue(com.android.tools.r8.graph.DexValue):67:78 -> rewriteValue
+    1:4:void run(java.lang.Iterable):29:32 -> run
+com.android.tools.r8.shaking.AnnotationRemover -> com.android.tools.r8.shaking.AnnotationRemover:
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):35:38 -> <init>
+    1:2:void clearAnnotations(com.android.tools.r8.graph.AppView):360:361 -> clearAnnotations
+    3:3:java.lang.Iterable com.android.tools.r8.graph.DexClass.members():133:133 -> clearAnnotations
+    3:3:void clearAnnotations(com.android.tools.r8.graph.AppView):362 -> clearAnnotations
+    4:4:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> clearAnnotations
+    4:4:java.lang.Iterable com.android.tools.r8.graph.DexClass.members():133 -> clearAnnotations
+    4:4:void clearAnnotations(com.android.tools.r8.graph.AppView):362 -> clearAnnotations
+    5:5:void clearAnnotations(com.android.tools.r8.graph.AppView):362:362 -> clearAnnotations
+    1:43:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.graph.AppView):181:223 -> computeClassesToRetainInnerClassAttributeFor
+    44:44:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.graph.AppView):183:183 -> computeClassesToRetainInnerClassAttributeFor
+    1:3:boolean enclosingMethodPinned(com.android.tools.r8.graph.DexClass):290:292 -> enclosingMethodPinned
+    1:1:com.android.tools.r8.shaking.AnnotationRemover ensureValid():138:138 -> ensureValid
+    1:1:boolean filterAnnotations(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):43:43 -> filterAnnotations
+    1:15:boolean filterParameterAnnotations(com.android.tools.r8.graph.DexAnnotation):118:132 -> filterParameterAnnotations
+    16:28:boolean filterParameterAnnotations(com.android.tools.r8.graph.DexAnnotation):122:134 -> filterParameterAnnotations
+    1:5:boolean hasGenericEnclosingClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.Set):147:151 -> hasGenericEnclosingClass
+    1:2:boolean hasInnerClassesFromSet(com.android.tools.r8.graph.DexProgramClass,java.util.Set):296:297 -> hasInnerClassesFromSet
+    1:2:boolean hasSignatureAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):159:160 -> hasSignatureAnnotation
+    1:2:boolean isAnnotationTypeLive(com.android.tools.r8.graph.DexAnnotation):110:111 -> isAnnotationTypeLive
+    1:1:com.android.tools.r8.graph.DexAnnotation lambda$processField$2(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexAnnotation):248:248 -> lambda$processField$2
+    1:1:com.android.tools.r8.graph.DexAnnotation lambda$processMethod$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):241:241 -> lambda$processMethod$1
+    1:1:boolean lambda$rewriteAnnotationElement$4(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexEncodedMethod):285:285 -> lambda$rewriteAnnotationElement$4
+    1:1:com.android.tools.r8.graph.DexAnnotationElement lambda$rewriteEncodedAnnotation$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):266:266 -> lambda$rewriteEncodedAnnotation$3
+    1:1:com.android.tools.r8.graph.DexAnnotation lambda$run$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):233:233 -> lambda$run$0
+    1:12:boolean lambda$stripAttributes$5(boolean,com.android.tools.r8.graph.DexProgramClass,boolean,com.android.tools.r8.graph.InnerClassAttribute):334:345 -> lambda$stripAttributes$5
+    1:1:void processField(com.android.tools.r8.graph.DexEncodedField):248:248 -> processField
+    2:2:void processField(com.android.tools.r8.graph.DexEncodedField):247:247 -> processField
+    1:1:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):241:241 -> processMethod
+    2:5:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):240:243 -> processMethod
+    1:5:com.android.tools.r8.graph.DexAnnotation rewriteAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):253:257 -> rewriteAnnotation
+    1:1:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):276:276 -> rewriteAnnotationElement
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> rewriteAnnotationElement
+    2:2:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):276 -> rewriteAnnotationElement
+    3:6:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):282:285 -> rewriteAnnotationElement
+    1:8:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):261:268 -> rewriteEncodedAnnotation
+    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> rewriteEncodedAnnotation
+    9:9:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):268 -> rewriteEncodedAnnotation
+    10:12:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):269:269 -> rewriteEncodedAnnotation
+    1:4:void run():230:233 -> run
+    5:8:void run():232:235 -> run
+    1:11:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):52:62 -> shouldKeepAnnotation
+    12:12:boolean com.android.tools.r8.graph.DexAnnotation.isMemberClassesAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):137:137 -> shouldKeepAnnotation
+    12:12:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):62 -> shouldKeepAnnotation
+    13:14:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):62:63 -> shouldKeepAnnotation
+    15:15:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingMethodAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):128:128 -> shouldKeepAnnotation
+    15:15:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):63 -> shouldKeepAnnotation
+    16:17:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):63:64 -> shouldKeepAnnotation
+    18:18:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):123:123 -> shouldKeepAnnotation
+    18:18:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):64 -> shouldKeepAnnotation
+    19:20:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):64:65 -> shouldKeepAnnotation
+    21:21:boolean com.android.tools.r8.graph.DexAnnotation.isThrowingAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):268:268 -> shouldKeepAnnotation
+    21:21:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):65 -> shouldKeepAnnotation
+    22:22:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):68:68 -> shouldKeepAnnotation
+    23:23:boolean com.android.tools.r8.graph.DexAnnotation.isSourceDebugExtension(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):284:284 -> shouldKeepAnnotation
+    23:23:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):71 -> shouldKeepAnnotation
+    24:26:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):72:74 -> shouldKeepAnnotation
+    27:31:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):73:77 -> shouldKeepAnnotation
+    32:32:boolean com.android.tools.r8.graph.DexAnnotation.isParameterNameAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):289:289 -> shouldKeepAnnotation
+    32:32:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):78 -> shouldKeepAnnotation
+    33:33:boolean com.android.tools.r8.graph.DexAnnotation.isAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):279:279 -> shouldKeepAnnotation
+    33:33:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):81 -> shouldKeepAnnotation
+    34:34:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):105:105 -> shouldKeepAnnotation
+    35:35:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):89:89 -> shouldKeepAnnotation
+    36:36:boolean com.android.tools.r8.graph.DexAnnotation.isSynthesizedClassMapAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):394:394 -> shouldKeepAnnotation
+    36:36:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):95 -> shouldKeepAnnotation
+    37:37:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):99:99 -> shouldKeepAnnotation
+    1:45:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):311:355 -> stripAttributes
+    46:55:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):323:332 -> stripAttributes
+com.android.tools.r8.shaking.AppInfoWithLiveness -> com.android.tools.r8.shaking.AppInfoWithLiveness:
+    1:1:void <clinit>():65:65 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):234:234 -> <init>
+    2:427:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):80:505 -> <init>
+    428:466:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):235:273 -> <init>
+    467:467:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):317:317 -> <init>
+    468:893:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):80:505 -> <init>
+    894:932:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):318:356 -> <init>
+    933:974:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness):360:401 -> <init>
+    975:1016:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,java.util.Collection,java.util.Collection):409:409 -> <init>
+    1061:1062:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,java.util.Collection,java.util.Collection):454:455 -> <init>
+    1063:1063:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,java.util.Map,java.util.Map):462:462 -> <init>
+    1064:1489:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,java.util.Map,java.util.Map):80:505 -> <init>
+    1490:1529:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,java.util.Map,java.util.Map):463:502 -> <init>
+    1:3:com.android.tools.r8.shaking.AppInfoWithLiveness addEnumValueInfoMaps(java.util.Map):1443:1445 -> addEnumValueInfoMaps
+    1:3:com.android.tools.r8.shaking.AppInfoWithLiveness addSwitchMaps(java.util.Map):1436:1438 -> addSwitchMaps
+    1:1:java.lang.Iterable allImmediateExtendsSubtypes(com.android.tools.r8.graph.DexType):658:658 -> allImmediateExtendsSubtypes
+    1:1:java.lang.Iterable allImmediateImplementsSubtypes(com.android.tools.r8.graph.DexType):675:675 -> allImmediateImplementsSubtypes
+    1:12:boolean assertNoItemRemoved(java.util.Collection,java.util.Collection):736:747 -> assertNoItemRemoved
+    1:15:boolean canVirtualMethodBeImplementedInExtraSubclass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):920:934 -> canVirtualMethodBeImplementedInExtraSubclass
+    1:27:java.util.Collection computeReachableInterfaces():554:580 -> computeReachableInterfaces
+    1:6:com.android.tools.r8.shaking.AppInfoWithLiveness createRewrittenAppInfoWithLiveness(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense$NestedGraphLense):992:992 -> createRewrittenAppInfoWithLiveness
+    12:17:com.android.tools.r8.shaking.AppInfoWithLiveness createRewrittenAppInfoWithLiveness(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense$NestedGraphLense):998:998 -> createRewrittenAppInfoWithLiveness
+    23:28:com.android.tools.r8.shaking.AppInfoWithLiveness createRewrittenAppInfoWithLiveness(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense$NestedGraphLense):1004:1004 -> createRewrittenAppInfoWithLiveness
+    34:78:com.android.tools.r8.shaking.AppInfoWithLiveness createRewrittenAppInfoWithLiveness(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense$NestedGraphLense):1010:1054 -> createRewrittenAppInfoWithLiveness
+    1:6:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):523:528 -> definitionFor
+    7:7:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):524:524 -> definitionFor
+    1:1:void disableDefinitionForAssert():518:518 -> disableDefinitionForAssert
+    1:1:void enableDefinitionForAssert():513:513 -> enableDefinitionForAssert
+    1:44:com.android.tools.r8.graph.DexEncodedMethod findSingleTargetFromSubtypes(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,boolean,boolean):1244:1287 -> findSingleTargetFromSubtypes
+    1:1:void forAllImmediateExtendsSubtypes(com.android.tools.r8.graph.DexType,java.util.function.Consumer):653:653 -> forAllImmediateExtendsSubtypes
+    1:1:void forAllImmediateImplementsSubtypes(com.android.tools.r8.graph.DexType,java.util.function.Consumer):670:670 -> forAllImmediateImplementsSubtypes
+    1:2:void forEachLiveProgramClass(java.util.function.Consumer):1449:1450 -> forEachLiveProgramClass
+    1:1:void forEachReferencedClasspathClass(java.util.function.Consumer):1461:1461 -> forEachReferencedClasspathClass
+    1:3:void forEachTypeInHierarchyOfLiveProgramClasses(java.util.function.Consumer):1470:1470 -> forEachTypeInHierarchyOfLiveProgramClasses
+    4:39:void forEachTypeInHierarchyOfLiveProgramClasses(java.util.function.Consumer,java.util.Collection,java.util.Set,com.android.tools.r8.graph.AppInfoWithClassHierarchy):1480:1515 -> forEachTypeInHierarchyOfLiveProgramClasses
+    1:2:java.util.Map getEnumValueInfoMapFor(com.android.tools.r8.graph.DexType):708:709 -> getEnumValueInfoMapFor
+    1:1:com.android.tools.r8.graph.FieldAccessInfoCollection getFieldAccessInfoCollection():719:719 -> getFieldAccessInfoCollection
+    1:1:com.android.tools.r8.graph.FieldAccessInfoCollectionImpl getMutableFieldAccessInfoCollection():723:723 -> getMutableFieldAccessInfoCollection
+    1:1:com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl getMutableObjectAllocationInfoCollection():732:732 -> getMutableObjectAllocationInfoCollection
+    1:1:com.android.tools.r8.graph.ObjectAllocationInfoCollection getObjectAllocationInfoCollection():728:728 -> getObjectAllocationInfoCollection
+    1:2:java.util.Set getPinnedItems():963:964 -> getPinnedItems
+    1:2:java.util.Set getPrunedTypes():1068:1069 -> getPrunedTypes
+    1:2:com.android.tools.r8.graph.DexProgramClass getSingleDirectSubtype(com.android.tools.r8.graph.DexProgramClass):640:641 -> getSingleDirectSubtype
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getSwitchMapFor(com.android.tools.r8.graph.DexField):713:714 -> getSwitchMapFor
+    1:2:boolean hasAnyInstantiatedLambdas(com.android.tools.r8.graph.DexProgramClass):881:882 -> hasAnyInstantiatedLambdas
+    1:1:boolean hasLiveness():887:887 -> hasLiveness
+    1:5:boolean hasPinnedInstanceInitializer(com.android.tools.r8.graph.DexType):903:907 -> hasPinnedInstanceInitializer
+    1:10:boolean interfacesMayHaveDefaultFor(com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexMethod):1303:1312 -> interfacesMayHaveDefaultFor
+    1:7:boolean isFieldOnlyWrittenInMethod(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):826:832 -> isFieldOnlyWrittenInMethod
+    1:11:boolean isFieldRead(com.android.tools.r8.graph.DexEncodedField):788:798 -> isFieldRead
+    1:2:boolean isFieldWritten(com.android.tools.r8.graph.DexEncodedField):802:803 -> isFieldWritten
+    1:12:boolean isFieldWrittenByFieldPutInstruction(com.android.tools.r8.graph.DexEncodedField):807:818 -> isFieldWrittenByFieldPutInstruction
+    1:4:boolean isInstantiatedDirectly(com.android.tools.r8.graph.DexProgramClass):753:756 -> isInstantiatedDirectly
+    5:5:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> isInstantiatedDirectly
+    5:5:boolean isInstantiatedDirectly(com.android.tools.r8.graph.DexProgramClass):757 -> isInstantiatedDirectly
+    6:6:boolean isInstantiatedDirectly(com.android.tools.r8.graph.DexProgramClass):757:757 -> isInstantiatedDirectly
+    1:2:boolean isInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexProgramClass):783:784 -> isInstantiatedDirectlyOrIndirectly
+    1:19:boolean isInstantiatedIndirectly(com.android.tools.r8.graph.DexProgramClass):761:779 -> isInstantiatedIndirectly
+    1:4:boolean isInvalidSingleVirtualTarget(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1114:1117 -> isInvalidSingleVirtualTarget
+    1:2:boolean isLibraryOrClasspathField(com.android.tools.r8.graph.DexEncodedField):851:852 -> isLibraryOrClasspathField
+    1:1:boolean isLiveProgramClass(com.android.tools.r8.graph.DexProgramClass):534:534 -> isLiveProgramClass
+    1:2:boolean isLiveProgramType(com.android.tools.r8.graph.DexType):538:539 -> isLiveProgramType
+    1:1:boolean isLockCandidate(com.android.tools.r8.graph.DexType):685:685 -> isLockCandidate
+    1:8:boolean isNonProgramTypeOrLiveProgramType(com.android.tools.r8.graph.DexType):543:550 -> isNonProgramTypeOrLiveProgramType
+    1:2:boolean isPinned(com.android.tools.r8.graph.DexReference):898:899 -> isPinned
+    1:5:boolean isStaticFieldWrittenOnlyInEnclosingStaticInitializer(com.android.tools.r8.graph.DexEncodedField):838:842 -> isStaticFieldWrittenOnlyInEnclosingStaticInitializer
+    1:2:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> isVirtualMethodPinnedDirectlyOrInAncestor
+    1:2:boolean isVirtualMethodPinnedDirectlyOrInAncestor(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):943 -> isVirtualMethodPinnedDirectlyOrInAncestor
+    3:14:boolean isVirtualMethodPinnedDirectlyOrInAncestor(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):944:955 -> isVirtualMethodPinnedDirectlyOrInAncestor
+    1:1:com.android.tools.r8.graph.DexProgramClass lambda$forEachTypeInHierarchyOfLiveProgramClasses$3(com.android.tools.r8.graph.DexType):1471:1471 -> lambda$forEachTypeInHierarchyOfLiveProgramClasses$3
+    1:1:void lambda$forEachTypeInHierarchyOfLiveProgramClasses$4(java.util.Set,com.android.tools.r8.graph.DexProgramClass):1482:1482 -> lambda$forEachTypeInHierarchyOfLiveProgramClasses$4
+    1:1:java.util.Set lambda$rewriteKeysConservativelyWhileMergingValues$1(com.android.tools.r8.graph.PresortedComparable):872:872 -> lambda$rewriteKeysConservativelyWhileMergingValues$1
+    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness lambda$rewrittenWithLens$2(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense$NestedGraphLense):986:986 -> lambda$rewrittenWithLens$2
+    1:6:void lambda$withoutStaticFieldsWrites$0(java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):696:701 -> lambda$withoutStaticFieldsWrites$0
+    1:34:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):600:633 -> lookupLambdaImplementedMethods
+    35:35:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):603:603 -> lookupLambdaImplementedMethods
+    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1320:1321 -> lookupSingleInterfaceTarget
+    3:19:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1329:1345 -> lookupSingleInterfaceTarget
+    20:72:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1344:1396 -> lookupSingleInterfaceTarget
+    73:73:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> lookupSingleInterfaceTarget
+    73:73:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1396 -> lookupSingleInterfaceTarget
+    74:109:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1397:1432 -> lookupSingleInterfaceTarget
+    1:16:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1074:1089 -> lookupSingleTarget
+    17:17:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1087:1087 -> lookupSingleTarget
+    18:18:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1085:1085 -> lookupSingleTarget
+    19:19:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1083:1083 -> lookupSingleTarget
+    20:20:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1081:1081 -> lookupSingleTarget
+    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1122:1123 -> lookupSingleVirtualTarget
+    3:34:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1131:1162 -> lookupSingleVirtualTarget
+    35:91:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1161:1217 -> lookupSingleVirtualTarget
+    92:98:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1213:1219 -> lookupSingleVirtualTarget
+    99:108:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1212:1221 -> lookupSingleVirtualTarget
+    109:109:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1199:1199 -> lookupSingleVirtualTarget
+    1:2:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexReference):846:847 -> mayPropagateValueFor
+    1:1:com.android.tools.r8.shaking.AppInfoWithLivenessModifier modifier():508:508 -> modifier
+    1:2:com.android.tools.r8.shaking.AppInfoWithLiveness prunedCopyFrom(com.android.tools.r8.graph.DirectMappedDexApplication,java.util.Collection,java.util.Collection):975:976 -> prunedCopyFrom
+    1:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteItems(java.util.Set,java.util.function.Function):857:861 -> rewriteItems
+    1:10:java.util.SortedMap rewriteKeysConservativelyWhileMergingValues(java.util.Map,java.util.function.Function):867:876 -> rewriteKeysConservativelyWhileMergingValues
+    1:6:com.android.tools.r8.shaking.AppInfoWithLiveness rewrittenWithLens(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense$NestedGraphLense):981:986 -> rewrittenWithLens
+    7:7:com.android.tools.r8.shaking.AppInfoWithLiveness rewrittenWithLens(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense$NestedGraphLense):985:985 -> rewrittenWithLens
+    1:9:com.android.tools.r8.graph.DexEncodedMethod validateSingleVirtualTarget(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1097:1105 -> validateSingleVirtualTarget
+    1:2:boolean wasPruned(com.android.tools.r8.graph.DexType):1063:1064 -> wasPruned
+    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness withLiveness():893:893 -> withLiveness
+    1:6:com.android.tools.r8.shaking.AppInfoWithLiveness withoutStaticFieldsWrites(java.util.Set):689:694 -> withoutStaticFieldsWrites
+com.android.tools.r8.shaking.AppInfoWithLiveness$1 -> com.android.tools.r8.shaking.AppInfoWithLiveness$1:
+    1:1:void <clinit>():1079:1079 -> <clinit>
+com.android.tools.r8.shaking.AppInfoWithLiveness$EnumValueInfo -> com.android.tools.r8.shaking.AppInfoWithLiveness$EnumValueInfo:
+    1:3:void <init>(com.android.tools.r8.graph.DexType,int):184:186 -> <init>
+com.android.tools.r8.shaking.AppInfoWithLivenessModifier -> com.android.tools.r8.shaking.AppInfoWithLivenessModifier:
+    1:1:void <init>():21:21 -> <init>
+    2:3:void <init>():18:19 -> <init>
+    1:1:void clear():56:56 -> clear
+    1:1:boolean isEmpty():24:24 -> isEmpty
+    1:3:void lambda$modify$0(com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.DexField):46:48 -> lambda$modify$0
+    1:15:void modify(com.android.tools.r8.shaking.AppInfoWithLiveness):38:52 -> modify
+    1:1:void removeInstantiatedType(com.android.tools.r8.graph.DexProgramClass):28:28 -> removeInstantiatedType
+    1:1:void removeWrittenField(com.android.tools.r8.graph.DexField):32:32 -> removeWrittenField
+com.android.tools.r8.shaking.ClassInlineRule -> com.android.tools.r8.shaking.ClassInlineRule:
+    1:15:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassInlineRule$Type):73:87 -> <init>
+    1:1:com.android.tools.r8.shaking.ClassInlineRule$Builder builder():91:91 -> builder
+    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type getType():95:95 -> getType
+    1:7:java.lang.String typeString():110:116 -> typeString
+com.android.tools.r8.shaking.ClassInlineRule$1 -> com.android.tools.r8.shaking.ClassInlineRule$1:
+    1:1:void <clinit>():110:110 -> <clinit>
+com.android.tools.r8.shaking.ClassInlineRule$Builder -> com.android.tools.r8.shaking.ClassInlineRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ClassInlineRule$1):18:18 -> <init>
+    2:2:void <init>():21:21 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():18:18 -> build
+    2:4:com.android.tools.r8.shaking.ClassInlineRule build():38:40 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():18:18 -> self
+    1:1:com.android.tools.r8.shaking.ClassInlineRule$Builder setType(com.android.tools.r8.shaking.ClassInlineRule$Type):32:32 -> setType
+com.android.tools.r8.shaking.ClassInlineRule$Type -> com.android.tools.r8.shaking.ClassInlineRule$Type:
+    1:2:void <clinit>():14:15 -> <clinit>
+    3:3:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>(java.lang.String,int):13:13 -> <init>
+    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type valueOf(java.lang.String):13:13 -> valueOf
+    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type[] values():13:13 -> values
+com.android.tools.r8.shaking.ClassMergingRule -> com.android.tools.r8.shaking.ClassMergingRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.shaking.ClassMergingRule$1):11:11 -> <init>
+    2:5:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassMergingRule$Type):60:63 -> <init>
+    1:1:com.android.tools.r8.shaking.ClassMergingRule$Builder builder():67:67 -> builder
+    1:1:com.android.tools.r8.shaking.ClassMergingRule$Type getType():71:71 -> getType
+    1:5:java.lang.String typeString():76:80 -> typeString
+com.android.tools.r8.shaking.ClassMergingRule$1 -> com.android.tools.r8.shaking.ClassMergingRule$1:
+    1:1:void <clinit>():76:76 -> <clinit>
+com.android.tools.r8.shaking.ClassMergingRule$Builder -> com.android.tools.r8.shaking.ClassMergingRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ClassMergingRule$1):17:17 -> <init>
+    2:2:void <init>():20:20 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():17:17 -> build
+    2:2:com.android.tools.r8.shaking.ClassMergingRule build():37:37 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():17:17 -> self
+    1:1:com.android.tools.r8.shaking.ClassMergingRule$Builder setType(com.android.tools.r8.shaking.ClassMergingRule$Type):31:31 -> setType
+com.android.tools.r8.shaking.ClassMergingRule$Type -> com.android.tools.r8.shaking.ClassMergingRule$Type:
+    1:1:void <clinit>():14:14 -> <clinit>
+    2:2:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>(java.lang.String,int):13:13 -> <init>
+    1:1:com.android.tools.r8.shaking.ClassMergingRule$Type valueOf(java.lang.String):13:13 -> valueOf
+    1:1:com.android.tools.r8.shaking.ClassMergingRule$Type[] values():13:13 -> values
+com.android.tools.r8.shaking.CollectingGraphConsumer -> com.android.tools.r8.shaking.CollectingGraphConsumer:
+    1:1:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):23:23 -> <init>
+    2:5:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):21:24 -> <init>
+    1:6:void acceptEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo):29:34 -> acceptEdge
+    1:1:java.util.Map getSourcesTargeting(com.android.tools.r8.experimental.graphinfo.GraphNode):43:43 -> getSourcesTargeting
+    1:1:java.util.Set getTargets():39:39 -> getTargets
+    1:1:java.util.Map lambda$acceptEdge$0(com.android.tools.r8.experimental.graphinfo.GraphNode):30:30 -> lambda$acceptEdge$0
+    1:1:java.util.Set lambda$acceptEdge$1(com.android.tools.r8.experimental.graphinfo.GraphNode):31:31 -> lambda$acceptEdge$1
+com.android.tools.r8.shaking.ConstantArgumentRule -> com.android.tools.r8.shaking.ConstantArgumentRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ConstantArgumentRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
+    1:1:com.android.tools.r8.shaking.ConstantArgumentRule$Builder builder():74:74 -> builder
+com.android.tools.r8.shaking.ConstantArgumentRule$Builder -> com.android.tools.r8.shaking.ConstantArgumentRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ConstantArgumentRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:4:com.android.tools.r8.shaking.ConstantArgumentRule build():26:28 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.DefaultEnqueuerUseRegistry -> com.android.tools.r8.shaking.DefaultEnqueuerUseRegistry:
+    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer):25:27 -> <init>
+    1:1:com.android.tools.r8.graph.ProgramMethod getContext():31:31 -> getContext
+    1:1:com.android.tools.r8.graph.DexProgramClass getContextHolder():35:35 -> getContextHolder
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getContextMethod():39:39 -> getContextMethod
+    1:2:void registerCallSite(com.android.tools.r8.graph.DexCallSite):115:116 -> registerCallSite
+    1:1:boolean registerCheckCast(com.android.tools.r8.graph.DexType):99:99 -> registerCheckCast
+    1:1:boolean registerConstClass(com.android.tools.r8.graph.DexType):94:94 -> registerConstClass
+    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):74:74 -> registerInstanceFieldRead
+    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):69:69 -> registerInstanceFieldWrite
+    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):49:49 -> registerInvokeDirect
+    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):59:59 -> registerInvokeInterface
+    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):54:54 -> registerInvokeStatic
+    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):64:64 -> registerInvokeSuper
+    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):44:44 -> registerInvokeVirtual
+    1:2:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):109:110 -> registerMethodHandle
+    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):79:79 -> registerNewInstance
+    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):84:84 -> registerStaticFieldRead
+    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):89:89 -> registerStaticFieldWrite
+    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):104:104 -> registerTypeReference
+com.android.tools.r8.shaking.DefaultTreePrunerConfiguration -> com.android.tools.r8.shaking.DefaultTreePrunerConfiguration:
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:1:void <init>():14:14 -> <init>
+    1:1:com.android.tools.r8.shaking.DefaultTreePrunerConfiguration getInstance():17:17 -> getInstance
+    1:1:boolean isReachableOrReferencedField(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedField):22:22 -> isReachableOrReferencedField
+com.android.tools.r8.shaking.DelayedRootSetActionItem -> com.android.tools.r8.shaking.DelayedRootSetActionItem:
+    1:1:void <init>():10:10 -> <init>
+com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction -> com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction:
+    1:4:void <init>(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.graph.ProgramMethod,java.util.function.Consumer):26:29 -> <init>
+    1:1:java.util.function.Consumer getAction():41:41 -> getAction
+    1:1:com.android.tools.r8.graph.ProgramMethod getMethodToKeep():33:33 -> getMethodToKeep
+    1:1:com.android.tools.r8.graph.ProgramMethod getSingleTarget():37:37 -> getSingleTarget
+com.android.tools.r8.shaking.DexStringCache -> com.android.tools.r8.shaking.DexStringCache:
+    1:2:void <init>():9:10 -> <init>
+    1:1:java.lang.String lookupString(com.android.tools.r8.graph.DexString):13:13 -> lookupString
+com.android.tools.r8.shaking.DiscardedChecker -> com.android.tools.r8.shaking.DiscardedChecker:
+    1:3:void <init>(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.lang.Iterable):20:22 -> <init>
+    1:3:void checkItem(com.android.tools.r8.graph.DexDefinition,java.util.List):37:39 -> checkItem
+    1:1:void lambda$run$0(java.util.List,com.android.tools.r8.graph.DexEncodedMethod):30:30 -> lambda$run$0
+    1:1:void lambda$run$1(java.util.List,com.android.tools.r8.graph.DexEncodedField):31:31 -> lambda$run$1
+    1:6:java.util.List run():26:31 -> run
+com.android.tools.r8.shaking.Enqueuer -> com.android.tools.r8.shaking.Enqueuer:
+    1:1:void <clinit>():138:138 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.Enqueuer$Mode):342:342 -> <init>
+    2:2698:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.Enqueuer$Mode):166:2862 -> <init>
+    2699:2736:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.Enqueuer$Mode):343:380 -> <init>
+    1:1:com.android.tools.r8.graph.DexProgramClass access$1000(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType):138:138 -> access$1000
+    1:1:void access$1100(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):138:138 -> access$1100
+    1:1:void access$1200(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):138:138 -> access$1200
+    1:1:void access$1300(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):138:138 -> access$1300
+    1:1:void access$1400(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):138:138 -> access$1400
+    1:1:void access$500(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass):138:138 -> access$500
+    1:1:void access$600(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType):138:138 -> access$600
+    1:1:com.android.tools.r8.graph.AppView access$700(com.android.tools.r8.shaking.Enqueuer):138:138 -> access$700
+    1:1:void access$800(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):138:138 -> access$800
+    1:1:com.android.tools.r8.utils.InternalOptions access$900(com.android.tools.r8.shaking.Enqueuer):138:138 -> access$900
+    1:8:void addConsequentRootSet(com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet,boolean):2835:2842 -> addConsequentRootSet
+    1:3:void addImmediateSubtype(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):1253:1255 -> addImmediateSubtype
+    4:8:void addImmediateSubtype(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):1254:1258 -> addImmediateSubtype
+    1:1:java.util.function.Function classReferencedFromReporter(com.android.tools.r8.graph.DexEncodedMethod):1168:1168 -> classReferencedFromReporter
+    1:4:void compatEnqueueHolderIfDependentNonStaticMember(com.android.tools.r8.graph.DexClass,java.util.Set):556:559 -> compatEnqueueHolderIfDependentNonStaticMember
+    1:5:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet computeDelayedInterfaceMethodSyntheticBridges():2852:2856 -> computeDelayedInterfaceMethodSyntheticBridges
+    6:10:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet computeDelayedInterfaceMethodSyntheticBridges():2855:2859 -> computeDelayedInterfaceMethodSyntheticBridges
+    1:10:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2428:2437 -> createAppInfo
+    11:96:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2436:2521 -> createAppInfo
+    97:100:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2520:2523 -> createAppInfo
+    1:5:com.android.tools.r8.shaking.EnqueuerUseRegistryFactory createUseRegistryFactory():393:397 -> createUseRegistryFactory
+    1:1:void enqueueDependentItem(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexDefinition,java.util.Set):1389:1389 -> enqueueDependentItem
+    1:11:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):528:538 -> enqueueFirstNonSerializableClassInitializer
+    12:12:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():733:733 -> enqueueFirstNonSerializableClassInitializer
+    12:12:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):539 -> enqueueFirstNonSerializableClassInitializer
+    13:13:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):539:539 -> enqueueFirstNonSerializableClassInitializer
+    1:3:boolean enqueueMarkMethodLiveAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):546:548 -> enqueueMarkMethodLiveAction
+    1:1:void enqueueRootItem(java.util.Map$Entry):454:454 -> enqueueRootItem
+    2:2:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):190:190 -> enqueueRootItem
+    2:2:void enqueueRootItem(java.util.Map$Entry):454 -> enqueueRootItem
+    3:3:void enqueueRootItem(java.util.Map$Entry):456:456 -> enqueueRootItem
+    4:4:void enqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set):464:464 -> enqueueRootItem
+    1:1:void enqueueRootItems(java.util.Map):450:450 -> enqueueRootItems
+    1:13:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1555:1567 -> ensureFromLibraryOrThrow
+    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> ensureFromLibraryOrThrow
+    14:14:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1567 -> ensureFromLibraryOrThrow
+    15:26:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1568:1579 -> ensureFromLibraryOrThrow
+    1:4:void ensureMethodsContinueToWidenAccess(com.android.tools.r8.graph.DexClass):1342:1345 -> ensureMethodsContinueToWidenAccess
+    5:9:void ensureMethodsContinueToWidenAccess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.KeepReason):1350:1354 -> ensureMethodsContinueToWidenAccess
+    1:4:void finalizeLibraryMethodOverrideInformation():2407:2410 -> finalizeLibraryMethodOverrideInformation
+    1:33:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget findAndMarkResolutionTarget(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason):2248:2280 -> findAndMarkResolutionTarget
+    1:5:com.android.tools.r8.graph.DexMethod generatedEnumValuesMethod(com.android.tools.r8.graph.DexClass):2297:2301 -> generatedEnumValuesMethod
+    6:11:com.android.tools.r8.graph.DexMethod generatedEnumValuesMethod(com.android.tools.r8.graph.DexClass):2300:2305 -> generatedEnumValuesMethod
+    1:1:com.android.tools.r8.shaking.GraphReporter getGraphReporter():389:389 -> getGraphReporter
+    1:1:java.util.Set getImmediateLiveSubtypes(com.android.tools.r8.graph.DexProgramClass):1262:1262 -> getImmediateLiveSubtypes
+    1:1:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1179:1179 -> getInvokeSuperTarget
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> getInvokeSuperTarget
+    2:2:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1179 -> getInvokeSuperTarget
+    3:6:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1180:1183 -> getInvokeSuperTarget
+    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> getInvokeSuperTarget
+    7:7:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1183 -> getInvokeSuperTarget
+    8:13:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1184:1189 -> getInvokeSuperTarget
+    1:1:com.android.tools.r8.shaking.Enqueuer$Mode getMode():385:385 -> getMode
+    1:3:long getNumberOfLiveItems():2827:2829 -> getNumberOfLiveItems
+    1:1:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):419:419 -> getProgramClassOrNull
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> getProgramClassOrNull
+    2:2:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):419 -> getProgramClassOrNull
+    3:13:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):421:431 -> getProgramClassOrNull
+    1:1:com.android.tools.r8.shaking.EnqueuerUseRegistryFactory getUseRegistryFactory():401:401 -> getUseRegistryFactory
+    1:21:void handleInterfaceMethodSyntheticBridgeAction(com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction,com.android.tools.r8.shaking.RootSetBuilder):2866:2886 -> handleInterfaceMethodSyntheticBridgeAction
+    22:28:void handleInterfaceMethodSyntheticBridgeAction(com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction,com.android.tools.r8.shaking.RootSetBuilder):2882:2888 -> handleInterfaceMethodSyntheticBridgeAction
+    29:33:void handleInterfaceMethodSyntheticBridgeAction(com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction,com.android.tools.r8.shaking.RootSetBuilder):2887:2891 -> handleInterfaceMethodSyntheticBridgeAction
+    1:33:void handleInvokeOfDirectTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1518:1550 -> handleInvokeOfDirectTarget
+    1:15:void handleInvokeOfStaticTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1460:1474 -> handleInvokeOfStaticTarget
+    1:8:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3188:3195 -> handleJavaLangClassNewInstance
+    9:17:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3194:3202 -> handleJavaLangClassNewInstance
+    18:18:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():733:733 -> handleJavaLangClassNewInstance
+    18:18:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3206 -> handleJavaLangClassNewInstance
+    19:22:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3208:3211 -> handleJavaLangClassNewInstance
+    1:6:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3363:3368 -> handleJavaLangEnumValueOf
+    1:21:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3218:3238 -> handleJavaLangReflectConstructorNewInstance
+    22:48:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3237:3263 -> handleJavaLangReflectConstructorNewInstance
+    49:49:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():733:733 -> handleJavaLangReflectConstructorNewInstance
+    49:49:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3265 -> handleJavaLangReflectConstructorNewInstance
+    50:94:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3267:3311 -> handleJavaLangReflectConstructorNewInstance
+    1:32:void handleJavaLangReflectProxyNewProxyInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3321:3352 -> handleJavaLangReflectProxyNewProxyInstance
+    1:7:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):3079:3085 -> handleReflectiveBehavior
+    8:42:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3090:3124 -> handleReflectiveBehavior
+    43:43:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> handleReflectiveBehavior
+    43:43:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3128 -> handleReflectiveBehavior
+    44:48:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3128:3132 -> handleReflectiveBehavior
+    49:51:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3131:3133 -> handleReflectiveBehavior
+    52:52:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():733:733 -> handleReflectiveBehavior
+    52:52:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3134 -> handleReflectiveBehavior
+    53:55:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3135:3137 -> handleReflectiveBehavior
+    56:73:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3129:3146 -> handleReflectiveBehavior
+    74:74:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):195:195 -> handleReflectiveBehavior
+    74:74:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3146 -> handleReflectiveBehavior
+    75:80:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3155:3160 -> handleReflectiveBehavior
+    81:94:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3159:3172 -> handleReflectiveBehavior
+    95:95:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> handleReflectiveBehavior
+    95:95:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3172 -> handleReflectiveBehavior
+    96:101:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3176:3181 -> handleReflectiveBehavior
+    102:103:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):3178:3179 -> handleReflectiveBehavior
+    1:13:void handleServiceInstantiation(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):3407:3419 -> handleServiceInstantiation
+    1:19:void handleServiceLoaderInvocation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3374:3392 -> handleServiceLoaderInvocation
+    20:36:void handleServiceLoaderInvocation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):3385:3401 -> handleServiceLoaderInvocation
+    1:3:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):469:471 -> internalEnqueueRootItem
+    4:4:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> internalEnqueueRootItem
+    4:4:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):472 -> internalEnqueueRootItem
+    5:10:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):473:478 -> internalEnqueueRootItem
+    11:11:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():733:733 -> internalEnqueueRootItem
+    11:11:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):479 -> internalEnqueueRootItem
+    12:16:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):480:484 -> internalEnqueueRootItem
+    17:22:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):481:486 -> internalEnqueueRootItem
+    23:23:boolean com.android.tools.r8.graph.DexClass.isExternalizable(com.android.tools.r8.graph.AppView):773:773 -> internalEnqueueRootItem
+    23:23:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):486 -> internalEnqueueRootItem
+    24:35:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):487:498 -> internalEnqueueRootItem
+    36:48:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):495:507 -> internalEnqueueRootItem
+    49:57:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):504:512 -> internalEnqueueRootItem
+    58:58:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):510:510 -> internalEnqueueRootItem
+    1:1:boolean isFieldLive(com.android.tools.r8.graph.DexEncodedField):2034:2034 -> isFieldLive
+    1:2:boolean isFieldRead(com.android.tools.r8.graph.DexEncodedField):2038:2039 -> isFieldRead
+    1:2:boolean isFieldWrittenInMethodSatisfying(com.android.tools.r8.graph.DexEncodedField,java.util.function.Predicate):2044:2045 -> isFieldWrittenInMethodSatisfying
+    1:5:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):2049:2053 -> isFieldWrittenOutsideDefaultConstructor
+    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> isFieldWrittenOutsideDefaultConstructor
+    6:6:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):2053 -> isFieldWrittenOutsideDefaultConstructor
+    7:740:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():0:733 -> isFieldWrittenOutsideDefaultConstructor
+    7:740:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):2054 -> isFieldWrittenOutsideDefaultConstructor
+    741:742:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):2056:2057 -> isFieldWrittenOutsideDefaultConstructor
+    1:1:boolean isInstantiatedOrHasInstantiatedSubtype(com.android.tools.r8.graph.DexProgramClass):2061:2061 -> isInstantiatedOrHasInstantiatedSubtype
+    1:1:boolean isProgramClass(com.android.tools.r8.graph.DexType):415:415 -> isProgramClass
+    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap joinIdentifierNameStrings(java.util.Set,java.util.Set):2727:2732 -> joinIdentifierNameStrings
+    1:1:void lambda$addConsequentRootSet$48(com.android.tools.r8.graph.DexReference,java.util.Map):2839:2839 -> lambda$addConsequentRootSet$48
+    1:1:void lambda$addConsequentRootSet$49(com.android.tools.r8.graph.DexType,java.util.Set):2844:2844 -> lambda$addConsequentRootSet$49
+    2:2:boolean com.android.tools.r8.graph.DexType.isDexType():0:0 -> lambda$addConsequentRootSet$49
+    2:2:void lambda$addConsequentRootSet$49(com.android.tools.r8.graph.DexType,java.util.Set):2844 -> lambda$addConsequentRootSet$49
+    3:3:void lambda$addConsequentRootSet$49(com.android.tools.r8.graph.DexType,java.util.Set):2845:2845 -> lambda$addConsequentRootSet$49
+    4:4:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexType.asDexType():0:0 -> lambda$addConsequentRootSet$49
+    4:4:void lambda$addConsequentRootSet$49(com.android.tools.r8.graph.DexType,java.util.Set):2845 -> lambda$addConsequentRootSet$49
+    5:5:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> lambda$addConsequentRootSet$49
+    5:5:void lambda$addConsequentRootSet$49(com.android.tools.r8.graph.DexType,java.util.Set):2845 -> lambda$addConsequentRootSet$49
+    6:6:void lambda$addConsequentRootSet$49(com.android.tools.r8.graph.DexType,java.util.Set):2846:2846 -> lambda$addConsequentRootSet$49
+    1:1:java.util.Set lambda$addImmediateSubtype$20(com.android.tools.r8.graph.DexProgramClass):1257:1257 -> lambda$addImmediateSubtype$20
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$classReferencedFromReporter$16(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1168:1168 -> lambda$classReferencedFromReporter$16
+    1:1:boolean lambda$createAppInfo$41(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):2429:2429 -> lambda$createAppInfo$41
+    1:11:void lambda$createAppInfo$42(com.android.tools.r8.graph.DexReference):2446:2456 -> lambda$createAppInfo$42
+    1:1:com.android.tools.r8.shaking.EnqueuerUseRegistryFactory lambda$createUseRegistryFactory$0(com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):395:395 -> lambda$createUseRegistryFactory$0
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$ensureMethodsContinueToWidenAccess$24(com.android.tools.r8.graph.DexType):1344:1344 -> lambda$ensureMethodsContinueToWidenAccess$24
+    1:4:void lambda$markFailedResolutionTargets$39(com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedMethod):2288:2291 -> lambda$markFailedResolutionTargets$39
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markFieldAsTargeted$29(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1907:1907 -> lambda$markFieldAsTargeted$29
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markFieldAsTargeted$30(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1908:1908 -> lambda$markFieldAsTargeted$30
+    1:1:void com.android.tools.r8.graph.analysis.EnqueuerAnalysis.processNewlyLiveField(com.android.tools.r8.graph.DexEncodedField):0:0 -> lambda$markInstanceFieldAsLive$34
+    1:1:void lambda$markInstanceFieldAsLive$34(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1965 -> lambda$markInstanceFieldAsLive$34
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markInstanceFieldAsReachable$35(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):2072:2072 -> lambda$markInstanceFieldAsReachable$35
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markInstanceFieldAsReachable$36(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):2074:2074 -> lambda$markInstanceFieldAsReachable$36
+    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason lambda$markInstanceFieldAsReachable$37(com.android.tools.r8.graph.DexProgramClass):2093:2093 -> lambda$markInstanceFieldAsReachable$37
+    1:1:java.util.Set lambda$markInterfaceTypeAsLiveViaInheritanceClause$25(com.android.tools.r8.graph.DexProgramClass):1381:1381 -> lambda$markInterfaceTypeAsLiveViaInheritanceClause$25
+    1:1:void lambda$markMethodAsLive$50(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):3023:3023 -> lambda$markMethodAsLive$50
+    1:1:void lambda$markMethodAsLive$51(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):3030:3030 -> lambda$markMethodAsLive$51
+    1:1:void lambda$markMethodAsTargeted$27(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):1613:1613 -> lambda$markMethodAsTargeted$27
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markParameterAndReturnTypesAsLive$53(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):3043:3043 -> lambda$markParameterAndReturnTypesAsLive$53
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markParameterAndReturnTypesAsLive$54(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):3047:3047 -> lambda$markParameterAndReturnTypesAsLive$54
+    1:1:com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet lambda$markPossibleTargetsAsReachable$38(com.android.tools.r8.graph.DexProgramClass):2203:2203 -> lambda$markPossibleTargetsAsReachable$38
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markReferencedTypesAsLive$52(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):3035:3035 -> lambda$markReferencedTypesAsLive$52
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markStaticFieldAsLive$31(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1915:1915 -> lambda$markStaticFieldAsLive$31
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markStaticFieldAsLive$32(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1917:1917 -> lambda$markStaticFieldAsLive$32
+    1:1:void com.android.tools.r8.graph.analysis.EnqueuerAnalysis.processNewlyLiveField(com.android.tools.r8.graph.DexEncodedField):0:0 -> lambda$markStaticFieldAsLive$33
+    1:1:void lambda$markStaticFieldAsLive$33(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1946 -> lambda$markStaticFieldAsLive$33
+    1:1:java.util.Set lambda$markSuperMethodAsReachable$40(com.android.tools.r8.graph.DexEncodedMethod):2349:2349 -> lambda$markSuperMethodAsReachable$40
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$17(com.android.tools.r8.graph.DexType):1222:1222 -> lambda$markTypeAsLive$17
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$18(com.android.tools.r8.graph.DexType):1241:1241 -> lambda$markTypeAsLive$18
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$19(com.android.tools.r8.graph.DexType):1248:1248 -> lambda$markTypeAsLive$19
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$21(com.android.tools.r8.graph.DexType):1291:1291 -> lambda$markTypeAsLive$21
+    1:1:boolean lambda$markTypeAsLive$22(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):1331:1331 -> lambda$markTypeAsLive$22
+    1:1:void lambda$markTypeAsLive$23(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):1332:1332 -> lambda$markTypeAsLive$23
+    1:2:void lambda$postProcessLambdaDesugaring$45(com.android.tools.r8.graph.DexEncodedField,java.util.Set):2636:2637 -> lambda$postProcessLambdaDesugaring$45
+    1:1:void lambda$postProcessLibraryConversionWrappers$43(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):2601:2601 -> lambda$postProcessLibraryConversionWrappers$43
+    1:1:void lambda$postProcessLibraryConversionWrappers$44(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):2602:2602 -> lambda$postProcessLibraryConversionWrappers$44
+    1:1:java.util.Set lambda$processAnnotation$26(com.android.tools.r8.graph.DexType):1421:1421 -> lambda$processAnnotation$26
+    1:1:void lambda$processNewlyInstantiatedClass$28(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1644:1644 -> lambda$processNewlyInstantiatedClass$28
+    1:1:boolean lambda$registerDeferredActionForDeadProtoBuilder$6(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.utils.Action):827:827 -> lambda$registerDeferredActionForDeadProtoBuilder$6
+    1:1:java.lang.Boolean lambda$registerDeferredActionForDeadProtoBuilder$7(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Action,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker):826:826 -> lambda$registerDeferredActionForDeadProtoBuilder$7
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$registerMethodWithTargetAndContext$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):571:571 -> lambda$registerMethodWithTargetAndContext$2
+    1:1:java.util.Set lambda$registerMethodWithTargetAndContext$3(com.android.tools.r8.graph.DexMethod):572:572 -> lambda$registerMethodWithTargetAndContext$3
+    1:1:java.util.Set lambda$trace$46(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):2757:2757 -> lambda$trace$46
+    1:1:void lambda$trace$47(com.android.tools.r8.graph.analysis.EnqueuerAnalysis):2791:2791 -> lambda$trace$47
+    1:1:java.util.Map lambda$traceCallSite$4(com.android.tools.r8.graph.DexEncodedMethod):671:671 -> lambda$traceCallSite$4
+    1:1:void lambda$traceInvokeDirect$5(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):809:809 -> lambda$traceInvokeDirect$5
+    1:1:void lambda$traceInvokeDirect$8(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.graph.analysis.EnqueuerInvokeAnalysis):848:848 -> lambda$traceInvokeDirect$8
+    1:1:void lambda$traceInvokeInterface$9(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.graph.analysis.EnqueuerInvokeAnalysis):871:871 -> lambda$traceInvokeInterface$9
+    1:1:void lambda$traceInvokeStatic$10(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.graph.analysis.EnqueuerInvokeAnalysis):913:913 -> lambda$traceInvokeStatic$10
+    1:1:void lambda$traceInvokeSuper$11(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.graph.analysis.EnqueuerInvokeAnalysis):929:929 -> lambda$traceInvokeSuper$11
+    1:1:void lambda$traceInvokeVirtual$12(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.graph.analysis.EnqueuerInvokeAnalysis):960:960 -> lambda$traceInvokeVirtual$12
+    1:1:void lambda$traceNewInstance$13(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):968:968 -> lambda$traceNewInstance$13
+    1:1:java.lang.Boolean lambda$traceStaticFieldRead$14(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):1104:1104 -> lambda$traceStaticFieldRead$14
+    1:1:java.lang.Boolean lambda$traceStaticFieldWrite$15(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):1148:1148 -> lambda$traceStaticFieldWrite$15
+    1:1:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> markClassAsInstantiatedWithCompatRule
+    1:1:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):3059 -> markClassAsInstantiatedWithCompatRule
+    2:7:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):3060:3065 -> markClassAsInstantiatedWithCompatRule
+    8:8:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():733:733 -> markClassAsInstantiatedWithCompatRule
+    8:8:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):3066 -> markClassAsInstantiatedWithCompatRule
+    9:12:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):3067:3067 -> markClassAsInstantiatedWithCompatRule
+    1:3:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):3051:3053 -> markClassAsInstantiatedWithReason
+    4:4:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():733:733 -> markClassAsInstantiatedWithReason
+    4:4:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):3053 -> markClassAsInstantiatedWithReason
+    5:5:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):3053:3053 -> markClassAsInstantiatedWithReason
+    1:1:void markDirectAndIndirectClassInitializersAsLive(com.android.tools.r8.graph.DexProgramClass):1479:1479 -> markDirectAndIndirectClassInitializersAsLive
+    2:3:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> markDirectAndIndirectClassInitializersAsLive
+    2:3:void markDirectAndIndirectClassInitializersAsLive(com.android.tools.r8.graph.DexProgramClass):1480 -> markDirectAndIndirectClassInitializersAsLive
+    4:16:void markDirectAndIndirectClassInitializersAsLive(com.android.tools.r8.graph.DexProgramClass):1481:1493 -> markDirectAndIndirectClassInitializersAsLive
+    1:7:boolean markDirectClassInitializerAsLive(com.android.tools.r8.graph.DexProgramClass):1501:1507 -> markDirectClassInitializerAsLive
+    1:13:void markDirectStaticOrConstructorMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2003:2015 -> markDirectStaticOrConstructorMethodAsLive
+    14:14:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markDirectStaticOrConstructorMethodAsLive
+    14:14:void markDirectStaticOrConstructorMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2014 -> markDirectStaticOrConstructorMethodAsLive
+    1:7:void markEnumValuesAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2309:2315 -> markEnumValuesAsReachable
+    1:2:void markFailedResolutionTargets(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult,com.android.tools.r8.shaking.KeepReason):2285:2286 -> markFailedResolutionTargets
+    1:5:void markFieldAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):2940:2944 -> markFieldAsKept
+    1:2:void markFieldAsTargeted(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1907:1908 -> markFieldAsTargeted
+    1:6:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1951:1956 -> markInstanceFieldAsLive
+    7:7:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markInstanceFieldAsLive
+    7:7:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1956 -> markInstanceFieldAsLive
+    8:15:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1958:1965 -> markInstanceFieldAsLive
+    1:3:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):2066:2068 -> markInstanceFieldAsReachable
+    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markInstanceFieldAsReachable
+    4:4:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):2068 -> markInstanceFieldAsReachable
+    5:28:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):2071:2094 -> markInstanceFieldAsReachable
+    1:1:void markInterfaceAsInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):516:516 -> markInterfaceAsInstantiated
+    2:2:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> markInterfaceAsInstantiated
+    2:2:void markInterfaceAsInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):516 -> markInterfaceAsInstantiated
+    3:10:void markInterfaceAsInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):516:523 -> markInterfaceAsInstantiated
+    1:22:void markInterfaceTypeAsLiveViaInheritanceClause(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):1361:1382 -> markInterfaceTypeAsLiveViaInheritanceClause
+    23:23:void markInterfaceTypeAsLiveViaInheritanceClause(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):1369:1369 -> markInterfaceTypeAsLiveViaInheritanceClause
+    1:1:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1969:1969 -> markLambdaInstantiated
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> markLambdaInstantiated
+    2:2:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1969 -> markLambdaInstantiated
+    3:28:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1971:1996 -> markLambdaInstantiated
+    1:2:void markLibraryAndClasspathMethodOverridesAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):1768:1769 -> markLibraryAndClasspathMethodOverridesAsLive
+    3:3:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> markLibraryAndClasspathMethodOverridesAsLive
+    3:3:void markLibraryAndClasspathMethodOverridesAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):1769 -> markLibraryAndClasspathMethodOverridesAsLive
+    4:26:void markLibraryAndClasspathMethodOverridesAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):1769:1791 -> markLibraryAndClasspathMethodOverridesAsLive
+    1:23:void markMethodAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2906:2928 -> markMethodAsKept
+    24:33:void markMethodAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2925:2934 -> markMethodAsKept
+    1:16:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2993:3008 -> markMethodAsLive
+    17:17:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markMethodAsLive
+    17:17:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3008 -> markMethodAsLive
+    18:22:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3010:3014 -> markMethodAsLive
+    23:26:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3013:3016 -> markMethodAsLive
+    27:42:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3015:3030 -> markMethodAsLive
+    1:1:void markMethodAsLiveWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):3075:3075 -> markMethodAsLiveWithCompatRule
+    1:12:void markMethodAsTargeted(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1605:1616 -> markMethodAsTargeted
+    13:13:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markMethodAsTargeted
+    13:13:void markMethodAsTargeted(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1616 -> markMethodAsTargeted
+    14:18:void markMethodAsTargeted(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1618:1622 -> markMethodAsTargeted
+    1:1:void markNonStaticDirectMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1514:1514 -> markNonStaticDirectMethodAsReachable
+    1:2:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> markOverridesAsLibraryMethodOverrides
+    1:2:void markOverridesAsLibraryMethodOverrides(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):1811 -> markOverridesAsLibraryMethodOverrides
+    3:17:void markOverridesAsLibraryMethodOverrides(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):1812:1826 -> markOverridesAsLibraryMethodOverrides
+    1:5:void markParameterAndReturnTypesAsLive(com.android.tools.r8.graph.DexEncodedMethod):3041:3045 -> markParameterAndReturnTypesAsLive
+    1:2:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2195:2196 -> markPossibleTargetsAsReachable
+    3:3:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():291:291 -> markPossibleTargetsAsReachable
+    3:3:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2196 -> markPossibleTargetsAsReachable
+    4:49:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2196:2241 -> markPossibleTargetsAsReachable
+    50:54:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2235:2235 -> markPossibleTargetsAsReachable
+    55:59:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2218:2218 -> markPossibleTargetsAsReachable
+    1:3:void markReferencedTypesAsLive(com.android.tools.r8.graph.DexEncodedMethod):3034:3036 -> markReferencedTypesAsLive
+    1:7:void markResolutionAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.ResolutionResult):1798:1804 -> markResolutionAsLive
+    8:8:void markResolutionAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.ResolutionResult):1803:1803 -> markResolutionAsLive
+    1:19:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1913:1931 -> markStaticFieldAsLive
+    20:20:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markStaticFieldAsLive
+    20:20:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1931 -> markStaticFieldAsLive
+    21:22:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1934:1935 -> markStaticFieldAsLive
+    23:23:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markStaticFieldAsLive
+    23:23:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1935 -> markStaticFieldAsLive
+    24:31:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1939:1946 -> markStaticFieldAsLive
+    1:9:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2321:2329 -> markSuperMethodAsReachable
+    10:27:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2328:2345 -> markSuperMethodAsReachable
+    28:28:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markSuperMethodAsReachable
+    28:28:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2345 -> markSuperMethodAsReachable
+    29:34:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2348:2353 -> markSuperMethodAsReachable
+    1:16:void markTypeAsLive(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1208:1223 -> markTypeAsLive
+    17:17:void markTypeAsLive(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1220:1220 -> markTypeAsLive
+    18:33:void markTypeAsLive(com.android.tools.r8.graph.DexType,java.util.function.Function):1227:1242 -> markTypeAsLive
+    34:34:void markTypeAsLive(com.android.tools.r8.graph.DexType,java.util.function.Function):1239:1239 -> markTypeAsLive
+    35:38:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1246:1246 -> markTypeAsLive
+    39:51:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1267:1279 -> markTypeAsLive
+    52:52:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markTypeAsLive
+    52:52:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1279 -> markTypeAsLive
+    53:96:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1282:1325 -> markTypeAsLive
+    97:97:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> markTypeAsLive
+    97:97:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1328 -> markTypeAsLive
+    98:106:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1329:1337 -> markTypeAsLive
+    107:107:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> markTypeAsLive
+    107:107:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1338 -> markTypeAsLive
+    108:108:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1338:1338 -> markTypeAsLive
+    109:109:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1337:1337 -> markTypeAsLive
+    1:5:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2021:2025 -> markVirtualMethodAsLive
+    6:11:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2023:2028 -> markVirtualMethodAsLive
+    12:12:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markVirtualMethodAsLive
+    12:12:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2028 -> markVirtualMethodAsLive
+    1:34:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2114:2147 -> markVirtualMethodAsReachable
+    35:35:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markVirtualMethodAsReachable
+    35:35:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2147 -> markVirtualMethodAsReachable
+    36:40:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2151:2155 -> markVirtualMethodAsReachable
+    41:71:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2154:2184 -> markVirtualMethodAsReachable
+    72:72:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():291:291 -> markVirtualMethodAsReachable
+    72:72:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2185 -> markVirtualMethodAsReachable
+    73:73:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2188:2188 -> markVirtualMethodAsReachable
+    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason newSetWithoutReasonReporter():446:446 -> newSetWithoutReasonReporter
+    1:13:void populateInstantiatedTypesCache(com.android.tools.r8.graph.DexProgramClass):1670:1682 -> populateInstantiatedTypesCache
+    1:16:void postProcessLambdaDesugaring(com.android.tools.r8.graph.DirectMappedDexApplication$Builder):2613:2628 -> postProcessLambdaDesugaring
+    17:25:void postProcessLambdaDesugaring(com.android.tools.r8.graph.DirectMappedDexApplication$Builder):2624:2632 -> postProcessLambdaDesugaring
+    26:135:java.util.Map com.android.tools.r8.ir.desugar.LambdaRewriter.getWritesWithContexts(com.android.tools.r8.graph.DexProgramClass):0:109 -> postProcessLambdaDesugaring
+    26:135:void postProcessLambdaDesugaring(com.android.tools.r8.graph.DirectMappedDexApplication$Builder):2633 -> postProcessLambdaDesugaring
+    136:163:void postProcessLambdaDesugaring(com.android.tools.r8.graph.DirectMappedDexApplication$Builder):2634:2661 -> postProcessLambdaDesugaring
+    1:22:void postProcessLibraryConversionWrappers(com.android.tools.r8.graph.DirectMappedDexApplication$Builder):2568:2589 -> postProcessLibraryConversionWrappers
+    23:47:void postProcessLibraryConversionWrappers(com.android.tools.r8.graph.DirectMappedDexApplication$Builder):2585:2609 -> postProcessLibraryConversionWrappers
+    1:3:void processAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1410:1410 -> processAnnotation
+    5:5:void processAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1412:1412 -> processAnnotation
+    6:6:boolean com.android.tools.r8.graph.DexClass.isDexClass():0:0 -> processAnnotation
+    6:6:void processAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1412 -> processAnnotation
+    7:9:void processAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1413:1415 -> processAnnotation
+    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> processAnnotation
+    10:10:void processAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1415 -> processAnnotation
+    11:24:void processAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1416:1429 -> processAnnotation
+    1:1:void processAnnotations(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition):1393:1393 -> processAnnotations
+    2:2:void processAnnotations(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotationSet):1398:1398 -> processAnnotations
+    3:4:void processAnnotations(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation[]):1403:1404 -> processAnnotations
+    1:1:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):1637:1637 -> processNewlyInstantiatedClass
+    2:2:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> processNewlyInstantiatedClass
+    2:2:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):1637 -> processNewlyInstantiatedClass
+    3:20:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):1637:1654 -> processNewlyInstantiatedClass
+    21:21:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> processNewlyInstantiatedClass
+    21:21:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):1654 -> processNewlyInstantiatedClass
+    22:31:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):1657:1666 -> processNewlyInstantiatedClass
+    1:7:void recordTypeReference(com.android.tools.r8.graph.DexType):2103:2109 -> recordTypeReference
+    1:1:com.android.tools.r8.shaking.Enqueuer registerAnalysis(com.android.tools.r8.graph.analysis.EnqueuerAnalysis):405:405 -> registerAnalysis
+    1:7:boolean registerDeferredActionForDeadProtoBuilder(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Action):822:828 -> registerDeferredActionForDeadProtoBuilder
+    8:8:boolean registerDeferredActionForDeadProtoBuilder(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Action):824:824 -> registerDeferredActionForDeadProtoBuilder
+    1:32:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod,boolean,boolean):601:632 -> registerFieldAccess
+    1:1:boolean registerFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):578:578 -> registerFieldRead
+    1:1:boolean registerFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):586:586 -> registerFieldWrite
+    1:1:com.android.tools.r8.shaking.Enqueuer registerInvokeAnalysis(com.android.tools.r8.graph.analysis.EnqueuerInvokeAnalysis):410:410 -> registerInvokeAnalysis
+    1:4:boolean registerMethodWithTargetAndContext(java.util.Map,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):569:572 -> registerMethodWithTargetAndContext
+    1:2:boolean registerReflectiveFieldAccess(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):594:595 -> registerReflectiveFieldAccess
+    1:1:boolean registerReflectiveFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):582:582 -> registerReflectiveFieldRead
+    1:1:boolean registerReflectiveFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):590:590 -> registerReflectiveFieldWrite
+    1:3:void reportMissingClass(com.android.tools.r8.graph.DexType):1585:1587 -> reportMissingClass
+    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> reportMissingClass
+    4:4:void reportMissingClass(com.android.tools.r8.graph.DexType):1587 -> reportMissingClass
+    1:2:void reportMissingField(com.android.tools.r8.graph.DexField):1598:1599 -> reportMissingField
+    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> reportMissingField
+    3:3:void reportMissingField(com.android.tools.r8.graph.DexField):1599 -> reportMissingField
+    1:2:void reportMissingMethod(com.android.tools.r8.graph.DexMethod):1592:1593 -> reportMissingMethod
+    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> reportMissingMethod
+    3:3:void reportMissingMethod(com.android.tools.r8.graph.DexMethod):1593 -> reportMissingMethod
+    1:5:com.android.tools.r8.graph.DexEncodedField resolveField(com.android.tools.r8.graph.DexField):1434:1438 -> resolveField
+    1:9:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1446:1454 -> resolveMethod
+    1:46:void rewriteLambdaCallSites(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):2667:2712 -> rewriteLambdaCallSites
+    1:1:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2950:2950 -> shouldMarkLibraryMethodOverrideAsReachable
+    2:2:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():291:291 -> shouldMarkLibraryMethodOverrideAsReachable
+    2:2:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2952 -> shouldMarkLibraryMethodOverrideAsReachable
+    3:34:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2952:2983 -> shouldMarkLibraryMethodOverrideAsReachable
+    1:6:java.util.SortedSet toSortedDescriptorSet(java.util.Set):2717:2722 -> toSortedDescriptorSet
+    1:86:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2738:2823 -> trace
+    87:87:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2821:2821 -> trace
+    1:18:com.android.tools.r8.shaking.AppInfoWithLiveness traceApplication(com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.shaking.ProguardClassFilter,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2378:2395 -> traceApplication
+    19:40:com.android.tools.r8.shaking.AppInfoWithLiveness traceApplication(com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.shaking.ProguardClassFilter,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2382:2403 -> traceApplication
+    1:77:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):636:712 -> traceCallSite
+    78:78:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):709:709 -> traceCallSite
+    79:79:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):706:706 -> traceCallSite
+    80:80:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):703:703 -> traceCallSite
+    81:81:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):700:700 -> traceCallSite
+    82:117:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):697:732 -> traceCallSite
+    1:1:boolean traceCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):738:738 -> traceCheckCast
+    1:8:boolean traceConstClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):744:751 -> traceConstClass
+    1:10:boolean traceConstClassOrCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):755:764 -> traceConstClassOrCheckCast
+    11:11:boolean traceConstClassOrCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):763:763 -> traceConstClassOrCheckCast
+    1:19:boolean traceInstanceFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1007:1025 -> traceInstanceFieldRead
+    20:20:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInstanceFieldRead
+    20:20:boolean traceInstanceFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1025 -> traceInstanceFieldRead
+    21:29:boolean traceInstanceFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1030:1038 -> traceInstanceFieldRead
+    30:30:boolean traceInstanceFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1037:1037 -> traceInstanceFieldRead
+    1:19:boolean traceInstanceFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1043:1061 -> traceInstanceFieldWrite
+    20:20:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInstanceFieldWrite
+    20:20:boolean traceInstanceFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1061 -> traceInstanceFieldWrite
+    21:29:boolean traceInstanceFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1066:1074 -> traceInstanceFieldWrite
+    1:15:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):802:816 -> traceInvokeDirect
+    16:16:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):815:815 -> traceInvokeDirect
+    17:22:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):840:845 -> traceInvokeDirect
+    23:23:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeDirect
+    23:23:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):845 -> traceInvokeDirect
+    24:25:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):847:848 -> traceInvokeDirect
+    1:1:boolean traceInvokeDirectFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):835:835 -> traceInvokeDirectFromLambda
+    2:2:boolean traceInvokeDirectFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):834:834 -> traceInvokeDirectFromLambda
+    1:1:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):853:853 -> traceInvokeInterface
+    2:7:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):863:868 -> traceInvokeInterface
+    8:8:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeInterface
+    8:8:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):868 -> traceInvokeInterface
+    9:10:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):870:871 -> traceInvokeInterface
+    1:1:boolean traceInvokeInterfaceFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):858:858 -> traceInvokeInterfaceFromLambda
+    2:2:boolean traceInvokeInterfaceFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):857:857 -> traceInvokeInterfaceFromLambda
+    1:1:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):876:876 -> traceInvokeStatic
+    2:26:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):886:910 -> traceInvokeStatic
+    27:27:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeStatic
+    27:27:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):910 -> traceInvokeStatic
+    28:29:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):912:913 -> traceInvokeStatic
+    1:1:boolean traceInvokeStaticFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):881:881 -> traceInvokeStaticFromLambda
+    2:2:boolean traceInvokeStaticFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):880:880 -> traceInvokeStaticFromLambda
+    1:9:boolean traceInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):918:926 -> traceInvokeSuper
+    10:10:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeSuper
+    10:10:boolean traceInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):926 -> traceInvokeSuper
+    11:12:boolean traceInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):928:929 -> traceInvokeSuper
+    1:1:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):934:934 -> traceInvokeVirtual
+    2:9:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):944:951 -> traceInvokeVirtual
+    10:21:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):946:957 -> traceInvokeVirtual
+    22:22:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]) -> traceInvokeVirtual
+    22:22:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):957 -> traceInvokeVirtual
+    23:24:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):959:960 -> traceInvokeVirtual
+    1:1:boolean traceInvokeVirtualFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):939:939 -> traceInvokeVirtualFromLambda
+    2:2:boolean traceInvokeVirtualFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):938:938 -> traceInvokeVirtualFromLambda
+    1:8:java.util.Set traceMainDex(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2362:2369 -> traceMainDex
+    1:1:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> traceMethodHandle
+    1:1:void traceMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse,com.android.tools.r8.graph.DexEncodedMethod):779 -> traceMethodHandle
+    2:6:void traceMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse,com.android.tools.r8.graph.DexEncodedMethod):779:783 -> traceMethodHandle
+    7:7:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> traceMethodHandle
+    7:7:void traceMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse,com.android.tools.r8.graph.DexEncodedMethod):784 -> traceMethodHandle
+    8:12:void traceMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse,com.android.tools.r8.graph.DexEncodedMethod):785:789 -> traceMethodHandle
+    1:13:boolean traceNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):965:977 -> traceNewInstance
+    14:14:boolean traceNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):973:973 -> traceNewInstance
+    15:16:boolean traceNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):993:994 -> traceNewInstance
+    17:17:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> traceNewInstance
+    17:17:boolean traceNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):996 -> traceNewInstance
+    18:21:boolean traceNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):996:999 -> traceNewInstance
+    22:22:boolean traceNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):997:997 -> traceNewInstance
+    1:6:boolean traceNewInstanceFromLambda(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):981:981 -> traceNewInstanceFromLambda
+    1:18:boolean traceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1079:1096 -> traceStaticFieldRead
+    19:19:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceStaticFieldRead
+    19:19:boolean traceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1096 -> traceStaticFieldRead
+    20:27:boolean traceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1099:1106 -> traceStaticFieldRead
+    28:44:boolean traceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1102:1118 -> traceStaticFieldRead
+    1:18:boolean traceStaticFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1123:1140 -> traceStaticFieldWrite
+    19:19:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceStaticFieldWrite
+    19:19:boolean traceStaticFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1140 -> traceStaticFieldWrite
+    20:27:boolean traceStaticFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1143:1150 -> traceStaticFieldWrite
+    28:44:boolean traceStaticFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1146:1162 -> traceStaticFieldWrite
+    1:1:boolean traceTypeReference(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):797:797 -> traceTypeReference
+    1:8:void transitionDefaultMethodsForInstantiatedClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):1834:1841 -> transitionDefaultMethodsForInstantiatedClass
+    1:1:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1879:1879 -> transitionDependentItemsForInstantiatedClass
+    2:2:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> transitionDependentItemsForInstantiatedClass
+    2:2:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1879 -> transitionDependentItemsForInstantiatedClass
+    3:12:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1879:1888 -> transitionDependentItemsForInstantiatedClass
+    13:13:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> transitionDependentItemsForInstantiatedClass
+    13:13:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1888 -> transitionDependentItemsForInstantiatedClass
+    14:16:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1888:1890 -> transitionDependentItemsForInstantiatedClass
+    1:9:void transitionFieldsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1867:1875 -> transitionFieldsForInstantiatedClass
+    1:22:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1703:1724 -> transitionMethodsForInstantiatedClass
+    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> transitionMethodsForInstantiatedClass
+    23:23:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1724 -> transitionMethodsForInstantiatedClass
+    24:50:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1726:1752 -> transitionMethodsForInstantiatedClass
+    51:51:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> transitionMethodsForInstantiatedClass
+    51:51:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1752 -> transitionMethodsForInstantiatedClass
+    52:56:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1754:1758 -> transitionMethodsForInstantiatedClass
+    57:57:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> transitionMethodsForInstantiatedClass
+    57:57:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1758 -> transitionMethodsForInstantiatedClass
+    58:58:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1760:1760 -> transitionMethodsForInstantiatedClass
+    1:9:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1847:1855 -> transitionNonAbstractMethodsToLiveAndShadow
+    10:10:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1854:1854 -> transitionNonAbstractMethodsToLiveAndShadow
+    11:11:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1851:1851 -> transitionNonAbstractMethodsToLiveAndShadow
+    1:3:void transitionReachableVirtualMethods(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet):1172:1174 -> transitionReachableVirtualMethods
+    1:9:void transitionUnusedInterfaceToLive(com.android.tools.r8.graph.DexProgramClass):1894:1902 -> transitionUnusedInterfaceToLive
+    1:13:void traverseHierarchy(com.android.tools.r8.graph.DexClass,java.util.Set,java.util.Set):2531:2543 -> traverseHierarchy
+    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> traverseHierarchy
+    14:14:void traverseHierarchy(com.android.tools.r8.graph.DexClass,java.util.Set,java.util.Set):2543 -> traverseHierarchy
+    15:31:void traverseHierarchy(com.android.tools.r8.graph.DexClass,java.util.Set,java.util.Set):2547:2563 -> traverseHierarchy
+    1:7:void unpinLambdaMethods():2895:2901 -> unpinLambdaMethods
+    1:3:boolean verifyKeptGraph():2417:2419 -> verifyKeptGraph
+    1:2:boolean verifyMethodIsTargeted(com.android.tools.r8.graph.DexEncodedMethod):1197:1198 -> verifyMethodIsTargeted
+    1:1:boolean verifyTypeIsLive(com.android.tools.r8.graph.DexProgramClass):1203:1203 -> verifyTypeIsLive
+    1:5:void warnIfLibraryTypeInheritsFromProgramType(com.android.tools.r8.graph.DexLibraryClass):437:441 -> warnIfLibraryTypeInheritsFromProgramType
+com.android.tools.r8.shaking.Enqueuer$1 -> com.android.tools.r8.shaking.Enqueuer$1:
+    1:1:void <clinit>():695:695 -> <clinit>
+com.android.tools.r8.shaking.Enqueuer$AnnotationReferenceMarker -> com.android.tools.r8.shaking.Enqueuer$AnnotationReferenceMarker:
+    1:1:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.shaking.Enqueuer$1):3598:3598 -> <init>
+    2:5:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.KeepReason):3605:3608 -> <init>
+    1:3:boolean addField(com.android.tools.r8.graph.DexField):3618:3620 -> addField
+    4:4:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> addField
+    4:4:boolean addField(com.android.tools.r8.graph.DexField):3620 -> addField
+    5:15:boolean addField(com.android.tools.r8.graph.DexField):3624:3634 -> addField
+    16:16:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> addField
+    16:16:boolean addField(com.android.tools.r8.graph.DexField):3634 -> addField
+    17:29:boolean addField(com.android.tools.r8.graph.DexField):3634:3646 -> addField
+    1:14:boolean addMethod(com.android.tools.r8.graph.DexMethod):3655:3668 -> addMethod
+    15:22:boolean addMethod(com.android.tools.r8.graph.DexMethod):3667:3674 -> addMethod
+    1:2:boolean addType(com.android.tools.r8.graph.DexType):3704:3705 -> addType
+    1:1:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedDescriptor(com.android.tools.r8.graph.DexType):111:111 -> getRenamedDescriptor
+    1:1:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):0 -> getRenamedDescriptor
+    1:1:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedName(com.android.tools.r8.graph.DexMethod):103:103 -> getRenamedName
+    1:1:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):0 -> getRenamedName
+    2:2:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedName(com.android.tools.r8.graph.DexField):107:107 -> getRenamedName
+    2:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):0 -> getRenamedName
+com.android.tools.r8.shaking.Enqueuer$LiveMethodsSet -> com.android.tools.r8.shaking.Enqueuer$LiveMethodsSet:
+    1:1:void <init>(com.android.tools.r8.shaking.Enqueuer,java.util.function.BiConsumer):3461:3461 -> <init>
+    2:7:void <init>(com.android.tools.r8.shaking.Enqueuer,java.util.function.BiConsumer):3457:3462 -> <init>
+    1:1:java.util.Set access$300(com.android.tools.r8.shaking.Enqueuer$LiveMethodsSet):3455:3455 -> access$300
+    1:3:boolean add(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3466:3468 -> add
+    1:1:boolean contains(com.android.tools.r8.graph.DexEncodedMethod):3472:3472 -> contains
+    1:1:java.util.Set getItems():3476:3476 -> getItems
+com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget -> com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget:
+    1:3:void <clinit>():3504:3506 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):3515:3518 -> <init>
+    1:2:boolean equals(java.lang.Object):3534:3535 -> equals
+    1:1:int hashCode():3528:3528 -> hashCode
+    1:1:boolean isUnresolved():3522:3522 -> isUnresolved
+    1:1:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget unresolved():3512:3512 -> unresolved
+com.android.tools.r8.shaking.Enqueuer$Mode -> com.android.tools.r8.shaking.Enqueuer$Mode:
+    1:4:void <clinit>():141:144 -> <clinit>
+    5:5:void <clinit>():140:140 -> <clinit>
+    1:1:void <init>(java.lang.String,int):140:140 -> <init>
+    1:1:boolean isFinalTreeShaking():151:151 -> isFinalTreeShaking
+    1:1:boolean isInitialOrFinalTreeShaking():155:155 -> isInitialOrFinalTreeShaking
+    1:1:boolean isInitialTreeShaking():147:147 -> isInitialTreeShaking
+    1:1:boolean isTracingMainDex():159:159 -> isTracingMainDex
+    1:1:com.android.tools.r8.shaking.Enqueuer$Mode valueOf(java.lang.String):140:140 -> valueOf
+    1:1:com.android.tools.r8.shaking.Enqueuer$Mode[] values():140:140 -> values
+com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet -> com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet:
+    1:4:void <init>():3539:3542 -> <init>
+    5:5:void <init>(com.android.tools.r8.shaking.Enqueuer$1):3539:3539 -> <init>
+    1:8:boolean add(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):3553:3560 -> add
+    1:1:java.util.Set getMethods():3545:3545 -> getMethods
+    1:1:java.util.Set getReasons(com.android.tools.r8.graph.DexEncodedMethod):3549:3549 -> getReasons
+com.android.tools.r8.shaking.Enqueuer$SetWithReason -> com.android.tools.r8.shaking.Enqueuer$SetWithReason:
+    1:1:void <init>(java.util.function.BiConsumer):3486:3486 -> <init>
+    2:7:void <init>(java.util.function.BiConsumer):3482:3487 -> <init>
+    1:1:java.util.Set access$400(com.android.tools.r8.shaking.Enqueuer$SetWithReason):3480:3480 -> access$400
+    1:2:boolean add(java.lang.Object,com.android.tools.r8.shaking.KeepReason):3491:3492 -> add
+    1:1:boolean contains(java.lang.Object):3496:3496 -> contains
+    1:1:java.util.Set getItems():3500:3500 -> getItems
+com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason -> com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason:
+    1:1:void <clinit>():3424:3424 -> <clinit>
+    1:4:void <init>():3424:3427 -> <init>
+    5:5:void <init>(com.android.tools.r8.shaking.Enqueuer$1):3424:3424 -> <init>
+    1:1:java.util.Set access$200(com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason):3424:3424 -> access$200
+    1:3:boolean add(java.lang.Object,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):3430:3432 -> add
+    1:1:boolean contains(java.lang.Object):3439:3439 -> contains
+    1:1:java.util.Set getItems():3451:3451 -> getItems
+    1:1:java.util.List lambda$registerDeferredAction$0(java.lang.Object):3444:3444 -> lambda$registerDeferredAction$0
+    1:2:boolean registerDeferredAction(java.lang.Object,com.android.tools.r8.utils.Action):3443:3444 -> registerDeferredAction
+com.android.tools.r8.shaking.Enqueuer$TargetWithContext -> com.android.tools.r8.shaking.Enqueuer$TargetWithContext:
+    1:3:void <init>(com.android.tools.r8.graph.DexMember,com.android.tools.r8.graph.DexEncodedMethod):3570:3572 -> <init>
+    1:5:boolean equals(java.lang.Object):3590:3594 -> equals
+    1:1:com.android.tools.r8.graph.DexEncodedMethod getContext():3580:3580 -> getContext
+    1:1:com.android.tools.r8.graph.DexMember getTarget():3576:3576 -> getTarget
+    1:1:int hashCode():3585:3585 -> hashCode
+com.android.tools.r8.shaking.EnqueuerFactory -> com.android.tools.r8.shaking.EnqueuerFactory:
+    1:1:void <init>():12:12 -> <init>
+    1:1:com.android.tools.r8.shaking.Enqueuer createForFinalTreeShaking(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):21:21 -> createForFinalTreeShaking
+    1:1:com.android.tools.r8.shaking.Enqueuer createForInitialTreeShaking(com.android.tools.r8.graph.AppView):16:16 -> createForInitialTreeShaking
+    1:1:com.android.tools.r8.shaking.Enqueuer createForMainDexTracing(com.android.tools.r8.graph.AppView):25:25 -> createForMainDexTracing
+    2:2:com.android.tools.r8.shaking.Enqueuer createForMainDexTracing(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):30:30 -> createForMainDexTracing
+    1:1:com.android.tools.r8.shaking.Enqueuer createForWhyAreYouKeeping(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):35:35 -> createForWhyAreYouKeeping
+com.android.tools.r8.shaking.EnqueuerUtils -> com.android.tools.r8.shaking.EnqueuerUtils:
+    1:1:void <init>():11:11 -> <init>
+    1:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap toImmutableSortedMap(java.util.Map,java.util.Comparator):15:17 -> toImmutableSortedMap
+com.android.tools.r8.shaking.EnqueuerWorklist -> com.android.tools.r8.shaking.EnqueuerWorklist:
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):241:241 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.AppView):239:242 -> <init>
+    1:1:com.android.tools.r8.shaking.EnqueuerWorklist createWorklist(com.android.tools.r8.graph.AppView):246:246 -> createWorklist
+    1:1:void enqueueMarkAnnotationInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):284:284 -> enqueueMarkAnnotationInstantiatedAction
+    2:2:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> enqueueMarkAnnotationInstantiatedAction
+    2:2:void enqueueMarkAnnotationInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):284 -> enqueueMarkAnnotationInstantiatedAction
+    3:5:void enqueueMarkAnnotationInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):284:286 -> enqueueMarkAnnotationInstantiatedAction
+    1:2:void enqueueMarkFieldKeptAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):309:310 -> enqueueMarkFieldKeptAction
+    1:1:void enqueueMarkInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):278:278 -> enqueueMarkInstantiatedAction
+    2:2:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> enqueueMarkInstantiatedAction
+    2:2:void enqueueMarkInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):278 -> enqueueMarkInstantiatedAction
+    3:5:void enqueueMarkInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):278:280 -> enqueueMarkInstantiatedAction
+    1:1:void enqueueMarkInterfaceInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):290:290 -> enqueueMarkInterfaceInstantiatedAction
+    2:2:boolean com.android.tools.r8.graph.DexClass.isAnnotation():629:629 -> enqueueMarkInterfaceInstantiatedAction
+    2:2:void enqueueMarkInterfaceInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):290 -> enqueueMarkInterfaceInstantiatedAction
+    3:5:void enqueueMarkInterfaceInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):290:292 -> enqueueMarkInterfaceInstantiatedAction
+    1:2:void enqueueMarkMethodKeptAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):303:304 -> enqueueMarkMethodKeptAction
+    1:2:void enqueueMarkMethodLiveAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):297:298 -> enqueueMarkMethodLiveAction
+    1:1:void enqueueMarkReachableDirectAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):258:258 -> enqueueMarkReachableDirectAction
+    1:2:void enqueueMarkReachableFieldAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):267:268 -> enqueueMarkReachableFieldAction
+    1:1:void enqueueMarkReachableSuperAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):262:262 -> enqueueMarkReachableSuperAction
+    1:2:void enqueueTraceConstClassAction(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):314:315 -> enqueueTraceConstClassAction
+    1:2:void enqueueTraceInvokeDirectAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):320:321 -> enqueueTraceInvokeDirectAction
+    1:1:void enqueueTraceNewInstanceAction(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):325:325 -> enqueueTraceNewInstanceAction
+    1:2:void enqueueTraceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):329:330 -> enqueueTraceStaticFieldRead
+    1:1:boolean isEmpty():250:250 -> isEmpty
+    1:1:com.android.tools.r8.shaking.EnqueuerWorklist$EnqueuerAction poll():254:254 -> poll
+com.android.tools.r8.shaking.EnqueuerWorklist$EnqueuerAction -> com.android.tools.r8.shaking.EnqueuerWorklist$EnqueuerAction:
+    1:1:void <init>():21:21 -> <init>
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkAnnotationInstantiatedAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkAnnotationInstantiatedAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):98:100 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):105:105 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkFieldKeptAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkFieldKeptAction:
+    1:4:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):163:166 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):171:171 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkInstantiatedAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkInstantiatedAction:
+    1:5:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.InstantiationReason,com.android.tools.r8.shaking.KeepReason):81:85 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):90:90 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkInterfaceInstantiatedAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkInterfaceInstantiatedAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):113:115 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):120:120 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkMethodKeptAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkMethodKeptAction:
+    1:4:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):145:148 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):153:153 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkMethodLiveAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkMethodLiveAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):128:130 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):135:135 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableDirectAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableDirectAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):29:31 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):36:36 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableFieldAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableFieldAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):59:61 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):66:66 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableSuperAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableSuperAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):44:46 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):51:51 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$TraceConstClassAction -> com.android.tools.r8.shaking.EnqueuerWorklist$TraceConstClassAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):179:181 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):186:186 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$TraceInvokeDirectAction -> com.android.tools.r8.shaking.EnqueuerWorklist$TraceInvokeDirectAction:
+    1:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):196:199 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):204:204 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$TraceNewInstanceAction -> com.android.tools.r8.shaking.EnqueuerWorklist$TraceNewInstanceAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):212:214 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):219:219 -> run
+com.android.tools.r8.shaking.EnqueuerWorklist$TraceStaticFieldReadAction -> com.android.tools.r8.shaking.EnqueuerWorklist$TraceStaticFieldReadAction:
+    1:3:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):227:229 -> <init>
+    1:1:void run(com.android.tools.r8.shaking.Enqueuer):234:234 -> run
+com.android.tools.r8.shaking.FilteredClassPath -> com.android.tools.r8.shaking.FilteredClassPath:
+    1:5:void <init>(java.nio.file.Path,java.util.List,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):27:31 -> <init>
+    6:6:void <init>(java.nio.file.Path):35:35 -> <init>
+    1:1:boolean containsFileSeparator(java.lang.String):71:71 -> containsFileSeparator
+    1:1:com.android.tools.r8.origin.Origin getOrigin():47:47 -> getOrigin
+    1:1:java.nio.file.Path getPath():43:43 -> getPath
+    1:1:com.android.tools.r8.position.Position getPosition():51:51 -> getPosition
+    1:1:boolean isUnfiltered():123:123 -> isUnfiltered
+    1:41:boolean matchAgainstFileName(java.lang.String,int,java.lang.String,int):76:116 -> matchAgainstFileName
+    1:7:boolean matchesFile(java.lang.String):55:61 -> matchesFile
+    1:16:java.lang.String toString():128:143 -> toString
+    1:1:com.android.tools.r8.shaking.FilteredClassPath unfiltered(java.nio.file.Path):39:39 -> unfiltered
+com.android.tools.r8.shaking.GraphReporter -> com.android.tools.r8.shaking.GraphReporter:
+    1:1:void <clinit>():45:45 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):59:59 -> <init>
+    2:16:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):52:66 -> <init>
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness fakeReportShouldNotBeUsed():71:71 -> fakeReportShouldNotBeUsed
+    1:1:com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode getAnnotationGraphNode(com.android.tools.r8.graph.DexItem):417:417 -> getAnnotationGraphNode
+    1:1:com.android.tools.r8.experimental.graphinfo.ClassGraphNode getClassGraphNode(com.android.tools.r8.graph.DexType):429:429 -> getClassGraphNode
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getEdgeInfo(com.android.tools.r8.shaking.KeepReason):409:409 -> getEdgeInfo
+    2:2:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getEdgeInfo(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):413:413 -> getEdgeInfo
+    1:1:com.android.tools.r8.experimental.graphinfo.FieldGraphNode getFieldGraphNode(com.android.tools.r8.graph.DexField):461:461 -> getFieldGraphNode
+    1:10:com.android.tools.r8.experimental.graphinfo.GraphNode getGraphNode(com.android.tools.r8.graph.DexReference):396:405 -> getGraphNode
+    1:21:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode getKeepRuleGraphNode(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase):483:503 -> getKeepRuleGraphNode
+    1:1:com.android.tools.r8.experimental.graphinfo.MethodGraphNode getMethodGraphNode(com.android.tools.r8.graph.DexMethod):440:440 -> getMethodGraphNode
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.KeepReason):392:392 -> getSourceNode
+    1:1:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):387:387 -> isNonProgramClass
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> isNonProgramClass
+    2:2:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):387 -> isNonProgramClass
+    3:3:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):388:388 -> isNonProgramClass
+    1:5:com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode lambda$getAnnotationGraphNode$1(com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItem):420:424 -> lambda$getAnnotationGraphNode$1
+    1:1:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):432:432 -> lambda$getClassGraphNode$2
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> lambda$getClassGraphNode$2
+    2:2:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):432 -> lambda$getClassGraphNode$2
+    3:5:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):433:435 -> lambda$getClassGraphNode$2
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo lambda$getEdgeInfo$0(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):413:413 -> lambda$getEdgeInfo$0
+    1:1:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):464:464 -> lambda$getFieldGraphNode$4
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> lambda$getFieldGraphNode$4
+    2:2:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):464 -> lambda$getFieldGraphNode$4
+    3:8:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):465:470 -> lambda$getFieldGraphNode$4
+    9:9:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):467:467 -> lambda$getFieldGraphNode$4
+    1:1:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode lambda$getKeepRuleGraphNode$5(com.android.tools.r8.shaking.ProguardKeepRuleBase,java.util.Set,com.android.tools.r8.shaking.ProguardKeepRuleBase):488:488 -> lambda$getKeepRuleGraphNode$5
+    1:5:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode lambda$getKeepRuleGraphNode$6(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.shaking.ProguardKeepRuleBase):496:500 -> lambda$getKeepRuleGraphNode$6
+    1:1:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):443:443 -> lambda$getMethodGraphNode$3
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> lambda$getMethodGraphNode$3
+    2:2:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):443 -> lambda$getMethodGraphNode$3
+    3:15:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):444:456 -> lambda$getMethodGraphNode$3
+    16:16:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):450:450 -> lambda$getMethodGraphNode$3
+    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.shaking.KeepReason):350:353 -> registerAnnotation
+    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):343:346 -> registerClass
+    1:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.KeepReason):376:383 -> registerEdge
+    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):369:372 -> registerField
+    1:5:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerInterface(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):335:339 -> registerInterface
+    1:9:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):357:365 -> registerMethod
+    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):207:212 -> reportClassReferencedFrom
+    7:12:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):217:222 -> reportClassReferencedFrom
+    13:18:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):226:231 -> reportClassReferencedFrom
+    1:7:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):274:280 -> reportCompanionClass
+    8:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):279:279 -> reportCompanionClass
+    1:7:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):285:291 -> reportCompanionMethod
+    8:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):289:289 -> reportCompanionMethod
+    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):196:199 -> reportCompatInstantiated
+    5:10:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):197:202 -> reportCompatInstantiated
+    1:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):174:175 -> reportCompatKeepDefaultInitializer
+    3:736:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():0:733 -> reportCompatKeepDefaultInitializer
+    3:736:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):175 -> reportCompatKeepDefaultInitializer
+    737:741:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):175:179 -> reportCompatKeepDefaultInitializer
+    742:747:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):177:182 -> reportCompatKeepDefaultInitializer
+    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepMethod(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):186:191 -> reportCompatKeepMethod
+    1:3:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):296:298 -> reportEdge
+    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepClass(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase,com.android.tools.r8.graph.DexProgramClass):111:116 -> reportKeepClass
+    7:13:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepClass(com.android.tools.r8.graph.DexDefinition,java.util.Collection,com.android.tools.r8.graph.DexProgramClass):121:127 -> reportKeepClass
+    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepField(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase,com.android.tools.r8.graph.DexEncodedField):153:158 -> reportKeepField
+    7:13:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepField(com.android.tools.r8.graph.DexDefinition,java.util.Collection,com.android.tools.r8.graph.DexEncodedField):163:169 -> reportKeepField
+    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepMethod(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase,com.android.tools.r8.graph.DexEncodedMethod):132:137 -> reportKeepMethod
+    7:13:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepMethod(com.android.tools.r8.graph.DexDefinition,java.util.Collection,com.android.tools.r8.graph.DexEncodedMethod):142:148 -> reportKeepMethod
+    1:7:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind reportPrecondition(com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode):100:106 -> reportPrecondition
+    1:11:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):237:247 -> reportReachableClassInitializer
+    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):252:255 -> reportReachableMethodAsLive
+    5:10:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):253:258 -> reportReachableMethodAsLive
+    11:18:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):263:270 -> reportReachableMethodAsLive
+    1:6:boolean skipReporting(com.android.tools.r8.shaking.KeepReason):326:331 -> skipReporting
+    1:21:boolean verifyRootedPath(com.android.tools.r8.graph.DexProgramClass):75:95 -> verifyRootedPath
+com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness -> com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness:
+    1:1:void <clinit>():308:308 -> <clinit>
+    1:1:void <init>():310:310 -> <init>
+    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness access$000():306:306 -> access$000
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():316:316 -> edgeKind
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):321:321 -> getSourceNode
+com.android.tools.r8.shaking.IfRuleClassPartEquivalence -> com.android.tools.r8.shaking.IfRuleClassPartEquivalence:
+    1:1:void <init>():11:11 -> <init>
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):11:11 -> doEquivalent
+    2:22:boolean doEquivalent(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.shaking.ProguardIfRule):15:35 -> doEquivalent
+    1:1:int doHash(java.lang.Object):11:11 -> doHash
+    2:19:int doHash(com.android.tools.r8.shaking.ProguardIfRule):43:60 -> doHash
+com.android.tools.r8.shaking.IfRuleEvaluator -> com.android.tools.r8.shaking.IfRuleEvaluator:
+    1:1:void <clinit>():34:34 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,java.util.Map,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.shaking.Enqueuer$Mode,com.android.tools.r8.shaking.RootSetBuilder,java.util.Set):56:56 -> <init>
+    2:29:void <init>(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,java.util.Map,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.shaking.Enqueuer$Mode,com.android.tools.r8.shaking.RootSetBuilder,java.util.Set):38:65 -> <init>
+    1:1:boolean canRemoveSubsequentKeepRule(com.android.tools.r8.shaking.ProguardIfRule):166:166 -> canRemoveSubsequentKeepRule
+    2:5:boolean com.android.tools.r8.com.google.common.collect.Iterables.isEmpty(java.lang.Iterable):1023:1026 -> canRemoveSubsequentKeepRule
+    2:5:boolean canRemoveSubsequentKeepRule(com.android.tools.r8.shaking.ProguardIfRule):166 -> canRemoveSubsequentKeepRule
+    6:7:boolean canRemoveSubsequentKeepRule(com.android.tools.r8.shaking.ProguardIfRule):166:167 -> canRemoveSubsequentKeepRule
+    1:15:boolean evaluateClassForIfRule(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):214:228 -> evaluateClassForIfRule
+    1:2:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):235:236 -> evaluateIfRuleMembersAndMaterialize
+    3:3:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> evaluateIfRuleMembersAndMaterialize
+    3:3:com.android.tools.r8.graph.DexReference com.android.tools.r8.graph.DexClass.toReference():652 -> evaluateIfRuleMembersAndMaterialize
+    3:3:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):237 -> evaluateIfRuleMembersAndMaterialize
+    4:11:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):237:244 -> evaluateIfRuleMembersAndMaterialize
+    12:21:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):242:251 -> evaluateIfRuleMembersAndMaterialize
+    22:51:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):249:278 -> evaluateIfRuleMembersAndMaterialize
+    52:52:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> evaluateIfRuleMembersAndMaterialize
+    52:52:com.android.tools.r8.graph.DexReference com.android.tools.r8.graph.DexClass.toReference():652 -> evaluateIfRuleMembersAndMaterialize
+    52:52:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):284 -> evaluateIfRuleMembersAndMaterialize
+    53:54:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):284:285 -> evaluateIfRuleMembersAndMaterialize
+    1:10:boolean isEffectivelyLive(com.android.tools.r8.graph.DexProgramClass):191:200 -> isEffectivelyLive
+    1:2:boolean lambda$evaluateIfRuleMembersAndMaterialize$2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):246:247 -> lambda$evaluateIfRuleMembersAndMaterialize$2
+    1:4:boolean lambda$evaluateIfRuleMembersAndMaterialize$3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):253:256 -> lambda$evaluateIfRuleMembersAndMaterialize$3
+    1:2:boolean lambda$evaluateIfRuleMembersAndMaterialize$4(java.util.Collection,java.util.Collection,com.android.tools.r8.shaking.ProguardMemberRule):280:281 -> lambda$evaluateIfRuleMembersAndMaterialize$4
+    1:9:boolean lambda$run$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ProguardIfRule):102:110 -> lambda$run$0
+    1:10:boolean lambda$run$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ProguardIfRule):136:145 -> lambda$run$1
+    1:26:void materializeIfRule(com.android.tools.r8.shaking.ProguardIfRule,java.util.Set):294:319 -> materializeIfRule
+    1:5:void registerClassCapture(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):179:183 -> registerClassCapture
+    1:55:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run():69:123 -> run
+    56:56:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> run
+    56:56:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run():123 -> run
+    57:93:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run():124:160 -> run
+    94:94:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run():158:158 -> run
+com.android.tools.r8.shaking.InlineRule -> com.android.tools.r8.shaking.InlineRule:
+    1:3:void <clinit>():11:13 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.InlineRule$Type):67:70 -> <init>
+    1:14:com.android.tools.r8.shaking.ProguardCheckDiscardRule asProguardCheckDiscardRule():82:95 -> asProguardCheckDiscardRule
+    1:1:com.android.tools.r8.shaking.InlineRule$Builder builder():74:74 -> builder
+    1:1:com.android.tools.r8.shaking.InlineRule$Type getType():78:78 -> getType
+    1:9:java.lang.String typeString():100:108 -> typeString
+com.android.tools.r8.shaking.InlineRule$1 -> com.android.tools.r8.shaking.InlineRule$1:
+    1:1:void <init>(com.android.tools.r8.origin.Origin):13:13 -> <init>
+com.android.tools.r8.shaking.InlineRule$2 -> com.android.tools.r8.shaking.InlineRule$2:
+    1:1:void <clinit>():100:100 -> <clinit>
+com.android.tools.r8.shaking.InlineRule$Builder -> com.android.tools.r8.shaking.InlineRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.InlineRule$1):24:24 -> <init>
+    2:2:void <init>():27:27 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():24:24 -> build
+    2:2:com.android.tools.r8.shaking.InlineRule build():44:44 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():24:24 -> self
+    1:1:com.android.tools.r8.shaking.InlineRule$Builder setType(com.android.tools.r8.shaking.InlineRule$Type):38:38 -> setType
+com.android.tools.r8.shaking.InlineRule$Type -> com.android.tools.r8.shaking.InlineRule$Type:
+    1:1:void <clinit>():21:21 -> <clinit>
+    2:2:void <clinit>():20:20 -> <clinit>
+    1:1:void <init>(java.lang.String,int):20:20 -> <init>
+    1:1:com.android.tools.r8.shaking.InlineRule$Type valueOf(java.lang.String):20:20 -> valueOf
+    1:1:com.android.tools.r8.shaking.InlineRule$Type[] values():20:20 -> values
+com.android.tools.r8.shaking.InstantiationReason -> com.android.tools.r8.shaking.InstantiationReason:
+    1:6:void <clinit>():8:13 -> <clinit>
+    7:7:void <clinit>() -> <clinit>
+    1:1:void <init>(java.lang.String,int):7:7 -> <init>
+    1:1:com.android.tools.r8.shaking.InstantiationReason valueOf(java.lang.String):7:7 -> valueOf
+    1:1:com.android.tools.r8.shaking.InstantiationReason[] values():7:7 -> values
+com.android.tools.r8.shaking.KeepReason -> com.android.tools.r8.shaking.KeepReason:
+    1:1:void <init>():18:18 -> <init>
+    1:1:com.android.tools.r8.shaking.KeepReason annotatedOn(com.android.tools.r8.graph.DexDefinition):25:25 -> annotatedOn
+    1:1:com.android.tools.r8.shaking.KeepReason fieldReferencedIn(com.android.tools.r8.graph.DexEncodedMethod):57:57 -> fieldReferencedIn
+    1:1:com.android.tools.r8.shaking.KeepReason instantiatedIn(com.android.tools.r8.graph.DexEncodedMethod):29:29 -> instantiatedIn
+    1:1:com.android.tools.r8.shaking.KeepReason invokedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):41:41 -> invokedFrom
+    2:2:com.android.tools.r8.shaking.KeepReason invokedFrom(com.android.tools.r8.graph.ProgramMethod):45:45 -> invokedFrom
+    1:1:com.android.tools.r8.shaking.KeepReason invokedFromLambdaCreatedIn(com.android.tools.r8.graph.DexEncodedMethod):49:49 -> invokedFromLambdaCreatedIn
+    1:1:com.android.tools.r8.shaking.KeepReason invokedViaSuperFrom(com.android.tools.r8.graph.DexEncodedMethod):33:33 -> invokedViaSuperFrom
+    1:1:com.android.tools.r8.shaking.KeepReason isLibraryMethod(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):53:53 -> isLibraryMethod
+    1:1:com.android.tools.r8.shaking.KeepReason methodHandleReferencedIn(com.android.tools.r8.graph.DexEncodedMethod):81:81 -> methodHandleReferencedIn
+    1:1:com.android.tools.r8.shaking.KeepReason reachableFromLiveType(com.android.tools.r8.graph.DexType):37:37 -> reachableFromLiveType
+    1:1:com.android.tools.r8.shaking.KeepReason referencedInAnnotation(com.android.tools.r8.graph.DexItem):61:61 -> referencedInAnnotation
+    1:1:com.android.tools.r8.shaking.KeepReason reflectiveUseIn(com.android.tools.r8.graph.DexEncodedMethod):77:77 -> reflectiveUseIn
+    1:1:com.android.tools.r8.shaking.KeepReason targetedBySuperFrom(com.android.tools.r8.graph.DexEncodedMethod):73:73 -> targetedBySuperFrom
+com.android.tools.r8.shaking.KeepReason$AnnotatedOn -> com.android.tools.r8.shaking.KeepReason$AnnotatedOn:
+    1:1:void <clinit>():266:266 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason$1):266:266 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexDefinition):270:271 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():276:276 -> edgeKind
+    1:7:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):281:287 -> getSourceNode
+com.android.tools.r8.shaking.KeepReason$BasedOnOtherMethod -> com.android.tools.r8.shaking.KeepReason$BasedOnOtherMethod:
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):84:84 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod):88:89 -> <init>
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():95:95 -> getMethod
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):100:100 -> getSourceNode
+com.android.tools.r8.shaking.KeepReason$InstatiatedIn -> com.android.tools.r8.shaking.KeepReason$InstatiatedIn:
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):104:104 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):107:107 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():112:112 -> edgeKind
+    1:1:com.android.tools.r8.graph.DexMethod getMethod():104:104 -> getMethod
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):104:104 -> getSourceNode
+com.android.tools.r8.shaking.KeepReason$InvokedFrom -> com.android.tools.r8.shaking.KeepReason$InvokedFrom:
+    1:1:void <clinit>():155:155 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):155:155 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):158:159 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():164:164 -> edgeKind
+com.android.tools.r8.shaking.KeepReason$InvokedFromLambdaCreatedIn -> com.android.tools.r8.shaking.KeepReason$InvokedFromLambdaCreatedIn:
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):173:173 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):176:176 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():181:181 -> edgeKind
+com.android.tools.r8.shaking.KeepReason$InvokedViaSuper -> com.android.tools.r8.shaking.KeepReason$InvokedViaSuper:
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):121:121 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):124:124 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():129:129 -> edgeKind
+com.android.tools.r8.shaking.KeepReason$IsLibraryMethod -> com.android.tools.r8.shaking.KeepReason$IsLibraryMethod:
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason$1):226:226 -> <init>
+    2:4:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):231:233 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():238:238 -> edgeKind
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):243:243 -> getSourceNode
+com.android.tools.r8.shaking.KeepReason$MethodHandleReferencedFrom -> com.android.tools.r8.shaking.KeepReason$MethodHandleReferencedFrom:
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):314:314 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):317:317 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():322:322 -> edgeKind
+com.android.tools.r8.shaking.KeepReason$ReachableFromLiveType -> com.android.tools.r8.shaking.KeepReason$ReachableFromLiveType:
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason$1):207:207 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexType):211:212 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():217:217 -> edgeKind
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):222:222 -> getSourceNode
+com.android.tools.r8.shaking.KeepReason$ReferencedFrom -> com.android.tools.r8.shaking.KeepReason$ReferencedFrom:
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):190:190 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):193:193 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():198:198 -> edgeKind
+com.android.tools.r8.shaking.KeepReason$ReferencedInAnnotation -> com.android.tools.r8.shaking.KeepReason$ReferencedInAnnotation:
+    1:1:void <init>(com.android.tools.r8.graph.DexItem,com.android.tools.r8.shaking.KeepReason$1):247:247 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexItem):251:252 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():257:257 -> edgeKind
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):262:262 -> getSourceNode
+com.android.tools.r8.shaking.KeepReason$ReflectiveUseFrom -> com.android.tools.r8.shaking.KeepReason$ReflectiveUseFrom:
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):292:292 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):295:295 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():305:305 -> edgeKind
+com.android.tools.r8.shaking.KeepReason$TargetedBySuper -> com.android.tools.r8.shaking.KeepReason$TargetedBySuper:
+    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):138:138 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):141:141 -> <init>
+    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():146:146 -> edgeKind
+com.android.tools.r8.shaking.L8TreePruner -> com.android.tools.r8.shaking.L8TreePruner:
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):32:32 -> <init>
+    2:10:void <init>(com.android.tools.r8.utils.InternalOptions):28:36 -> <init>
+    11:11:void <init>(com.android.tools.r8.utils.InternalOptions):35:35 -> <init>
+    1:13:boolean interfaceImplementsEmulatedInterface(com.android.tools.r8.graph.DexClass,java.util.Map):62:74 -> interfaceImplementsEmulatedInterface
+    1:12:com.android.tools.r8.graph.DexApplication prune(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):40:51 -> prune
+    13:21:com.android.tools.r8.graph.DexApplication prune(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):49:57 -> prune
+com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis -> com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis:
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):40:40 -> <init>
+    2:8:void <init>(com.android.tools.r8.graph.AppView):38:44 -> <init>
+    9:9:void <init>(com.android.tools.r8.graph.AppView):43:43 -> <init>
+    1:13:void analyze(com.android.tools.r8.ir.code.IRCode):106:118 -> analyze
+    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> analyze
+    14:14:void analyze(com.android.tools.r8.ir.code.IRCode):118 -> analyze
+    15:30:void analyze(com.android.tools.r8.ir.code.IRCode):119:134 -> analyze
+    31:31:void analyze(com.android.tools.r8.ir.code.IRCode):133:133 -> analyze
+    1:2:void finish():144:145 -> finish
+    1:4:java.util.Set getClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):61:64 -> getClassesWithLibraryMethodOverrides
+    5:5:java.util.Set getClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):63:63 -> getClassesWithLibraryMethodOverrides
+    1:5:java.util.Set getInitialNonEscapingClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):50:54 -> getInitialNonEscapingClassesWithLibraryMethodOverrides
+    1:5:boolean hasLibraryMethodOverrideDirectly(com.android.tools.r8.graph.DexProgramClass):81:85 -> hasLibraryMethodOverrideDirectly
+    1:2:boolean hasLibraryMethodOverrideDirectlyOrIndirectly(com.android.tools.r8.graph.DexProgramClass,java.util.Set):76:77 -> hasLibraryMethodOverrideDirectlyOrIndirectly
+    1:5:boolean hasLibraryMethodOverrideIndirectly(com.android.tools.r8.graph.DexProgramClass,java.util.Set):94:98 -> hasLibraryMethodOverrideIndirectly
+    1:1:boolean lambda$finish$1(com.android.tools.r8.graph.DexType):146:146 -> lambda$finish$1
+    1:3:void lambda$getClassesWithLibraryMethodOverrides$0(java.util.Set,com.android.tools.r8.graph.DexProgramClass):66:68 -> lambda$getClassesWithLibraryMethodOverrides$0
+    1:4:void lambda$logResults$2(java.lang.Class):174:177 -> lambda$logResults$2
+    5:5:void lambda$logResults$2(java.lang.Class):173:173 -> lambda$logResults$2
+    1:5:void logResults():160:164 -> logResults
+    6:13:void logResults():161:168 -> logResults
+    14:20:void logResults():165:171 -> logResults
+    1:5:boolean verifyNoUninstantiatedTypesEscapeIntoLibrary():150:154 -> verifyNoUninstantiatedTypesEscapeIntoLibrary
+    6:6:boolean verifyNoUninstantiatedTypesEscapeIntoLibrary():152:152 -> verifyNoUninstantiatedTypesEscapeIntoLibrary
+com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration -> com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration:
+    1:1:void <clinit>():182:182 -> <clinit>
+    1:1:void <init>():185:185 -> <init>
+    1:1:com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration getInstance():188:188 -> getInstance
+    1:23:boolean isLegitimateConstructorInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):209:231 -> isLegitimateConstructorInvocation
+    1:3:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):197:199 -> isLegitimateEscapeRoute
+    4:4:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):198:198 -> isLegitimateEscapeRoute
+com.android.tools.r8.shaking.MainDexClasses -> com.android.tools.r8.shaking.MainDexClasses:
+    1:3:void <clinit>():18:20 -> <clinit>
+    1:1:void <init>(java.util.Set,java.util.Set,com.android.tools.r8.shaking.MainDexClasses$1):18:18 -> <init>
+    2:6:void <init>(java.util.Set,java.util.Set):70:74 -> <init>
+    1:1:com.android.tools.r8.shaking.MainDexClasses$Builder builder(com.android.tools.r8.graph.AppInfo):113:113 -> builder
+    1:1:void collectTypesMatching(java.util.Set,java.util.function.Predicate,java.util.function.Consumer):96:96 -> collectTypesMatching
+    1:1:java.util.Set getClasses():91:91 -> getClasses
+    1:1:java.util.Set getDependencies():87:87 -> getDependencies
+    1:1:java.util.Set getRoots():83:83 -> getRoots
+    1:2:boolean isEmpty():78:79 -> isEmpty
+    1:2:void lambda$collectTypesMatching$0(java.util.function.Predicate,java.util.function.Consumer,com.android.tools.r8.graph.DexType):98:99 -> lambda$collectTypesMatching$0
+    1:5:com.android.tools.r8.shaking.MainDexClasses prunedCopy(com.android.tools.r8.shaking.AppInfoWithLiveness):105:109 -> prunedCopy
+com.android.tools.r8.shaking.MainDexClasses$Builder -> com.android.tools.r8.shaking.MainDexClasses$Builder:
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.shaking.MainDexClasses$1):22:22 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.AppInfo):27:27 -> <init>
+    3:7:void <init>(com.android.tools.r8.graph.AppInfo):24:28 -> <init>
+    1:2:com.android.tools.r8.shaking.MainDexClasses$Builder addDependency(com.android.tools.r8.graph.DexType):44:45 -> addDependency
+    1:2:com.android.tools.r8.shaking.MainDexClasses$Builder addRoot(com.android.tools.r8.graph.DexType):32:33 -> addRoot
+    1:2:com.android.tools.r8.shaking.MainDexClasses$Builder addRoots(java.util.Collection):38:39 -> addRoots
+    1:1:com.android.tools.r8.shaking.MainDexClasses build():54:54 -> build
+    1:1:boolean contains(com.android.tools.r8.graph.DexType):50:50 -> contains
+    1:2:boolean isProgramClass(com.android.tools.r8.graph.DexType):58:59 -> isProgramClass
+com.android.tools.r8.shaking.MainDexDirectReferenceTracer -> com.android.tools.r8.shaking.MainDexDirectReferenceTracer:
+    1:1:void <clinit>():25:25 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.function.Consumer):33:33 -> <init>
+    2:12:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.function.Consumer):26:36 -> <init>
+    1:1:java.util.function.Consumer access$300(com.android.tools.r8.shaking.MainDexDirectReferenceTracer):25:25 -> access$300
+    1:1:void access$400(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):25:25 -> access$400
+    1:16:boolean hasReferencesOutsideFromCode(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):66:81 -> hasReferencesOutsideFromCode
+    1:5:void lambda$hasReferencesOutsideFromCode$2(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$BooleanBox,com.android.tools.r8.graph.DexType):71:75 -> lambda$hasReferencesOutsideFromCode$2
+    1:1:void lambda$run$0(com.android.tools.r8.graph.DexEncodedField):47:47 -> lambda$run$0
+    1:2:void lambda$run$1(com.android.tools.r8.graph.DexEncodedMethod):49:50 -> lambda$run$1
+    1:9:void run(java.util.Set):40:48 -> run
+    1:1:void runOnCode(com.android.tools.r8.graph.DexEncodedMethod):56:56 -> runOnCode
+    1:1:void traceAnnotationsDirectDependencies(com.android.tools.r8.graph.DexAnnotationSet):85:85 -> traceAnnotationsDirectDependencies
+    1:4:void traceMethodDirectDependencies(com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):89:92 -> traceMethodDirectDependencies
+com.android.tools.r8.shaking.MainDexDirectReferenceTracer$AnnotationDirectReferenceCollector -> com.android.tools.r8.shaking.MainDexDirectReferenceTracer$AnnotationDirectReferenceCollector:
+    1:1:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer):172:172 -> <init>
+    2:2:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):172:172 -> <init>
+    1:1:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):216:216 -> addCallSite
+    1:1:boolean addClass(com.android.tools.r8.graph.DexProgramClass):176:176 -> addClass
+    1:2:boolean addField(com.android.tools.r8.graph.DexField):182:183 -> addField
+    1:2:boolean addMethod(com.android.tools.r8.graph.DexMethod):189:190 -> addMethod
+    1:1:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):221:221 -> addMethodHandle
+    1:3:boolean addProto(com.android.tools.r8.graph.DexProto):201:203 -> addProto
+    1:1:boolean addType(com.android.tools.r8.graph.DexType):210:210 -> addType
+    1:1:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedDescriptor(com.android.tools.r8.graph.DexType):111:111 -> getRenamedDescriptor
+    1:1:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):0 -> getRenamedDescriptor
+    1:1:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedName(com.android.tools.r8.graph.DexMethod):103:103 -> getRenamedName
+    1:1:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):0 -> getRenamedName
+    2:2:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedName(com.android.tools.r8.graph.DexField):107:107 -> getRenamedName
+    2:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):0 -> getRenamedName
+com.android.tools.r8.shaking.MainDexDirectReferenceTracer$BooleanBox -> com.android.tools.r8.shaking.MainDexDirectReferenceTracer$BooleanBox:
+    1:2:void <init>():59:60 -> <init>
+    3:3:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):59:59 -> <init>
+com.android.tools.r8.shaking.MainDexDirectReferenceTracer$DirectReferencesCollector -> com.android.tools.r8.shaking.MainDexDirectReferenceTracer$DirectReferencesCollector:
+    1:1:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):96:96 -> <init>
+    2:3:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexItemFactory):98:99 -> <init>
+    1:2:boolean registerFieldAccess(com.android.tools.r8.graph.DexField):154:155 -> registerFieldAccess
+    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):140:140 -> registerInstanceFieldRead
+    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):135:135 -> registerInstanceFieldWrite
+    1:2:boolean registerInvoke(com.android.tools.r8.graph.DexMethod):128:129 -> registerInvoke
+    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):109:109 -> registerInvokeDirect
+    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):119:119 -> registerInvokeInterface
+    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):114:114 -> registerInvokeStatic
+    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):124:124 -> registerInvokeSuper
+    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):104:104 -> registerInvokeVirtual
+    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):161:161 -> registerNewInstance
+    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):145:145 -> registerStaticFieldRead
+    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):150:150 -> registerStaticFieldWrite
+    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):167:167 -> registerTypeReference
+com.android.tools.r8.shaking.MainDexListBuilder -> com.android.tools.r8.shaking.MainDexListBuilder:
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:7:void <init>(java.util.Set,com.android.tools.r8.graph.DirectMappedDexApplication):53:59 -> <init>
+    1:8:void addAnnotationsWithEnum(com.android.tools.r8.graph.DexProgramClass):138:145 -> addAnnotationsWithEnum
+    1:1:void addClassAnnotatedWithAnnotationWithEnum(com.android.tools.r8.graph.DexType):153:153 -> addClassAnnotatedWithAnnotationWithEnum
+    1:12:void addDirectDependency(com.android.tools.r8.graph.DexType):158:169 -> addDirectDependency
+    13:20:void addDirectDependency(com.android.tools.r8.graph.DexProgramClass):173:180 -> addDirectDependency
+    1:8:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppInfo):37:44 -> checkForAssumedLibraryTypes
+    9:9:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> checkForAssumedLibraryTypes
+    9:9:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppInfo):44 -> checkForAssumedLibraryTypes
+    10:10:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppInfo):44:44 -> checkForAssumedLibraryTypes
+    11:11:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppInfo):39:39 -> checkForAssumedLibraryTypes
+    12:12:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> checkForAssumedLibraryTypes
+    12:12:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppInfo):39 -> checkForAssumedLibraryTypes
+    13:13:void checkForAssumedLibraryTypes(com.android.tools.r8.graph.AppInfo):39:39 -> checkForAssumedLibraryTypes
+    1:1:boolean isAnnotation(com.android.tools.r8.graph.DexType):128:128 -> isAnnotation
+    1:29:boolean isAnnotationWithEnum(com.android.tools.r8.graph.DexType):92:120 -> isAnnotationWithEnum
+    1:1:boolean isEnum(com.android.tools.r8.graph.DexType):124:124 -> isEnum
+    1:4:void lambda$traceRuntimeAnnotationsWithEnumForMainDex$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):82:85 -> lambda$traceRuntimeAnnotationsWithEnumForMainDex$0
+    1:3:com.android.tools.r8.shaking.MainDexClasses run():63:65 -> run
+    1:2:void traceMainDexDirectDependencies():132:133 -> traceMainDexDirectDependencies
+    1:12:void traceRuntimeAnnotationsWithEnumForMainDex():69:80 -> traceRuntimeAnnotationsWithEnumForMainDex
+    13:19:void com.android.tools.r8.graph.DexClass.forEachAnnotation(java.util.function.Consumer):374:380 -> traceRuntimeAnnotationsWithEnumForMainDex
+    13:19:void traceRuntimeAnnotationsWithEnumForMainDex():80 -> traceRuntimeAnnotationsWithEnumForMainDex
+com.android.tools.r8.shaking.MemberValuePropagationRule -> com.android.tools.r8.shaking.MemberValuePropagationRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.shaking.MemberValuePropagationRule$1):11:11 -> <init>
+    2:5:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.MemberValuePropagationRule$Type):61:64 -> <init>
+    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Builder builder():68:68 -> builder
+    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Type getType():72:72 -> getType
+    1:5:java.lang.String typeString():77:81 -> typeString
+com.android.tools.r8.shaking.MemberValuePropagationRule$1 -> com.android.tools.r8.shaking.MemberValuePropagationRule$1:
+    1:1:void <clinit>():77:77 -> <clinit>
+com.android.tools.r8.shaking.MemberValuePropagationRule$Builder -> com.android.tools.r8.shaking.MemberValuePropagationRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.MemberValuePropagationRule$1):17:17 -> <init>
+    2:2:void <init>():21:21 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():17:17 -> build
+    2:2:com.android.tools.r8.shaking.MemberValuePropagationRule build():38:38 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():17:17 -> self
+    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Builder setType(com.android.tools.r8.shaking.MemberValuePropagationRule$Type):32:32 -> setType
+com.android.tools.r8.shaking.MemberValuePropagationRule$Type -> com.android.tools.r8.shaking.MemberValuePropagationRule$Type:
+    1:1:void <clinit>():14:14 -> <clinit>
+    2:2:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>(java.lang.String,int):13:13 -> <init>
+    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Type valueOf(java.lang.String):13:13 -> valueOf
+    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Type[] values():13:13 -> values
+com.android.tools.r8.shaking.ProguardAccessFlags -> com.android.tools.r8.shaking.ProguardAccessFlags:
+    1:7:void <clinit>():15:21 -> <clinit>
+    1:6:void <init>():13:18 -> <init>
+    1:1:boolean containsAll(int):57:57 -> containsAll
+    2:2:boolean containsAll(com.android.tools.r8.graph.AccessFlags):69:69 -> containsAll
+    1:1:boolean containsNone(int):65:65 -> containsNone
+    2:2:boolean containsNone(com.android.tools.r8.graph.AccessFlags):73:73 -> containsNone
+    1:4:boolean equals(java.lang.Object):225:228 -> equals
+    1:1:java.util.List getPredicates():39:39 -> getPredicates
+    1:1:int hashCode():233:233 -> hashCode
+    1:1:boolean isAbstract():138:138 -> isAbstract
+    1:1:boolean isBridge():194:194 -> isBridge
+    1:1:boolean isFinal():130:130 -> isFinal
+    1:1:boolean isNative():170:170 -> isNative
+    1:1:boolean isPrivate():95:95 -> isPrivate
+    1:1:boolean isProtected():104:104 -> isProtected
+    1:1:boolean isPublic():86:86 -> isPublic
+    1:1:boolean isSet(int):198:198 -> isSet
+    1:1:boolean isStatic():122:122 -> isStatic
+    1:1:boolean isStrict():178:178 -> isStrict
+    1:1:boolean isSynchronized():162:162 -> isSynchronized
+    1:1:boolean isSynthetic():186:186 -> isSynthetic
+    1:1:boolean isTransient():154:154 -> isTransient
+    1:1:boolean isVolatile():146:146 -> isVolatile
+    1:1:void set(int):202:202 -> set
+    1:1:void setAbstract():134:134 -> setAbstract
+    1:1:void setBridge():190:190 -> setBridge
+    1:1:void setFinal():126:126 -> setFinal
+    1:1:void setFlags(com.android.tools.r8.graph.AccessFlags):77:77 -> setFlags
+    1:1:void setNative():166:166 -> setNative
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setPrivate():90:90 -> setPrivate
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setProtected():99:99 -> setProtected
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setPublic():81:81 -> setPublic
+    1:1:void setStatic():118:118 -> setStatic
+    1:1:void setStrict():174:174 -> setStrict
+    1:1:void setSynchronized():158:158 -> setSynchronized
+    1:1:void setSynthetic():182:182 -> setSynthetic
+    1:1:void setTransient():150:150 -> setTransient
+    1:6:void setVisibility(com.android.tools.r8.graph.ClassAccessFlags):108:113 -> setVisibility
+    1:1:void setVolatile():142:142 -> setVolatile
+    1:14:java.lang.String toString():207:220 -> toString
+com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule -> com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder builder():75:75 -> builder
+com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder -> com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:4:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule build():26:28 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule -> com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder builder():55:55 -> builder
+com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder -> com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:2:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule build():26:26 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.ProguardAssumeValuesRule -> com.android.tools.r8.shaking.ProguardAssumeValuesRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeValuesRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardAssumeValuesRule$Builder builder():55:55 -> builder
+com.android.tools.r8.shaking.ProguardAssumeValuesRule$Builder -> com.android.tools.r8.shaking.ProguardAssumeValuesRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeValuesRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:2:com.android.tools.r8.shaking.ProguardAssumeValuesRule build():26:26 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.ProguardCheckDiscardRule -> com.android.tools.r8.shaking.ProguardCheckDiscardRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardCheckDiscardRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardCheckDiscardRule$Builder builder():52:52 -> builder
+com.android.tools.r8.shaking.ProguardCheckDiscardRule$Builder -> com.android.tools.r8.shaking.ProguardCheckDiscardRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardCheckDiscardRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:2:com.android.tools.r8.shaking.ProguardCheckDiscardRule build():26:26 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.ProguardClassFilter -> com.android.tools.r8.shaking.ProguardClassFilter:
+    1:2:void <clinit>():12:13 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.shaking.ProguardClassFilter$1):12:12 -> <init>
+    2:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):37:38 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassFilter$Builder builder():18:18 -> builder
+    1:1:com.android.tools.r8.shaking.ProguardClassFilter empty():42:42 -> empty
+    1:2:void filterOutMatches(java.util.Set):59:60 -> filterOutMatches
+    1:1:boolean isEmpty():46:46 -> isEmpty
+    1:5:void lambda$filterOutMatches$0(java.util.Set,com.android.tools.r8.shaking.ProguardTypeMatcher):61:65 -> lambda$filterOutMatches$0
+    1:2:boolean matches(com.android.tools.r8.graph.DexType):50:51 -> matches
+com.android.tools.r8.shaking.ProguardClassFilter$Builder -> com.android.tools.r8.shaking.ProguardClassFilter$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardClassFilter$1):21:21 -> <init>
+    2:2:void <init>():24:24 -> <init>
+    3:3:void <init>():22:22 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassFilter$Builder addPattern(com.android.tools.r8.shaking.ProguardClassNameList):28:28 -> addPattern
+    1:1:com.android.tools.r8.shaking.ProguardClassFilter build():33:33 -> build
+com.android.tools.r8.shaking.ProguardClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList:
+    1:1:void <init>():21:21 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassNameList$Builder builder():24:24 -> builder
+    1:1:com.android.tools.r8.shaking.ProguardClassNameList emptyList():28:28 -> emptyList
+    1:1:java.lang.Iterable getWildcards():87:87 -> getWildcards
+    1:1:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardClassNameList):91:91 -> getWildcardsOrEmpty
+    1:1:com.android.tools.r8.shaking.ProguardClassNameList singletonList(com.android.tools.r8.shaking.ProguardTypeMatcher):32:32 -> singletonList
+    1:3:java.lang.String toString():71:73 -> toString
+com.android.tools.r8.shaking.ProguardClassNameList$Builder -> com.android.tools.r8.shaking.ProguardClassNameList$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardClassNameList$1):37:37 -> <init>
+    2:2:void <init>():44:44 -> <init>
+    3:3:void <init>():42:42 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassNameList$Builder addClassName(boolean,com.android.tools.r8.shaking.ProguardTypeMatcher):48:48 -> addClassName
+    1:8:com.android.tools.r8.shaking.ProguardClassNameList build():53:60 -> build
+com.android.tools.r8.shaking.ProguardClassNameList$EmptyClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$EmptyClassNameList:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardClassNameList$1):100:100 -> <init>
+    2:2:void <init>():102:102 -> <init>
+    1:1:boolean equals(java.lang.Object):116:116 -> equals
+com.android.tools.r8.shaking.ProguardClassNameList$MixedClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$MixedClassNameList:
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,com.android.tools.r8.shaking.ProguardClassNameList$1):279:279 -> <init>
+    2:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):283:284 -> <init>
+    1:5:boolean equals(java.lang.Object):312:316 -> equals
+    1:1:void forEachTypeMatcher(java.util.function.Consumer):358:358 -> forEachTypeMatcher
+    1:3:java.lang.Iterable getWildcards():342:344 -> getWildcards
+    1:1:int hashCode():321:321 -> hashCode
+    1:1:void lambda$forEachTypeMatcher$2(java.util.function.Consumer,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry):358:358 -> lambda$forEachTypeMatcher$2
+    1:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):344:344 -> lambda$getWildcards$0
+    1:1:void lambda$materialize$1(com.android.tools.r8.shaking.ProguardClassNameList$Builder,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardTypeMatcher,java.lang.Boolean):352:352 -> lambda$materialize$1
+    1:4:boolean matches(com.android.tools.r8.graph.DexType):331:334 -> matches
+    1:4:com.android.tools.r8.shaking.ProguardClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):350:353 -> materialize
+    1:1:int size():289:289 -> size
+    1:8:void writeTo(java.lang.StringBuilder):295:302 -> writeTo
+com.android.tools.r8.shaking.ProguardClassNameList$PositiveClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$PositiveClassNameList:
+    1:1:void <init>(java.util.Collection,com.android.tools.r8.shaking.ProguardClassNameList$1):201:201 -> <init>
+    2:3:void <init>(java.util.Collection):205:206 -> <init>
+    1:3:java.util.List asSpecificDexTypes():245:247 -> asSpecificDexTypes
+    1:5:boolean equals(java.lang.Object):231:235 -> equals
+    1:1:void forEachTypeMatcher(java.util.function.Consumer):275:275 -> forEachTypeMatcher
+    1:3:java.lang.Iterable getWildcards():259:261 -> getWildcards
+    1:1:int hashCode():240:240 -> hashCode
+    1:1:boolean lambda$asSpecificDexTypes$0(com.android.tools.r8.shaking.ProguardTypeMatcher):245:245 -> lambda$asSpecificDexTypes$0
+    1:1:java.util.stream.Stream lambda$getWildcards$2(java.lang.Iterable):261:261 -> lambda$getWildcards$2
+    1:1:boolean lambda$matches$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardTypeMatcher):254:254 -> lambda$matches$1
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher lambda$materialize$3(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardTypeMatcher):269:269 -> lambda$materialize$3
+    1:1:boolean matches(com.android.tools.r8.graph.DexType):254:254 -> matches
+    1:1:com.android.tools.r8.shaking.ProguardClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):201:201 -> materialize
+    2:5:com.android.tools.r8.shaking.ProguardClassNameList$PositiveClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):267:270 -> materialize
+    1:1:int size():211:211 -> size
+    1:5:void writeTo(java.lang.StringBuilder):217:221 -> writeTo
+com.android.tools.r8.shaking.ProguardClassNameList$SingleClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$SingleClassNameList:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardClassNameList$1):139:139 -> <init>
+    2:3:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher):143:144 -> <init>
+    1:2:java.util.List asSpecificDexTypes():176:177 -> asSpecificDexTypes
+    1:5:boolean equals(java.lang.Object):162:166 -> equals
+    1:1:void forEachTypeMatcher(java.util.function.Consumer):197:197 -> forEachTypeMatcher
+    1:1:java.lang.Iterable getWildcards():187:187 -> getWildcards
+    1:1:int hashCode():171:171 -> hashCode
+    1:1:boolean matches(com.android.tools.r8.graph.DexType):182:182 -> matches
+    1:1:com.android.tools.r8.shaking.ProguardClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):139:139 -> materialize
+    2:2:com.android.tools.r8.shaking.ProguardClassNameList$SingleClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):192:192 -> materialize
+    1:1:void writeTo(java.lang.StringBuilder):154:154 -> writeTo
+com.android.tools.r8.shaking.ProguardClassSpecification -> com.android.tools.r8.shaking.ProguardClassSpecification:
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:18:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):199:216 -> <init>
+    1:5:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):333:337 -> append
+    6:30:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):336:360 -> append
+    1:33:boolean equals(java.lang.Object):281:313 -> equals
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getClassAccessFlags():268:268 -> getClassAccessFlags
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getClassAnnotation():276:276 -> getClassAnnotation
+    1:1:com.android.tools.r8.shaking.ProguardClassNameList getClassNames():256:256 -> getClassNames
+    1:1:com.android.tools.r8.shaking.ProguardClassType getClassType():260:260 -> getClassType
+    1:1:boolean getClassTypeNegated():264:264 -> getClassTypeNegated
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceAnnotation():252:252 -> getInheritanceAnnotation
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceClassName():248:248 -> getInheritanceClassName
+    1:1:boolean getInheritanceIsExtends():236:236 -> getInheritanceIsExtends
+    1:1:boolean getInheritanceIsImplements():240:240 -> getInheritanceIsImplements
+    1:1:java.util.List getMemberRules():232:232 -> getMemberRules
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedClassAccessFlags():272:272 -> getNegatedClassAccessFlags
+    1:1:com.android.tools.r8.origin.Origin getOrigin():220:220 -> getOrigin
+    1:1:com.android.tools.r8.position.Position getPosition():224:224 -> getPosition
+    1:1:java.lang.String getSource():228:228 -> getSource
+    1:1:boolean hasInheritanceClassName():244:244 -> hasInheritanceClassName
+    1:10:int hashCode():319:328 -> hashCode
+    1:3:void lambda$append$0(java.lang.StringBuilder,com.android.tools.r8.shaking.ProguardMemberRule):356:358 -> lambda$append$0
+    1:1:java.lang.String toShortString():369:369 -> toShortString
+    1:1:java.lang.String toString():374:374 -> toString
+com.android.tools.r8.shaking.ProguardClassSpecification$Builder -> com.android.tools.r8.shaking.ProguardClassSpecification$Builder:
+    1:1:void <init>():37:37 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):40:40 -> <init>
+    3:19:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):26:42 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getClassAccessFlags():143:143 -> getClassAccessFlags
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getClassAnnotation():159:159 -> getClassAnnotation
+    1:1:com.android.tools.r8.shaking.ProguardClassNameList getClassNames():117:117 -> getClassNames
+    1:1:com.android.tools.r8.shaking.ProguardClassType getClassType():126:126 -> getClassType
+    1:1:boolean getClassTypeNegated():135:135 -> getClassTypeNegated
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceAnnotation():109:109 -> getInheritanceAnnotation
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceClassName():101:101 -> getInheritanceClassName
+    1:1:boolean getInheritanceIsExtends():89:89 -> getInheritanceIsExtends
+    1:1:java.util.List getMemberRules():80:80 -> getMemberRules
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedClassAccessFlags():151:151 -> getNegatedClassAccessFlags
+    1:7:com.android.tools.r8.position.Position getPosition():70:76 -> getPosition
+    8:8:com.android.tools.r8.position.Position getPosition():74:74 -> getPosition
+    1:1:boolean hasInheritanceClassName():97:97 -> hasInheritanceClassName
+    1:2:void matchAllSpecification():167:168 -> matchAllSpecification
+    1:1:void setClassAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):147:147 -> setClassAccessFlags
+    1:1:void setClassAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):163:163 -> setClassAnnotation
+    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setClassNames(com.android.tools.r8.shaking.ProguardClassNameList):121:122 -> setClassNames
+    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setClassType(com.android.tools.r8.shaking.ProguardClassType):130:131 -> setClassType
+    1:1:void setClassTypeNegated(boolean):139:139 -> setClassTypeNegated
+    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setEnd(com.android.tools.r8.position.Position):60:61 -> setEnd
+    1:1:void setInheritanceAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):113:113 -> setInheritanceAnnotation
+    1:1:void setInheritanceClassName(com.android.tools.r8.shaking.ProguardTypeMatcher):105:105 -> setInheritanceClassName
+    1:1:void setInheritanceIsExtends(boolean):93:93 -> setInheritanceIsExtends
+    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setMemberRules(java.util.List):84:85 -> setMemberRules
+    1:1:void setNegatedClassAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):155:155 -> setNegatedClassAccessFlags
+    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setOrigin(com.android.tools.r8.origin.Origin):50:51 -> setOrigin
+    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setSource(java.lang.String):65:66 -> setSource
+    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setStart(com.android.tools.r8.position.Position):55:56 -> setStart
+com.android.tools.r8.shaking.ProguardClassType -> com.android.tools.r8.shaking.ProguardClassType:
+    1:25:void <clinit>():10:34 -> <clinit>
+    26:26:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>(java.lang.String,int):9:9 -> <init>
+    2:2:void <init>(java.lang.String,int,com.android.tools.r8.shaking.ProguardClassType$1):9:9 -> <init>
+    1:9:java.lang.String toString():43:51 -> toString
+    1:1:com.android.tools.r8.shaking.ProguardClassType valueOf(java.lang.String):9:9 -> valueOf
+    1:1:com.android.tools.r8.shaking.ProguardClassType[] values():9:9 -> values
+com.android.tools.r8.shaking.ProguardClassType$1 -> com.android.tools.r8.shaking.ProguardClassType$1:
+    1:1:void <init>(java.lang.String,int):10:10 -> <init>
+    1:1:boolean matches(com.android.tools.r8.graph.DexClass):13:13 -> matches
+com.android.tools.r8.shaking.ProguardClassType$2 -> com.android.tools.r8.shaking.ProguardClassType$2:
+    1:1:void <init>(java.lang.String,int):16:16 -> <init>
+com.android.tools.r8.shaking.ProguardClassType$3 -> com.android.tools.r8.shaking.ProguardClassType$3:
+    1:1:void <init>(java.lang.String,int):22:22 -> <init>
+    1:1:boolean matches(com.android.tools.r8.graph.DexClass):25:25 -> matches
+com.android.tools.r8.shaking.ProguardClassType$4 -> com.android.tools.r8.shaking.ProguardClassType$4:
+    1:1:void <init>(java.lang.String,int):28:28 -> <init>
+    1:1:boolean matches(com.android.tools.r8.graph.DexClass):31:31 -> matches
+com.android.tools.r8.shaking.ProguardClassType$5 -> com.android.tools.r8.shaking.ProguardClassType$5:
+    1:1:void <init>(java.lang.String,int):34:34 -> <init>
+com.android.tools.r8.shaking.ProguardClassType$6 -> com.android.tools.r8.shaking.ProguardClassType$6:
+    1:1:void <clinit>():43:43 -> <clinit>
+com.android.tools.r8.shaking.ProguardConfiguration -> com.android.tools.r8.shaking.ProguardConfiguration:
+    1:1:void <init>(java.lang.String,com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.List,com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode,java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,java.nio.file.Path,boolean,java.nio.file.Path,boolean,java.nio.file.Path,java.nio.file.Path,boolean,java.lang.String,com.android.tools.r8.shaking.ProguardKeepAttributes,com.android.tools.r8.shaking.ProguardPackageNameList,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardClassFilter,java.util.Set,boolean,java.nio.file.Path,boolean,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,boolean,boolean,int,com.android.tools.r8.shaking.ProguardKeepRule,com.android.tools.r8.shaking.ProguardConfiguration$1):20:20 -> <init>
+    2:42:void <init>(java.lang.String,com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.List,com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode,java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,java.nio.file.Path,boolean,java.nio.file.Path,boolean,java.nio.file.Path,java.nio.file.Path,boolean,java.lang.String,com.android.tools.r8.shaking.ProguardKeepAttributes,com.android.tools.r8.shaking.ProguardPackageNameList,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardClassFilter,java.util.Set,boolean,java.nio.file.Path,boolean,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,boolean,boolean,int,com.android.tools.r8.shaking.ProguardKeepRule):477:517 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder builder(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):525:525 -> builder
+    1:1:com.android.tools.r8.shaking.ProguardClassFilter getAdaptClassStrings():653:653 -> getAdaptClassStrings
+    1:1:com.android.tools.r8.shaking.ProguardPathFilter getAdaptResourceFileContents():661:661 -> getAdaptResourceFileContents
+    1:1:com.android.tools.r8.shaking.ProguardPathFilter getAdaptResourceFilenames():657:657 -> getAdaptResourceFilenames
+    1:1:java.nio.file.Path getApplyMappingFile():569:569 -> getApplyMappingFile
+    1:1:java.util.List getClassObfuscationDictionary():641:641 -> getClassObfuscationDictionary
+    1:1:com.android.tools.r8.graph.DexItemFactory getDexItemFactory():533:533 -> getDexItemFactory
+    1:1:com.android.tools.r8.shaking.ProguardClassFilter getDontNotePatterns():625:625 -> getDontNotePatterns
+    1:1:com.android.tools.r8.shaking.ProguardClassFilter getDontWarnPatterns():621:621 -> getDontWarnPatterns
+    1:1:java.util.List getInjars():537:537 -> getInjars
+    1:1:com.android.tools.r8.shaking.ProguardKeepRule getKeepAllRule():689:689 -> getKeepAllRule
+    1:1:com.android.tools.r8.shaking.ProguardKeepAttributes getKeepAttributes():613:613 -> getKeepAttributes
+    1:1:com.android.tools.r8.shaking.ProguardPathFilter getKeepDirectories():665:665 -> getKeepDirectories
+    1:1:com.android.tools.r8.shaking.ProguardPackageNameList getKeepPackageNamesPatterns():617:617 -> getKeepPackageNamesPatterns
+    1:1:java.util.List getLibraryjars():541:541 -> getLibraryjars
+    1:1:int getMaxRemovedAndroidLogLevel():685:685 -> getMaxRemovedAndroidLogLevel
+    1:1:java.util.List getObfuscationDictionary():637:637 -> getObfuscationDictionary
+    1:1:java.util.List getPackageObfuscationDictionary():645:645 -> getPackageObfuscationDictionary
+    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode getPackageObfuscationMode():545:545 -> getPackageObfuscationMode
+    1:1:java.lang.String getPackagePrefix():549:549 -> getPackagePrefix
+    1:1:java.lang.String getParsedConfiguration():529:529 -> getParsedConfiguration
+    1:1:java.nio.file.Path getPrintConfigurationFile():593:593 -> getPrintConfigurationFile
+    1:1:java.nio.file.Path getPrintMappingFile():561:561 -> getPrintMappingFile
+    1:1:java.nio.file.Path getPrintUsageFile():601:601 -> getPrintUsageFile
+    1:1:java.lang.String getRenameSourceFileAttribute():609:609 -> getRenameSourceFileAttribute
+    1:1:java.util.List getRules():629:629 -> getRules
+    1:1:java.nio.file.Path getSeedFile():673:673 -> getSeedFile
+    1:1:boolean hasApplyMappingFile():565:565 -> hasApplyMappingFile
+    1:1:boolean hasDontUseMixedCaseClassnames():681:681 -> hasDontUseMixedCaseClassnames
+    1:1:boolean isAccessModificationAllowed():553:553 -> isAccessModificationAllowed
+    1:1:boolean isConfigurationDebugging():677:677 -> isConfigurationDebugging
+    1:1:boolean isIgnoreWarnings():573:573 -> isIgnoreWarnings
+    1:1:boolean isKeepParameterNames():649:649 -> isKeepParameterNames
+    1:1:boolean isObfuscating():581:581 -> isObfuscating
+    1:1:boolean isOptimizing():577:577 -> isOptimizing
+    1:1:boolean isOverloadAggressively():633:633 -> isOverloadAggressively
+    1:1:boolean isPrintConfiguration():589:589 -> isPrintConfiguration
+    1:1:boolean isPrintMapping():557:557 -> isPrintMapping
+    1:1:boolean isPrintSeeds():669:669 -> isPrintSeeds
+    1:1:boolean isPrintUsage():597:597 -> isPrintUsage
+    1:1:boolean isShrinking():585:585 -> isShrinking
+    1:1:boolean isVerbose():605:605 -> isVerbose
+    1:10:java.lang.String toString():694:703 -> toString
+com.android.tools.r8.shaking.ProguardConfiguration$Builder -> com.android.tools.r8.shaking.ProguardConfiguration$Builder:
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,com.android.tools.r8.shaking.ProguardConfiguration$1):22:22 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):76:76 -> <init>
+    3:57:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):24:78 -> <init>
+    1:1:void addAdaptClassStringsPattern(com.android.tools.r8.shaking.ProguardClassNameList):250:250 -> addAdaptClassStringsPattern
+    1:1:void addAdaptResourceFileContents(com.android.tools.r8.shaking.ProguardPathList):258:258 -> addAdaptResourceFileContents
+    1:1:void addAdaptResourceFilenames(com.android.tools.r8.shaking.ProguardPathList):254:254 -> addAdaptResourceFilenames
+    1:1:void addDontNotePattern(com.android.tools.r8.shaking.ProguardClassNameList):202:202 -> addDontNotePattern
+    1:1:void addDontWarnPattern(com.android.tools.r8.shaking.ProguardClassNameList):198:198 -> addDontWarnPattern
+    1:1:void addInjars(java.util.List):86:86 -> addInjars
+    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder addKeepAttributePatterns(java.util.List):185:185 -> addKeepAttributePatterns
+    1:1:void addKeepDirectories(com.android.tools.r8.shaking.ProguardPathList):266:266 -> addKeepDirectories
+    1:1:void addKeepPackageNamesPattern(boolean,com.android.tools.r8.shaking.ProguardPackageMatcher):194:194 -> addKeepPackageNamesPattern
+    1:1:void addLibraryJars(java.util.List):90:90 -> addLibraryJars
+    1:1:void addParsedConfiguration(java.lang.String):82:82 -> addParsedConfiguration
+    1:1:void addRule(com.android.tools.r8.shaking.ProguardConfigurationRule):190:190 -> addRule
+    1:24:com.android.tools.r8.shaking.ProguardConfiguration build():369:392 -> build
+    1:44:com.android.tools.r8.shaking.ProguardConfiguration buildRaw():320:363 -> buildRaw
+    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableObfuscation():121:121 -> disableObfuscation
+    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableOptimization():116:116 -> disableOptimization
+    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableShrinking():138:138 -> disableShrinking
+    1:1:void enableKeepDirectories():262:262 -> enableKeepDirectories
+    1:1:void enableKeepRuleSynthesisForRecompilation():278:278 -> enableKeepRuleSynthesisForRecompilation
+    1:1:com.android.tools.r8.origin.Origin getKeepParameterNamesOptionOrigin():242:242 -> getKeepParameterNamesOptionOrigin
+    1:1:com.android.tools.r8.position.Position getKeepParameterNamesOptionPosition():246:246 -> getKeepParameterNamesOptionPosition
+    1:1:int getMaxRemovedAndroidLogLevel():294:294 -> getMaxRemovedAndroidLogLevel
+    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode getPackageObfuscationMode():94:94 -> getPackageObfuscationMode
+    1:1:boolean hasApplyMappingFile():173:173 -> hasApplyMappingFile
+    1:1:boolean isConfigurationDebugging():286:286 -> isConfigurationDebugging
+    1:1:boolean isKeepParameterNames():238:238 -> isKeepParameterNames
+    1:1:boolean isObfuscating():126:126 -> isObfuscating
+    1:1:boolean isOptimizing():130:130 -> isOptimizing
+    1:1:boolean isOverloadAggressively():226:226 -> isOverloadAggressively
+    1:1:boolean isShrinking():134:134 -> isShrinking
+    1:3:void lambda$build$1(com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder):380:382 -> lambda$build$1
+    1:1:java.lang.String[] lambda$synthesizeKeepRulesForRecompilation$0(int):315:315 -> lambda$synthesizeKeepRulesForRecompilation$0
+    1:1:void setAllowAccessModification(boolean):108:108 -> setAllowAccessModification
+    1:1:void setApplyMappingFile(java.nio.file.Path):169:169 -> setApplyMappingFile
+    1:1:void setClassObfuscationDictionary(java.nio.file.Path):218:218 -> setClassObfuscationDictionary
+    1:1:void setConfigurationDebugging(boolean):282:282 -> setConfigurationDebugging
+    1:1:void setDontUseMixedCaseClassnames(boolean):290:290 -> setDontUseMixedCaseClassnames
+    1:2:void setFlattenPackagePrefix(java.lang.String):103:104 -> setFlattenPackagePrefix
+    1:1:void setForceProguardCompatibility(boolean):270:270 -> setForceProguardCompatibility
+    1:1:void setIgnoreWarnings(boolean):112:112 -> setIgnoreWarnings
+    1:4:void setKeepParameterNames(boolean,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):231:234 -> setKeepParameterNames
+    1:1:void setMaxRemovedAndroidLogLevel(int):298:298 -> setMaxRemovedAndroidLogLevel
+    1:1:void setObfuscationDictionary(java.nio.file.Path):214:214 -> setObfuscationDictionary
+    1:1:void setOverloadAggressively(boolean):274:274 -> setOverloadAggressively
+    1:1:void setPackageObfuscationDictionary(java.nio.file.Path):222:222 -> setPackageObfuscationDictionary
+    1:2:void setPackagePrefix(java.lang.String):98:99 -> setPackagePrefix
+    1:1:void setPrintConfiguration(boolean):143:143 -> setPrintConfiguration
+    1:2:void setPrintConfigurationFile(java.nio.file.Path):147:148 -> setPrintConfigurationFile
+    1:1:void setPrintMapping(boolean):160:160 -> setPrintMapping
+    1:2:void setPrintMappingFile(java.nio.file.Path):164:165 -> setPrintMappingFile
+    1:1:void setPrintSeeds(boolean):210:210 -> setPrintSeeds
+    1:1:void setPrintUsage(boolean):152:152 -> setPrintUsage
+    1:1:void setPrintUsageFile(java.nio.file.Path):156:156 -> setPrintUsageFile
+    1:1:void setRenameSourceFileAttribute(java.lang.String):181:181 -> setRenameSourceFileAttribute
+    1:1:void setSeedFile(java.nio.file.Path):206:206 -> setSeedFile
+    1:1:void setVerbose(boolean):177:177 -> setVerbose
+    1:10:void synthesizeKeepRulesForRecompilation():306:315 -> synthesizeKeepRulesForRecompilation
+    11:11:void synthesizeKeepRulesForRecompilation():312:312 -> synthesizeKeepRulesForRecompilation
+    12:12:void synthesizeKeepRulesForRecompilation():311:311 -> synthesizeKeepRulesForRecompilation
+com.android.tools.r8.shaking.ProguardConfigurationParser -> com.android.tools.r8.shaking.ProguardConfigurationParser:
+    1:51:void <clinit>():55:105 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):109:109 -> <init>
+    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,boolean):113:118 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder access$000(com.android.tools.r8.shaking.ProguardConfigurationParser):46:46 -> access$000
+    1:1:com.android.tools.r8.utils.Reporter access$100(com.android.tools.r8.shaking.ProguardConfigurationParser):46:46 -> access$100
+    1:1:java.util.List access$1000():46:46 -> access$1000
+    1:1:java.util.List access$1100():46:46 -> access$1100
+    1:1:com.android.tools.r8.graph.DexItemFactory access$1200(com.android.tools.r8.shaking.ProguardConfigurationParser):46:46 -> access$1200
+    1:1:java.lang.String access$1300(com.android.tools.r8.shaking.ProguardConfigurationParser,java.lang.String,com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):46:46 -> access$1300
+    1:1:boolean access$200(com.android.tools.r8.shaking.ProguardConfigurationParser):46:46 -> access$200
+    1:1:java.util.List access$300():46:46 -> access$300
+    1:1:java.util.List access$400():46:46 -> access$400
+    1:1:java.util.List access$500():46:46 -> access$500
+    1:1:java.util.List access$600():46:46 -> access$600
+    1:1:java.util.List access$700():46:46 -> access$700
+    1:1:java.util.List access$800():46:46 -> access$800
+    1:1:java.util.List access$900():46:46 -> access$900
+    1:2:com.android.tools.r8.shaking.ProguardConfiguration getConfig():154:155 -> getConfig
+    1:2:com.android.tools.r8.shaking.ProguardConfiguration getConfigRawForTesting():163:164 -> getConfigRawForTesting
+    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder getConfigurationBuilder():122:122 -> getConfigurationBuilder
+    1:7:java.lang.String getTextSourceSnippet(java.lang.String,com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):2086:2092 -> getTextSourceSnippet
+    1:1:void parse(java.nio.file.Path):168:168 -> parse
+    2:2:void parse(com.android.tools.r8.shaking.ProguardConfigurationSource):172:172 -> parse
+    3:10:void parse(java.util.List):176:183 -> parse
+    11:13:void parse(java.util.List):180:180 -> parse
+    19:19:void parse(java.util.List):186:186 -> parse
+    1:7:void validate():126:132 -> validate
+    8:10:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> validate
+    8:10:void validate():129 -> validate
+    11:22:void validate():134:145 -> validate
+com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards -> com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards:
+    1:3:void <init>(java.lang.String,java.util.List):2100:2102 -> <init>
+    1:2:boolean hasBackreference():2114:2115 -> hasBackreference
+    1:15:boolean hasUnusualCharacters():2119:2133 -> hasUnusualCharacters
+    1:1:boolean isMatchAllNames():2110:2110 -> isMatchAllNames
+    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards withoutWildcards(java.lang.String):2106:2106 -> withoutWildcards
+com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation -> com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation:
+    1:3:void <init>(java.lang.String,java.util.List,boolean):2144:2146 -> <init>
+com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType -> com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType:
+    1:3:void <clinit>():190:192 -> <clinit>
+    4:4:void <clinit>():189:189 -> <clinit>
+    1:1:void <init>(java.lang.String,int):189:189 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType valueOf(java.lang.String):189:189 -> valueOf
+    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType[] values():189:189 -> values
+com.android.tools.r8.shaking.ProguardConfigurationParser$ProguardConfigurationSourceParser -> com.android.tools.r8.shaking.ProguardConfigurationParser$ProguardConfigurationSourceParser:
+    1:1:void <clinit>():195:195 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):205:205 -> <init>
+    2:1452:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):198:1648 -> <init>
+    1453:1456:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):207:210 -> <init>
+    1:7:boolean acceptArobaseInclude():565:571 -> acceptArobaseInclude
+    1:2:boolean acceptChar(char):1557:1558 -> acceptChar
+    1:1:java.lang.String acceptClassName():1656:1656 -> acceptClassName
+    1:22:java.lang.String acceptFieldNameOrIntegerForReturn():1788:1809 -> acceptFieldNameOrIntegerForReturn
+    1:6:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType):1661:1666 -> acceptIdentifierWithBackreference
+    7:33:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1671:1697 -> acceptIdentifierWithBackreference
+    34:35:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1692:1693 -> acceptIdentifierWithBackreference
+    36:38:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
+    36:38:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1692 -> acceptIdentifierWithBackreference
+    39:41:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1700:1702 -> acceptIdentifierWithBackreference
+    42:44:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
+    42:44:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1700 -> acceptIdentifierWithBackreference
+    45:51:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1706:1712 -> acceptIdentifierWithBackreference
+    52:54:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
+    52:54:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1711 -> acceptIdentifierWithBackreference
+    55:98:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1723:1766 -> acceptIdentifierWithBackreference
+    99:101:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
+    99:101:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1762 -> acceptIdentifierWithBackreference
+    102:102:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1756:1756 -> acceptIdentifierWithBackreference
+    103:130:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1751:1778 -> acceptIdentifierWithBackreference
+    131:133:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
+    131:133:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1777 -> acceptIdentifierWithBackreference
+    134:135:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1783:1784 -> acceptIdentifierWithBackreference
+    1:5:java.lang.Integer acceptInteger():1631:1635 -> acceptInteger
+    1:1:java.lang.String acceptPattern():1846:1846 -> acceptPattern
+    1:28:java.util.List acceptPatternList():1813:1840 -> acceptPatternList
+    1:1:char acceptQuoteIfPresent():1566:1566 -> acceptQuoteIfPresent
+    1:4:java.lang.String acceptQuotedOrUnquotedString():1622:1625 -> acceptQuotedOrUnquotedString
+    1:9:boolean acceptString(java.lang.String):1605:1613 -> acceptString
+    10:10:java.lang.String acceptString():1618:1618 -> acceptString
+    11:25:java.lang.String acceptString(java.util.function.Predicate):1855:1869 -> acceptString
+    1:10:void checkConstructorPattern(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.position.TextPosition):1310:1319 -> checkConstructorPattern
+    11:11:void checkConstructorPattern(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.position.TextPosition):1316:1316 -> checkConstructorPattern
+    1:1:boolean eof():1531:1531 -> eof
+    2:2:boolean eof(int):1535:1535 -> eof
+    1:2:void expectChar(char):1599:1600 -> expectChar
+    1:5:void expectClosingQuote(char):1570:1574 -> expectClosingQuote
+    6:6:void expectClosingQuote(char):1572:1572 -> expectClosingQuote
+    1:1:int getColumn():2075:2075 -> getColumn
+    1:4:com.android.tools.r8.position.Position getPosition(com.android.tools.r8.position.TextPosition):2063:2066 -> getPosition
+    5:5:com.android.tools.r8.position.TextPosition getPosition():2071:2071 -> getPosition
+    1:2:java.lang.String getSourceSnippet(java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.position.Position):2079:2080 -> getSourceSnippet
+    1:4:boolean hasNextChar(char):1539:1542 -> hasNextChar
+    5:8:boolean hasNextChar(java.util.function.Predicate):1546:1549 -> hasNextChar
+    1:3:void infoIgnoringModifier(java.lang.String,com.android.tools.r8.position.TextPosition):2058:2058 -> infoIgnoringModifier
+    1:3:void infoIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):2033:2033 -> infoIgnoringOptions
+    1:2:boolean isInteger(java.lang.String):1522:1523 -> isInteger
+    1:1:boolean isOptionalArgumentGiven():1553:1553 -> isOptionalArgumentGiven
+    1:4:boolean lambda$acceptPattern$7(java.lang.Integer):1848:1851 -> lambda$acceptPattern$7
+    1:1:boolean lambda$acceptQuotedOrUnquotedString$4(char,java.lang.Integer):1623:1623 -> lambda$acceptQuotedOrUnquotedString$4
+    1:1:boolean lambda$acceptString$3(java.lang.Integer):1618:1618 -> lambda$acceptString$3
+    1:7:boolean lambda$new$5(java.lang.Integer):1640:1646 -> lambda$new$5
+    1:4:boolean lambda$new$6(java.lang.Integer):1650:1653 -> lambda$new$6
+    1:2:boolean lambda$parseFileFilter$2(java.lang.Integer):1455:1456 -> lambda$parseFileFilter$2
+    1:4:boolean lambda$parseFileName$1(boolean,char,boolean,java.lang.Integer):1397:1400 -> lambda$parseFileName$1
+    1:1:boolean lambda$skipOptimizationName$0(java.lang.Integer):657:657 -> lambda$skipOptimizationName$0
+    1:6:void parse():215:220 -> parse
+    7:12:void parse():219:224 -> parse
+    1:13:com.android.tools.r8.shaking.ProguardTypeMatcher parseAnnotation():953:965 -> parseAnnotation
+    14:14:com.android.tools.r8.shaking.ProguardTypeMatcher parseAnnotation():964:964 -> parseAnnotation
+    1:12:java.util.List parseArgumentList():1325:1336 -> parseArgumentList
+    13:22:java.util.List parseArgumentList():1333:1342 -> parseArgumentList
+    23:25:java.util.List parseArgumentList():1341:1343 -> parseArgumentList
+    26:33:java.util.List parseArgumentList():1340:1347 -> parseArgumentList
+    1:6:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule parseAssumeMayHaveSideEffectsRule(com.android.tools.r8.position.Position):1478:1483 -> parseAssumeMayHaveSideEffectsRule
+    1:8:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule parseAssumeNoSideEffectsRule(com.android.tools.r8.position.Position):1465:1472 -> parseAssumeNoSideEffectsRule
+    1:8:com.android.tools.r8.shaking.ProguardAssumeValuesRule parseAssumeValuesRule(com.android.tools.r8.position.Position):1488:1495 -> parseAssumeValuesRule
+    1:8:com.android.tools.r8.shaking.ProguardCheckDiscardRule parseCheckDiscardRule(com.android.tools.r8.position.Position):708:715 -> parseCheckDiscardRule
+    1:6:void parseClassFilter(java.util.function.Consumer):1901:1906 -> parseClassFilter
+    7:7:void parseClassFilter(java.util.function.Consumer):1905:1905 -> parseClassFilter
+    1:23:void parseClassFlagsAndAnnotations(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):978:1000 -> parseClassFlagsAndAnnotations
+    1:6:com.android.tools.r8.shaking.ClassInlineRule parseClassInlineRule(com.android.tools.r8.shaking.ClassInlineRule$Type,com.android.tools.r8.position.Position):721:726 -> parseClassInlineRule
+    1:6:com.android.tools.r8.shaking.ClassMergingRule parseClassMergingRule(com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.position.Position):732:737 -> parseClassMergingRule
+    1:3:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards parseClassName():1933:1935 -> parseClassName
+    4:7:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation parseClassName(boolean):1940:1943 -> parseClassName
+    1:4:void parseClassNameAddToBuilder(com.android.tools.r8.shaking.ProguardClassNameList$Builder):1912:1915 -> parseClassNameAddToBuilder
+    5:8:void parseClassNameAddToBuilder(com.android.tools.r8.shaking.ProguardClassNameList$Builder):1913:1916 -> parseClassNameAddToBuilder
+    1:5:com.android.tools.r8.shaking.ProguardClassNameList parseClassNames():1920:1924 -> parseClassNames
+    1:10:java.util.List parseClassPath():1417:1426 -> parseClassPath
+    1:14:com.android.tools.r8.com.google.common.collect.ImmutableList parseClassPathFilters():1432:1445 -> parseClassPathFilters
+    15:20:com.android.tools.r8.com.google.common.collect.ImmutableList parseClassPathFilters():1442:1447 -> parseClassPathFilters
+    1:5:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):886:890 -> parseClassSpec
+    1:20:void parseClassType(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):1013:1032 -> parseClassType
+    1:2:com.android.tools.r8.utils.StringDiagnostic parseClassTypeUnexpected(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.TextPosition):1008:1009 -> parseClassTypeUnexpected
+    1:6:com.android.tools.r8.shaking.ConstantArgumentRule parseConstantArgumentRule(com.android.tools.r8.position.Position):805:810 -> parseConstantArgumentRule
+    1:1:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String):2013:2013 -> parseError
+    2:2:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,java.lang.Throwable):2017:2017 -> parseError
+    3:4:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.Throwable):2023:2024 -> parseError
+    5:6:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition):2028:2029 -> parseError
+    1:7:java.lang.String parseFileFilter():1452:1458 -> parseFileFilter
+    1:22:java.nio.file.Path parseFileName(boolean):1387:1408 -> parseFileName
+    23:30:java.nio.file.Path parseFileName(boolean):1406:1413 -> parseFileName
+    31:31:java.nio.file.Path parseFileName(boolean):1402:1402 -> parseFileName
+    32:32:java.nio.file.Path parseFileName(boolean):1391:1391 -> parseFileName
+    1:8:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule parseIdentifierNameStringRule(com.android.tools.r8.position.Position):768:775 -> parseIdentifierNameStringRule
+    1:20:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):780:799 -> parseIfRule
+    21:23:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> parseIfRule
+    21:23:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):798 -> parseIfRule
+    1:3:boolean parseIgnoredOption(com.android.tools.r8.position.TextPosition):541:543 -> parseIgnoredOption
+    4:8:boolean parseIgnoredOption(com.android.tools.r8.position.TextPosition):542:546 -> parseIgnoredOption
+    1:8:boolean parseIgnoredOptionAndWarn(com.android.tools.r8.position.TextPosition):521:528 -> parseIgnoredOptionAndWarn
+    9:17:boolean parseIgnoredOptionAndWarn(com.android.tools.r8.position.TextPosition):527:535 -> parseIgnoredOptionAndWarn
+    1:10:void parseInclude():550:559 -> parseInclude
+    11:11:void parseInclude():556:556 -> parseInclude
+    1:11:void parseInheritance(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):1038:1048 -> parseInheritance
+    12:12:void parseInheritance(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):1047:1047 -> parseInheritance
+    1:9:com.android.tools.r8.shaking.InlineRule parseInlineRule(com.android.tools.r8.shaking.InlineRule$Type,com.android.tools.r8.position.Position):754:762 -> parseInlineRule
+    1:5:void parseKeepAttributes():576:580 -> parseKeepAttributes
+    6:6:void parseKeepAttributes():578:578 -> parseKeepAttributes
+    1:11:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):673:683 -> parseKeepRule
+    12:21:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):682:691 -> parseKeepRule
+    1:50:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1080:1129 -> parseMemberAccessFlags
+    51:68:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1117:1134 -> parseMemberAccessFlags
+    69:74:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1108:1113 -> parseMemberAccessFlags
+    75:76:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1103:1104 -> parseMemberAccessFlags
+    77:78:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1098:1099 -> parseMemberAccessFlags
+    79:80:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1093:1094 -> parseMemberAccessFlags
+    81:137:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1088:1144 -> parseMemberAccessFlags
+    1:46:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1152:1197 -> parseMemberPattern
+    47:63:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1192:1208 -> parseMemberPattern
+    64:86:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1203:1225 -> parseMemberPattern
+    87:101:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1224:1238 -> parseMemberPattern
+    102:134:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1237:1269 -> parseMemberPattern
+    135:135:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1268:1268 -> parseMemberPattern
+    136:148:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1266:1278 -> parseMemberPattern
+    149:149:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1277:1277 -> parseMemberPattern
+    150:155:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1276:1281 -> parseMemberPattern
+    156:179:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1280:1303 -> parseMemberPattern
+    1:6:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):1070:1075 -> parseMemberRule
+    1:8:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):1057:1064 -> parseMemberRules
+    1:6:com.android.tools.r8.shaking.MemberValuePropagationRule parseMemberValuePropagationRule(com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.position.Position):744:749 -> parseMemberValuePropagationRule
+    1:2:boolean parseNegation():971:972 -> parseNegation
+    1:9:boolean parseOptimizationOption(com.android.tools.r8.position.TextPosition):637:645 -> parseOptimizationOption
+    1:51:boolean parseOption():228:278 -> parseOption
+    52:53:boolean parseOption():275:276 -> parseOption
+    54:56:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> parseOption
+    54:56:boolean parseOption():275 -> parseOption
+    57:139:boolean parseOption():279:361 -> parseOption
+    140:197:boolean parseOption():360:417 -> parseOption
+    1:10:void parsePackageFilter(java.util.function.BiConsumer):1882:1891 -> parsePackageFilter
+    11:14:void parsePackageFilter(java.util.function.BiConsumer):1890:1893 -> parsePackageFilter
+    15:22:void parsePackageFilter(java.util.function.BiConsumer):1888:1895 -> parsePackageFilter
+    1:1:java.lang.String parsePackageNameOrEmptyString():1928:1928 -> parsePackageNameOrEmptyString
+    1:5:void parsePathFilter(java.util.function.Consumer):1954:1958 -> parsePathFilter
+    6:25:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1963:1982 -> parsePathFilter
+    26:31:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1979:1984 -> parsePathFilter
+    32:32:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1969:1969 -> parsePathFilter
+    1:6:com.android.tools.r8.shaking.ReprocessClassInitializerRule parseReprocessClassInitializerRule(com.android.tools.r8.position.Position):827:832 -> parseReprocessClassInitializerRule
+    1:6:com.android.tools.r8.shaking.ReprocessMethodRule parseReprocessMethodRule(com.android.tools.r8.shaking.ReprocessMethodRule$Type,com.android.tools.r8.position.Position):838:843 -> parseReprocessMethodRule
+    1:18:void parseRuleModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):931:948 -> parseRuleModifiers
+    1:34:void parseRuleTypeAndModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):894:927 -> parseRuleTypeAndModifiers
+    1:54:boolean parseTestingOption(com.android.tools.r8.position.TextPosition):424:477 -> parseTestingOption
+    55:65:boolean parseTestingOption(com.android.tools.r8.position.TextPosition):476:486 -> parseTestingOption
+    66:72:boolean parseTestingOption(com.android.tools.r8.position.TextPosition):485:491 -> parseTestingOption
+    1:4:boolean parseUnsupportedOptionAndErr(com.android.tools.r8.position.TextPosition):510:513 -> parseUnsupportedOptionAndErr
+    5:5:boolean parseUnsupportedOptionAndErr(com.android.tools.r8.position.TextPosition):512:512 -> parseUnsupportedOptionAndErr
+    1:6:com.android.tools.r8.shaking.UnusedArgumentRule parseUnusedArgumentRule(com.android.tools.r8.position.Position):816:821 -> parseUnusedArgumentRule
+    1:8:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule parseWhyAreYouKeepingRule(com.android.tools.r8.position.Position):696:703 -> parseWhyAreYouKeepingRule
+    1:6:com.android.tools.r8.shaking.WhyAreYouNotInliningRule parseWhyAreYouNotInliningRule(com.android.tools.r8.position.Position):849:854 -> parseWhyAreYouNotInliningRule
+    1:1:boolean pathFilterMatcher(java.lang.Integer):1949:1949 -> pathFilterMatcher
+    1:1:char peekChar():1582:1582 -> peekChar
+    1:2:char peekCharAt(int):1586:1587 -> peekCharAt
+    1:1:char readChar():1591:1591 -> readChar
+    1:1:int remainingChars():1595:1595 -> remainingChars
+    1:21:java.lang.String replaceSystemPropertyReferences(java.lang.String):1353:1373 -> replaceSystemPropertyReferences
+    22:34:java.lang.String replaceSystemPropertyReferences(java.lang.String):1371:1383 -> replaceSystemPropertyReferences
+    1:8:void skipComment():1510:1517 -> skipComment
+    1:3:boolean skipFlag(java.lang.String):584:586 -> skipFlag
+    1:11:void skipOptimizationName():650:660 -> skipOptimizationName
+    1:10:boolean skipOptionWithClassSpec(java.lang.String):619:628 -> skipOptionWithClassSpec
+    1:7:boolean skipOptionWithOptionalSingleArg(java.lang.String):605:611 -> skipOptionWithOptionalSingleArg
+    1:5:boolean skipOptionWithSingleArg(java.lang.String):594:598 -> skipOptionWithSingleArg
+    1:3:void skipSingleArgument():665:667 -> skipSingleArgument
+    1:8:void skipWhitespace():1499:1506 -> skipWhitespace
+    1:10:java.lang.String snippetForPosition():1989:1998 -> snippetForPosition
+    11:17:java.lang.String snippetForPosition():1994:2000 -> snippetForPosition
+    18:21:java.lang.String snippetForPosition(com.android.tools.r8.position.TextPosition):2005:2008 -> snippetForPosition
+    1:4:void unacceptString(java.lang.String):1873:1876 -> unacceptString
+    1:1:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition):499:499 -> unknownOption
+    2:4:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.String):504:506 -> unknownOption
+    5:7:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> unknownOption
+    5:7:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.String):504 -> unknownOption
+    1:13:void verifyAndLinkBackReferences(java.lang.Iterable):858:870 -> verifyAndLinkBackReferences
+    14:17:void verifyAndLinkBackReferences(java.lang.Iterable):865:868 -> verifyAndLinkBackReferences
+    18:20:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> verifyAndLinkBackReferences
+    18:20:void verifyAndLinkBackReferences(java.lang.Iterable):865 -> verifyAndLinkBackReferences
+    21:23:void verifyAndLinkBackReferences(java.lang.Iterable):872:874 -> verifyAndLinkBackReferences
+    1:3:void warnIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):2038:2038 -> warnIgnoringOptions
+    1:3:void warnOverridingOptions(java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):2043:2043 -> warnOverridingOptions
+    1:7:void warnUnusualCharacters(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):2049:2049 -> warnUnusualCharacters
+com.android.tools.r8.shaking.ProguardConfigurationRule -> com.android.tools.r8.shaking.ProguardConfigurationRule:
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):39:39 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):23:23 -> <init>
+    1:5:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):150:154 -> append
+    1:14:boolean equals(java.lang.Object):123:136 -> equals
+    1:12:java.lang.Iterable getWildcards():106:117 -> getWildcards
+    13:13:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable[]):487:487 -> getWildcards
+    13:13:java.lang.Iterable getWildcards():107 -> getWildcards
+    1:5:int hashCode():141:145 -> hashCode
+    1:1:boolean isUsed():45:45 -> isUsed
+    1:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):115:115 -> lambda$getWildcards$0
+    1:1:void markAsUsed():49:49 -> markAsUsed
+    1:5:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):78:82 -> relevantCandidatesForRule
+    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> relevantCandidatesForRule
+    6:6:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):83 -> relevantCandidatesForRule
+    7:10:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):84:87 -> relevantCandidatesForRule
+    11:11:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> relevantCandidatesForRule
+    11:11:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):85 -> relevantCandidatesForRule
+    12:12:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):89:89 -> relevantCandidatesForRule
+com.android.tools.r8.shaking.ProguardConfigurationSourceBytes -> com.android.tools.r8.shaking.ProguardConfigurationSourceBytes:
+    1:3:void <init>(byte[],com.android.tools.r8.origin.Origin):18:20 -> <init>
+    4:4:void <init>(java.io.InputStream,com.android.tools.r8.origin.Origin):24:24 -> <init>
+    1:1:java.lang.String get():29:29 -> get
+    1:1:java.lang.String getName():40:40 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():45:45 -> getOrigin
+com.android.tools.r8.shaking.ProguardConfigurationSourceFile -> com.android.tools.r8.shaking.ProguardConfigurationSourceFile:
+    1:2:void <init>(java.nio.file.Path):18:19 -> <init>
+    1:1:java.lang.String get():24:24 -> get
+    1:5:java.nio.file.Path getBaseDirectory():29:33 -> getBaseDirectory
+    1:1:java.lang.String getName():40:40 -> getName
+    1:1:com.android.tools.r8.origin.Origin getOrigin():45:45 -> getOrigin
+com.android.tools.r8.shaking.ProguardConfigurationSourceStrings -> com.android.tools.r8.shaking.ProguardConfigurationSourceStrings:
+    1:4:void <init>(java.util.List,java.nio.file.Path,com.android.tools.r8.origin.Origin):24:27 -> <init>
+    5:5:void <init>(java.util.List):31:31 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardConfigurationSourceStrings createConfigurationForTesting(java.util.List):37:37 -> createConfigurationForTesting
+    1:1:java.lang.String get():42:42 -> get
+    1:1:java.nio.file.Path getBaseDirectory():47:47 -> getBaseDirectory
+    1:1:com.android.tools.r8.origin.Origin getOrigin():57:57 -> getOrigin
+com.android.tools.r8.shaking.ProguardConfigurationUtils -> com.android.tools.r8.shaking.ProguardConfigurationUtils:
+    1:12:void <clinit>():19:30 -> <clinit>
+    1:1:void <init>():19:19 -> <init>
+    1:19:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):90:108 -> buildAssumeNoSideEffectsRuleForApiLevel
+    20:20:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):107:107 -> buildAssumeNoSideEffectsRuleForApiLevel
+    21:33:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):106:118 -> buildAssumeNoSideEffectsRuleForApiLevel
+    34:37:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):116:119 -> buildAssumeNoSideEffectsRuleForApiLevel
+    38:38:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):110:110 -> buildAssumeNoSideEffectsRuleForApiLevel
+    39:50:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):109:120 -> buildAssumeNoSideEffectsRuleForApiLevel
+    1:9:com.android.tools.r8.shaking.ProguardKeepRule buildDefaultInitializerKeepRule(com.android.tools.r8.graph.DexClass):38:46 -> buildDefaultInitializerKeepRule
+    10:19:com.android.tools.r8.shaking.ProguardKeepRule buildDefaultInitializerKeepRule(com.android.tools.r8.graph.DexClass):45:54 -> buildDefaultInitializerKeepRule
+    1:14:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):60:73 -> buildMethodKeepRule
+    15:21:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):72:78 -> buildMethodKeepRule
+    22:30:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):77:85 -> buildMethodKeepRule
+    1:39:boolean hasExplicitAssumeValuesOrAssumeNoSideEffectsRuleForMinSdk(com.android.tools.r8.graph.DexItemFactory,java.util.List):129:167 -> hasExplicitAssumeValuesOrAssumeNoSideEffectsRuleForMinSdk
+    1:10:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):178:187 -> synthesizeKeepRulesForRecompilation
+    11:16:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):184:189 -> synthesizeKeepRulesForRecompilation
+    17:17:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):180:180 -> synthesizeKeepRulesForRecompilation
+com.android.tools.r8.shaking.ProguardConfigurationUtils$1 -> com.android.tools.r8.shaking.ProguardConfigurationUtils$1:
+    1:1:void <init>(com.android.tools.r8.origin.Origin):22:22 -> <init>
+com.android.tools.r8.shaking.ProguardConfigurationUtils$2 -> com.android.tools.r8.shaking.ProguardConfigurationUtils$2:
+    1:1:void <init>(com.android.tools.r8.origin.Origin):30:30 -> <init>
+com.android.tools.r8.shaking.ProguardConfigurationUtils$3 -> com.android.tools.r8.shaking.ProguardConfigurationUtils$3:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.AndroidApiLevel):91:91 -> <init>
+    1:1:java.lang.String part():94:94 -> part
+com.android.tools.r8.shaking.ProguardIdentifierNameStringRule -> com.android.tools.r8.shaking.ProguardIdentifierNameStringRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):45:45 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder builder():51:51 -> builder
+com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder -> com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$1):12:12 -> <init>
+    2:2:void <init>():15:15 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:2:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule build():25:25 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.ProguardIfRule -> com.android.tools.r8.shaking.ProguardIfRule:
+    1:2:void <clinit>():18:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule,java.util.Set,com.android.tools.r8.shaking.ProguardIfRule$1):16:16 -> <init>
+    2:6:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule,java.util.Set):88:88 -> <init>
+    10:11:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule,java.util.Set):92:93 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardIfRule$Builder builder():97:97 -> builder
+    1:8:boolean equals(java.lang.Object):207:214 -> equals
+    1:1:java.util.Set getPreconditions():30:30 -> getPreconditions
+    1:1:java.lang.Iterable getWildcards():102:102 -> getWildcards
+    2:2:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> getWildcards
+    2:2:java.lang.Iterable getWildcards():102 -> getWildcards
+    1:1:int hashCode():219:219 -> hashCode
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule lambda$materialize$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardMemberRule):127:127 -> lambda$materialize$0
+    1:1:boolean lambda$neverInlineRuleForCondition$1(com.android.tools.r8.shaking.ProguardMemberRule):199:199 -> lambda$neverInlineRuleForCondition$1
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule lambda$neverInlineRuleForCondition$2(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardMemberRule):200:200 -> lambda$neverInlineRuleForCondition$2
+    1:23:com.android.tools.r8.shaking.ProguardIfRule materialize(com.android.tools.r8.graph.DexItemFactory,java.util.Set):107:129 -> materialize
+    1:18:com.android.tools.r8.shaking.ClassInlineRule neverClassInlineRuleForCondition(com.android.tools.r8.graph.DexItemFactory):134:151 -> neverClassInlineRuleForCondition
+    1:24:com.android.tools.r8.shaking.InlineRule neverInlineRuleForCondition(com.android.tools.r8.graph.DexItemFactory):178:201 -> neverInlineRuleForCondition
+com.android.tools.r8.shaking.ProguardIfRule$1 -> com.android.tools.r8.shaking.ProguardIfRule$1:
+    1:1:void <init>(com.android.tools.r8.origin.Origin):19:19 -> <init>
+com.android.tools.r8.shaking.ProguardIfRule$Builder -> com.android.tools.r8.shaking.ProguardIfRule$Builder:
+    1:1:void <clinit>():33:33 -> <clinit>
+    1:1:void <init>():38:38 -> <init>
+    2:2:void <init>():35:35 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():33:33 -> build
+    2:5:com.android.tools.r8.shaking.ProguardIfRule build():52:55 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():33:33 -> self
+    1:1:void setSubsequentRule(com.android.tools.r8.shaking.ProguardKeepRule):47:47 -> setSubsequentRule
+com.android.tools.r8.shaking.ProguardKeepAttributes -> com.android.tools.r8.shaking.ProguardKeepAttributes:
+    1:1:void <clinit>():36:36 -> <clinit>
+    1:1:void <init>():58:58 -> <init>
+    2:20:void <init>():38:56 -> <init>
+    1:53:java.lang.StringBuilder append(java.lang.StringBuilder):238:290 -> append
+    1:25:void applyPatterns(java.util.List):116:140 -> applyPatterns
+    1:7:void ensureValid(boolean):144:150 -> ensureValid
+    8:8:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> ensureValid
+    8:8:void ensureValid(boolean):150 -> ensureValid
+    9:12:void ensureValid(boolean):150:153 -> ensureValid
+    13:13:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> ensureValid
+    13:13:void ensureValid(boolean):153 -> ensureValid
+    14:17:void ensureValid(boolean):153:156 -> ensureValid
+    18:18:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> ensureValid
+    18:18:void ensureValid(boolean):156 -> ensureValid
+    19:27:void ensureValid(boolean):156:164 -> ensureValid
+    28:28:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> ensureValid
+    28:28:void ensureValid(boolean):164 -> ensureValid
+    29:29:void ensureValid(boolean):164:164 -> ensureValid
+    1:5:boolean equals(java.lang.Object):176:180 -> equals
+    1:3:com.android.tools.r8.shaking.ProguardKeepAttributes filterOnlySignatures():62:64 -> filterOnlySignatures
+    1:2:com.android.tools.r8.shaking.ProguardKeepAttributes fromPatterns(java.util.List):110:111 -> fromPatterns
+    1:16:int hashCode():200:215 -> hashCode
+    1:1:boolean isEmpty():219:219 -> isEmpty
+    1:17:boolean matches(java.lang.String,int,java.lang.String,int):90:106 -> matches
+    1:1:java.lang.String toString():298:298 -> toString
+    1:10:boolean update(boolean,java.lang.String,java.util.List):74:83 -> update
+com.android.tools.r8.shaking.ProguardKeepRule -> com.android.tools.r8.shaking.ProguardKeepRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRuleType,com.android.tools.r8.shaking.ProguardKeepRuleModifiers):50:50 -> <init>
+    1:8:void appendNonEmpty(java.lang.StringBuilder,java.lang.String,java.lang.Object,java.lang.String):102:109 -> appendNonEmpty
+    1:1:com.android.tools.r8.shaking.ProguardKeepRule$Builder builder():59:59 -> builder
+    1:3:com.android.tools.r8.shaking.ProguardKeepRule defaultKeepAllRule(java.util.function.Consumer):116:118 -> defaultKeepAllRule
+    4:15:com.android.tools.r8.shaking.ProguardKeepRule defaultKeepAllRule(java.util.function.Consumer):117:128 -> defaultKeepAllRule
+    1:5:boolean equals(java.lang.Object):91:95 -> equals
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule lambda$materialize$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardMemberRule):83:83 -> lambda$materialize$0
+    1:24:com.android.tools.r8.shaking.ProguardKeepRule materialize(com.android.tools.r8.graph.DexItemFactory):63:86 -> materialize
+com.android.tools.r8.shaking.ProguardKeepRule$1 -> com.android.tools.r8.shaking.ProguardKeepRule$1:
+    1:1:void <init>(com.android.tools.r8.origin.Origin):118:118 -> <init>
+com.android.tools.r8.shaking.ProguardKeepRule$Builder -> com.android.tools.r8.shaking.ProguardKeepRule$Builder:
+    1:1:void <init>():18:18 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():15:15 -> build
+    2:4:com.android.tools.r8.shaking.ProguardKeepRule build():28:30 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():15:15 -> self
+com.android.tools.r8.shaking.ProguardKeepRuleBase -> com.android.tools.r8.shaking.ProguardKeepRuleBase:
+    1:5:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRuleType,com.android.tools.r8.shaking.ProguardKeepRuleModifiers):58:62 -> <init>
+    1:8:void appendNonEmpty(java.lang.StringBuilder,java.lang.String,java.lang.Object,java.lang.String):102:109 -> appendNonEmpty
+    1:12:boolean equals(java.lang.Object):75:86 -> equals
+    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers getModifiers():70:70 -> getModifiers
+    1:1:com.android.tools.r8.shaking.ProguardKeepRuleType getType():66:66 -> getType
+    1:3:int hashCode():92:94 -> hashCode
+    1:1:java.lang.String modifierString():121:121 -> modifierString
+    1:1:java.lang.String typeString():116:116 -> typeString
+com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder -> com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder:
+    1:1:void <init>():21:21 -> <init>
+    2:2:void <init>():18:18 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder getModifiersBuilder():30:30 -> getModifiersBuilder
+    1:2:com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder setType(com.android.tools.r8.shaking.ProguardKeepRuleType):25:26 -> setType
+    1:2:com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder updateModifiers(java.util.function.Consumer):34:35 -> updateModifiers
+com.android.tools.r8.shaking.ProguardKeepRuleModifiers -> com.android.tools.r8.shaking.ProguardKeepRuleModifiers:
+    1:1:void <init>(boolean,boolean,boolean,boolean,com.android.tools.r8.shaking.ProguardKeepRuleModifiers$1):6:6 -> <init>
+    2:6:void <init>(boolean,boolean,boolean,boolean):48:52 -> <init>
+    1:4:void appendWithComma(java.lang.StringBuilder,boolean,java.lang.String):97:100 -> appendWithComma
+    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder builder():58:58 -> builder
+    1:6:boolean equals(java.lang.Object):63:68 -> equals
+    1:4:int hashCode():76:79 -> hashCode
+    1:6:java.lang.String toString():84:89 -> toString
+com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder -> com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardKeepRuleModifiers$1):7:7 -> <init>
+    2:2:void <init>():14:14 -> <init>
+    3:6:void <init>():9:12 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers build():34:34 -> build
+    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder setAllowsObfuscation(boolean):25:25 -> setAllowsObfuscation
+    1:1:void setAllowsOptimization(boolean):21:21 -> setAllowsOptimization
+    1:1:void setAllowsShrinking(boolean):17:17 -> setAllowsShrinking
+    1:1:void setIncludeDescriptorClasses(boolean):30:30 -> setIncludeDescriptorClasses
+com.android.tools.r8.shaking.ProguardKeepRuleType -> com.android.tools.r8.shaking.ProguardKeepRuleType:
+    1:4:void <clinit>():9:12 -> <clinit>
+    5:5:void <clinit>():8:8 -> <clinit>
+    1:1:void <init>(java.lang.String,int):8:8 -> <init>
+    1:11:java.lang.String toString():16:26 -> toString
+    1:1:com.android.tools.r8.shaking.ProguardKeepRuleType valueOf(java.lang.String):8:8 -> valueOf
+    1:1:com.android.tools.r8.shaking.ProguardKeepRuleType[] values():8:8 -> values
+com.android.tools.r8.shaking.ProguardKeepRuleType$1 -> com.android.tools.r8.shaking.ProguardKeepRuleType$1:
+    1:1:void <clinit>():16:16 -> <clinit>
+com.android.tools.r8.shaking.ProguardMemberRule -> com.android.tools.r8.shaking.ProguardMemberRule:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardMemberType,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardNameMatcher,java.util.List,com.android.tools.r8.shaking.ProguardMemberRuleReturnValue,com.android.tools.r8.shaking.ProguardMemberRule$1):22:22 -> <init>
+    2:10:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardMemberType,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardNameMatcher,java.util.List,com.android.tools.r8.shaking.ProguardMemberRuleReturnValue):115:123 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder builder():130:130 -> builder
+    1:3:com.android.tools.r8.shaking.ProguardMemberRule defaultKeepAllRule():408:410 -> defaultKeepAllRule
+    1:25:boolean equals(java.lang.Object):322:346 -> equals
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getAccessFlags():138:138 -> getAccessFlags
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getAnnotation():134:134 -> getAnnotation
+    1:1:java.util.List getArguments():158:158 -> getArguments
+    1:1:com.android.tools.r8.shaking.ProguardNameMatcher getName():154:154 -> getName
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedAccessFlags():142:142 -> getNegatedAccessFlags
+    1:1:com.android.tools.r8.shaking.ProguardMemberRuleReturnValue getReturnValue():166:166 -> getReturnValue
+    1:1:com.android.tools.r8.shaking.ProguardMemberType getRuleType():146:146 -> getRuleType
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getType():150:150 -> getType
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getTypeMatcher():170:170 -> getTypeMatcher
+    1:10:java.lang.Iterable getWildcards():291:300 -> getWildcards
+    11:11:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):469:469 -> getWildcards
+    11:11:java.lang.Iterable getWildcards():291 -> getWildcards
+    1:1:boolean hasReturnValue():162:162 -> hasReturnValue
+    1:7:int hashCode():351:357 -> hashCode
+    1:9:boolean isSpecific():278:286 -> isSpecific
+    1:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):298:298 -> lambda$getWildcards$0
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher lambda$materialize$1(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardTypeMatcher):315:315 -> lambda$materialize$1
+    1:28:boolean matches(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):174:201 -> matches
+    29:77:boolean matches(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):216:264 -> matches
+    78:89:boolean matches(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):219:230 -> matches
+    1:13:com.android.tools.r8.shaking.ProguardMemberRule materialize(com.android.tools.r8.graph.DexItemFactory):305:317 -> materialize
+    1:37:java.lang.String toString():363:399 -> toString
+    38:47:java.lang.String toString():376:385 -> toString
+    48:66:java.lang.String toString():373:391 -> toString
+    67:101:java.lang.String toString():370:404 -> toString
+com.android.tools.r8.shaking.ProguardMemberRule$1 -> com.android.tools.r8.shaking.ProguardMemberRule$1:
+    1:1:void <clinit>():175:175 -> <clinit>
+com.android.tools.r8.shaking.ProguardMemberRule$Builder -> com.android.tools.r8.shaking.ProguardMemberRule$Builder:
+    1:1:void <clinit>():24:24 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardMemberRule$1):24:24 -> <init>
+    2:2:void <init>():35:35 -> <init>
+    3:4:void <init>():27:28 -> <init>
+    1:2:com.android.tools.r8.shaking.ProguardMemberRule build():92:93 -> build
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getAccessFlags():42:42 -> getAccessFlags
+    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedAccessFlags():51:51 -> getNegatedAccessFlags
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getTypeMatcher():64:64 -> getTypeMatcher
+    1:1:boolean isValid():88:88 -> isValid
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):46:46 -> setAccessFlags
+    1:1:void setAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):38:38 -> setAnnotation
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setArguments(java.util.List):78:78 -> setArguments
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setName(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):73:73 -> setName
+    1:1:void setNegatedAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):55:55 -> setNegatedAccessFlags
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setReturnValue(com.android.tools.r8.shaking.ProguardMemberRuleReturnValue):83:83 -> setReturnValue
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setRuleType(com.android.tools.r8.shaking.ProguardMemberType):59:59 -> setRuleType
+    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setTypeMatcher(com.android.tools.r8.shaking.ProguardTypeMatcher):68:68 -> setTypeMatcher
+com.android.tools.r8.shaking.ProguardMemberRuleReturnValue -> com.android.tools.r8.shaking.ProguardMemberRuleReturnValue:
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:5:void <init>(boolean):23:27 -> <init>
+    6:10:void <init>(com.android.tools.r8.utils.LongInterval):30:34 -> <init>
+    11:15:void <init>(com.android.tools.r8.graph.DexField):37:41 -> <init>
+    16:20:void <init>():44:48 -> <init>
+    1:2:boolean getBoolean():68:69 -> getBoolean
+    1:2:com.android.tools.r8.graph.DexField getField():105:106 -> getField
+    1:8:long getSingleValue():89:96 -> getSingleValue
+    1:2:com.android.tools.r8.utils.LongInterval getValueRange():100:101 -> getValueRange
+    1:1:boolean isBoolean():52:52 -> isBoolean
+    1:1:boolean isField():60:60 -> isField
+    1:1:boolean isNull():64:64 -> isNull
+    1:1:boolean isSingleValue():78:78 -> isSingleValue
+    1:1:boolean isValueRange():56:56 -> isValueRange
+    1:17:java.lang.String toString():111:127 -> toString
+com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type -> com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type:
+    1:4:void <clinit>():12:15 -> <clinit>
+    5:5:void <clinit>():11:11 -> <clinit>
+    1:1:void <init>(java.lang.String,int):11:11 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type valueOf(java.lang.String):11:11 -> valueOf
+    1:1:com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type[] values():11:11 -> values
+com.android.tools.r8.shaking.ProguardMemberType -> com.android.tools.r8.shaking.ProguardMemberType:
+    1:8:void <clinit>():8:15 -> <clinit>
+    9:9:void <clinit>():6:6 -> <clinit>
+    1:1:void <init>(java.lang.String,int):6:6 -> <init>
+    1:1:boolean includesFields():18:18 -> includesFields
+    1:1:boolean includesMethods():22:22 -> includesMethods
+    1:1:com.android.tools.r8.shaking.ProguardMemberType valueOf(java.lang.String):6:6 -> valueOf
+    1:1:com.android.tools.r8.shaking.ProguardMemberType[] values():6:6 -> values
+com.android.tools.r8.shaking.ProguardNameMatcher -> com.android.tools.r8.shaking.ProguardNameMatcher:
+    1:3:void <clinit>():14:16 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardNameMatcher$1):14:14 -> <init>
+    2:2:void <init>():18:18 -> <init>
+    1:1:boolean access$100(java.lang.String,int,java.lang.String,int,java.util.List,int):14:14 -> access$100
+    1:6:com.android.tools.r8.shaking.ProguardNameMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):23:28 -> create
+    1:1:java.lang.Iterable getWildcards():93:93 -> getWildcards
+    1:1:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardNameMatcher):97:97 -> getWildcardsOrEmpty
+    1:43:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):39:81 -> matchFieldOrMethodNameImpl
+    44:66:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):56:78 -> matchFieldOrMethodNameImpl
+    67:111:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):43:87 -> matchFieldOrMethodNameImpl
+com.android.tools.r8.shaking.ProguardNameMatcher$MatchAllNames -> com.android.tools.r8.shaking.ProguardNameMatcher$MatchAllNames:
+    1:1:void <init>():108:108 -> <init>
+    2:3:void <init>(com.android.tools.r8.shaking.ProguardWildcard):111:112 -> <init>
+    1:1:java.lang.Iterable getWildcards():123:123 -> getWildcards
+    1:1:boolean matches(java.lang.String):117:117 -> matches
+    1:1:com.android.tools.r8.shaking.ProguardNameMatcher materialize():104:104 -> materialize
+    2:2:com.android.tools.r8.shaking.ProguardNameMatcher$MatchAllNames materialize():128:128 -> materialize
+com.android.tools.r8.shaking.ProguardNameMatcher$MatchNamePattern -> com.android.tools.r8.shaking.ProguardNameMatcher$MatchNamePattern:
+    1:3:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):142:144 -> <init>
+    1:1:boolean equals(java.lang.Object):180:180 -> equals
+    1:1:java.lang.Iterable getWildcards():158:158 -> getWildcards
+    1:1:int hashCode():185:185 -> hashCode
+    1:3:boolean matches(java.lang.String):149:151 -> matches
+    1:1:com.android.tools.r8.shaking.ProguardNameMatcher materialize():137:137 -> materialize
+    2:6:com.android.tools.r8.shaking.ProguardNameMatcher$MatchNamePattern materialize():163:167 -> materialize
+    1:1:java.lang.String toString():172:172 -> toString
+com.android.tools.r8.shaking.ProguardNameMatcher$MatchSpecificName -> com.android.tools.r8.shaking.ProguardNameMatcher$MatchSpecificName:
+    1:2:void <init>(java.lang.String):193:194 -> <init>
+    1:1:boolean equals(java.lang.Object):209:209 -> equals
+    1:1:int hashCode():214:214 -> hashCode
+    1:1:boolean matches(java.lang.String):199:199 -> matches
+    1:1:java.lang.String toString():204:204 -> toString
+com.android.tools.r8.shaking.ProguardPackageMatcher -> com.android.tools.r8.shaking.ProguardPackageMatcher:
+    1:2:void <init>(java.lang.String):12:13 -> <init>
+    1:1:boolean containsSeparatorsStartingAt(java.lang.String,int):77:77 -> containsSeparatorsStartingAt
+    1:5:boolean equals(java.lang.Object):85:89 -> equals
+    1:1:int hashCode():94:94 -> hashCode
+    1:46:boolean matchPackageNameImpl(java.lang.String,int,java.lang.String,int):22:67 -> matchPackageNameImpl
+    47:47:boolean matchPackageNameImpl(java.lang.String,int,java.lang.String,int):60:60 -> matchPackageNameImpl
+    48:92:boolean matchPackageNameImpl(java.lang.String,int,java.lang.String,int):29:73 -> matchPackageNameImpl
+    1:1:boolean matches(com.android.tools.r8.graph.DexType):17:17 -> matches
+com.android.tools.r8.shaking.ProguardPackageNameList -> com.android.tools.r8.shaking.ProguardPackageNameList:
+    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,com.android.tools.r8.shaking.ProguardPackageNameList$1):12:12 -> <init>
+    2:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):39:40 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardPackageNameList$Builder builder():15:15 -> builder
+    1:15:boolean equals(java.lang.Object):74:88 -> equals
+    1:6:int hashCode():98:103 -> hashCode
+    1:4:boolean matches(com.android.tools.r8.graph.DexType):60:63 -> matches
+    1:8:void writeTo(java.lang.StringBuilder):46:53 -> writeTo
+com.android.tools.r8.shaking.ProguardPackageNameList$Builder -> com.android.tools.r8.shaking.ProguardPackageNameList$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardPackageNameList$1):18:18 -> <init>
+    2:2:void <init>():24:24 -> <init>
+    3:3:void <init>():21:21 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardPackageNameList$Builder addPackageName(boolean,com.android.tools.r8.shaking.ProguardPackageMatcher):28:28 -> addPackageName
+    1:1:com.android.tools.r8.shaking.ProguardPackageNameList build():33:33 -> build
+com.android.tools.r8.shaking.ProguardPathFilter -> com.android.tools.r8.shaking.ProguardPathFilter:
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,com.android.tools.r8.shaking.ProguardPathFilter$1):9:9 -> <init>
+    2:8:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,boolean):44:50 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder builder():14:14 -> builder
+    1:1:boolean isEnabled():55:55 -> isEnabled
+    1:3:boolean matches(java.lang.String):59:61 -> matches
+com.android.tools.r8.shaking.ProguardPathFilter$Builder -> com.android.tools.r8.shaking.ProguardPathFilter$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathFilter$1):17:17 -> <init>
+    2:2:void <init>():21:21 -> <init>
+    3:4:void <init>():18:19 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder addPattern(com.android.tools.r8.shaking.ProguardPathList):25:25 -> addPattern
+    1:1:com.android.tools.r8.shaking.ProguardPathFilter build():40:40 -> build
+    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder disable():30:30 -> disable
+    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder enable():35:35 -> enable
+com.android.tools.r8.shaking.ProguardPathList -> com.android.tools.r8.shaking.ProguardPathList:
+    1:1:void <init>():10:10 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardPathList$Builder builder():13:13 -> builder
+    1:1:com.android.tools.r8.shaking.ProguardPathList emptyList():17:17 -> emptyList
+com.android.tools.r8.shaking.ProguardPathList$Builder -> com.android.tools.r8.shaking.ProguardPathList$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathList$1):22:22 -> <init>
+    2:2:void <init>():26:26 -> <init>
+    3:3:void <init>():24:24 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardPathList$Builder addFileName(java.lang.String):30:30 -> addFileName
+    2:2:com.android.tools.r8.shaking.ProguardPathList$Builder addFileName(java.lang.String,boolean):34:34 -> addFileName
+    1:5:com.android.tools.r8.shaking.ProguardPathList build():39:43 -> build
+com.android.tools.r8.shaking.ProguardPathList$EmptyPathList -> com.android.tools.r8.shaking.ProguardPathList$EmptyPathList:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathList$1):122:122 -> <init>
+    2:2:void <init>():124:124 -> <init>
+com.android.tools.r8.shaking.ProguardPathList$FileNameMatcher -> com.android.tools.r8.shaking.ProguardPathList$FileNameMatcher:
+    1:3:void <init>(boolean,java.lang.String):52:54 -> <init>
+    1:1:boolean access$300(com.android.tools.r8.shaking.ProguardPathList$FileNameMatcher,java.lang.String):48:48 -> access$300
+    1:1:boolean containsSeparatorsStartingAt(java.lang.String,int):98:98 -> containsSeparatorsStartingAt
+    1:1:boolean match(java.lang.String):58:58 -> match
+    1:27:boolean matchImpl(java.lang.String,int,java.lang.String,int):62:88 -> matchImpl
+    28:28:boolean matchImpl(java.lang.String,int,java.lang.String,int):83:83 -> matchImpl
+    29:57:boolean matchImpl(java.lang.String,int,java.lang.String,int):66:94 -> matchImpl
+com.android.tools.r8.shaking.ProguardPathList$PathList -> com.android.tools.r8.shaking.ProguardPathList$PathList:
+    1:1:void <init>(java.util.List,com.android.tools.r8.shaking.ProguardPathList$1):103:103 -> <init>
+    2:3:void <init>(java.util.List):106:107 -> <init>
+    1:4:boolean matches(java.lang.String):112:115 -> matches
+com.android.tools.r8.shaking.ProguardRuleParserException -> com.android.tools.r8.shaking.ProguardRuleParserException:
+    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):18:22 -> <init>
+    6:7:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.Throwable):27:28 -> <init>
+    1:1:java.lang.String getDiagnosticMessage():43:43 -> getDiagnosticMessage
+    1:1:java.lang.String getMessage():48:48 -> getMessage
+    1:1:com.android.tools.r8.origin.Origin getOrigin():33:33 -> getOrigin
+    1:1:java.lang.String getParseError():52:52 -> getParseError
+    1:1:com.android.tools.r8.position.Position getPosition():38:38 -> getPosition
+    1:1:java.lang.String getSnippet():56:56 -> getSnippet
+com.android.tools.r8.shaking.ProguardTypeMatcher -> com.android.tools.r8.shaking.ProguardTypeMatcher:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher$1):23:23 -> <init>
+    2:2:void <init>():31:31 -> <init>
+    1:18:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):77:94 -> create
+    19:19:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):93:93 -> create
+    20:20:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):90:90 -> create
+    21:21:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):88:88 -> create
+    22:22:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):86:86 -> create
+    23:23:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):84:84 -> create
+    24:38:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):82:96 -> create
+    39:39:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.graph.DexType):101:101 -> create
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher defaultAllMatcher():105:105 -> defaultAllMatcher
+    1:1:java.lang.Iterable getWildcards():55:55 -> getWildcards
+    1:1:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardTypeMatcher):59:59 -> getWildcardsOrEmpty
+    1:5:boolean matches(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):45:49 -> matches
+    1:1:boolean matchesSpecificType():123:123 -> matchesSpecificType
+com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType -> com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType:
+    1:2:void <clinit>():35:36 -> <clinit>
+    3:3:void <clinit>():34:34 -> <clinit>
+    1:1:void <init>(java.lang.String,int):34:34 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType valueOf(java.lang.String):34:34 -> valueOf
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType[] values():34:34 -> values
+com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAllTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAllTypes:
+    1:1:void <clinit>():128:128 -> <clinit>
+    1:1:void <init>():133:133 -> <init>
+    2:3:void <init>(com.android.tools.r8.shaking.ProguardWildcard):136:137 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$000():126:126 -> access$000
+    1:1:boolean equals(java.lang.Object):163:163 -> equals
+    1:1:java.lang.Iterable getWildcards():148:148 -> getWildcards
+    1:1:int hashCode():168:168 -> hashCode
+    1:1:boolean matches(com.android.tools.r8.graph.DexType):142:142 -> matches
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):126:126 -> materialize
+    2:2:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAllTypes materialize(com.android.tools.r8.graph.DexItemFactory):153:153 -> materialize
+com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAnyArgSequence -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAnyArgSequence:
+    1:1:void <clinit>():174:174 -> <clinit>
+    1:1:void <init>():172:172 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$100():172:172 -> access$100
+    1:1:boolean equals(java.lang.Object):193:193 -> equals
+    1:1:int hashCode():198:198 -> hashCode
+com.android.tools.r8.shaking.ProguardTypeMatcher$MatchBasicTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchBasicTypes:
+    1:1:void <clinit>():259:259 -> <clinit>
+    1:1:void <init>():264:264 -> <init>
+    2:3:void <init>(com.android.tools.r8.shaking.ProguardWildcard):267:268 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$400():257:257 -> access$400
+    1:1:boolean equals(java.lang.Object):297:297 -> equals
+    1:1:java.lang.Iterable getWildcards():282:282 -> getWildcards
+    1:1:int hashCode():302:302 -> hashCode
+    1:2:boolean matches(com.android.tools.r8.graph.DexType):273:274 -> matches
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):257:257 -> materialize
+    2:2:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchBasicTypes materialize(com.android.tools.r8.graph.DexItemFactory):287:287 -> materialize
+com.android.tools.r8.shaking.ProguardTypeMatcher$MatchClassTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchClassTypes:
+    1:5:void <clinit>():202:206 -> <clinit>
+    1:1:void <init>(java.lang.String):213:213 -> <init>
+    2:5:void <init>(java.lang.String,com.android.tools.r8.shaking.ProguardWildcard):216:219 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$200():202:202 -> access$200
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$300():202:202 -> access$300
+    1:1:boolean equals(java.lang.Object):248:248 -> equals
+    1:1:java.lang.Iterable getWildcards():233:233 -> getWildcards
+    1:1:int hashCode():253:253 -> hashCode
+    1:2:boolean matches(com.android.tools.r8.graph.DexType):224:225 -> matches
+    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):202:202 -> materialize
+    2:2:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchClassTypes materialize(com.android.tools.r8.graph.DexItemFactory):238:238 -> materialize
+    1:1:java.lang.String toString():243:243 -> toString
+com.android.tools.r8.shaking.ProguardTypeMatcher$MatchSpecificType -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchSpecificType:
+    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardTypeMatcher$1):306:306 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.DexType):310:311 -> <init>
+    1:2:boolean equals(java.lang.Object):326:327 -> equals
+    1:1:com.android.tools.r8.graph.DexType getSpecificType():344:344 -> getSpecificType
+    1:1:int hashCode():334:334 -> hashCode
+    1:1:boolean matches(com.android.tools.r8.graph.DexType):316:316 -> matches
+    1:1:java.lang.String toString():321:321 -> toString
+com.android.tools.r8.shaking.ProguardTypeMatcher$MatchTypePattern -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchTypePattern:
+    1:1:void <clinit>():348:348 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.shaking.ProguardTypeMatcher$1):348:348 -> <init>
+    2:5:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):355:358 -> <init>
+    1:1:boolean containsSeparatorsStartingAt(java.lang.String,int):571:571 -> containsSeparatorsStartingAt
+    1:3:boolean equals(java.lang.Object):589:591 -> equals
+    1:1:java.lang.Iterable getWildcards():374:374 -> getWildcards
+    1:1:int hashCode():598:598 -> hashCode
+    1:5:boolean isArrayType(java.lang.String):575:579 -> isArrayType
+    1:92:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):470:561 -> matchClassOrTypeNameImpl
+    93:116:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):534:557 -> matchClassOrTypeNameImpl
+    117:174:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):474:531 -> matchClassOrTypeNameImpl
+    175:212:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):530:567 -> matchClassOrTypeNameImpl
+    1:4:boolean matches(com.android.tools.r8.graph.DexType):364:367 -> matches
+    1:8:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):379:386 -> materialize
+    9:32:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):385:408 -> materialize
+    1:47:java.lang.String removeMaterializedBackReferencesFromPattern(java.lang.String,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):413:459 -> removeMaterializedBackReferencesFromPattern
+    1:1:java.lang.String toString():584:584 -> toString
+com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule -> com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder builder():52:52 -> builder
+com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder -> com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:2:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule build():26:26 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.ProguardWildcard -> com.android.tools.r8.shaking.ProguardWildcard:
+    1:1:void <init>():8:8 -> <init>
+com.android.tools.r8.shaking.ProguardWildcard$BackReference -> com.android.tools.r8.shaking.ProguardWildcard$BackReference:
+    1:2:void <init>(int):85:86 -> <init>
+    1:1:java.lang.String getCaptured():105:105 -> getCaptured
+    1:1:com.android.tools.r8.shaking.ProguardWildcard materialize():80:80 -> materialize
+    2:6:com.android.tools.r8.shaking.ProguardWildcard$BackReference materialize():110:114 -> materialize
+    1:1:void setCaptured(java.lang.String):95:95 -> setCaptured
+    1:1:void setReference(com.android.tools.r8.shaking.ProguardWildcard$Pattern):90:90 -> setReference
+    1:1:java.lang.String toString():130:130 -> toString
+com.android.tools.r8.shaking.ProguardWildcard$Pattern -> com.android.tools.r8.shaking.ProguardWildcard$Pattern:
+    1:1:void <init>(java.lang.String):35:35 -> <init>
+    2:5:void <init>(java.lang.String):33:36 -> <init>
+    1:1:void clearCaptured():46:46 -> clearCaptured
+    1:1:java.lang.String getCaptured():51:51 -> getCaptured
+    1:1:com.android.tools.r8.shaking.ProguardWildcard materialize():31:31 -> materialize
+    2:6:com.android.tools.r8.shaking.ProguardWildcard$Pattern materialize():56:60 -> materialize
+    1:1:void setCaptured(java.lang.String):41:41 -> setCaptured
+    1:1:java.lang.String toString():76:76 -> toString
+com.android.tools.r8.shaking.ReprocessClassInitializerRule -> com.android.tools.r8.shaking.ReprocessClassInitializerRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ReprocessClassInitializerRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
+    1:1:com.android.tools.r8.shaking.ReprocessClassInitializerRule$Builder builder():74:74 -> builder
+com.android.tools.r8.shaking.ReprocessClassInitializerRule$Builder -> com.android.tools.r8.shaking.ReprocessClassInitializerRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ReprocessClassInitializerRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:4:com.android.tools.r8.shaking.ReprocessClassInitializerRule build():26:28 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.ReprocessMethodRule -> com.android.tools.r8.shaking.ReprocessMethodRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ReprocessMethodRule$Type,com.android.tools.r8.shaking.ReprocessMethodRule$1):11:11 -> <init>
+    2:16:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ReprocessMethodRule$Type):74:88 -> <init>
+    1:1:com.android.tools.r8.shaking.ReprocessMethodRule$Builder builder():92:92 -> builder
+    1:1:com.android.tools.r8.shaking.ReprocessMethodRule$Type getType():96:96 -> getType
+    1:7:java.lang.String typeString():111:117 -> typeString
+com.android.tools.r8.shaking.ReprocessMethodRule$1 -> com.android.tools.r8.shaking.ReprocessMethodRule$1:
+    1:1:void <clinit>():111:111 -> <clinit>
+com.android.tools.r8.shaking.ReprocessMethodRule$Builder -> com.android.tools.r8.shaking.ReprocessMethodRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.ReprocessMethodRule$1):18:18 -> <init>
+    2:2:void <init>():24:24 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():18:18 -> build
+    2:4:com.android.tools.r8.shaking.ReprocessMethodRule build():39:41 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():18:18 -> self
+    1:1:com.android.tools.r8.shaking.ReprocessMethodRule$Builder setType(com.android.tools.r8.shaking.ReprocessMethodRule$Type):28:28 -> setType
+com.android.tools.r8.shaking.ReprocessMethodRule$Type -> com.android.tools.r8.shaking.ReprocessMethodRule$Type:
+    1:2:void <clinit>():14:15 -> <clinit>
+    3:3:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>(java.lang.String,int):13:13 -> <init>
+    1:1:com.android.tools.r8.shaking.ReprocessMethodRule$Type valueOf(java.lang.String):13:13 -> valueOf
+    1:1:com.android.tools.r8.shaking.ReprocessMethodRule$Type[] values():13:13 -> values
+com.android.tools.r8.shaking.RootSetBuilder -> com.android.tools.r8.shaking.RootSetBuilder:
+    1:1:void <clinit>():69:69 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,java.lang.Iterable):110:110 -> <init>
+    2:42:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,java.lang.Iterable):74:114 -> <init>
+    43:43:void <init>(com.android.tools.r8.graph.AppView,java.util.Collection):119:119 -> <init>
+    44:44:void <init>(com.android.tools.r8.graph.AppView):123:123 -> <init>
+    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.shaking.RootSetBuilder):69:69 -> access$300
+    1:1:com.android.tools.r8.shaking.DexStringCache access$400(com.android.tools.r8.shaking.RootSetBuilder):69:69 -> access$400
+    1:1:boolean access$500(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):69:69 -> access$500
+    1:1:java.util.Queue access$600(com.android.tools.r8.shaking.RootSetBuilder):69:69 -> access$600
+    1:1:com.android.tools.r8.graph.DexDefinition access$700(com.android.tools.r8.graph.DexDefinition,java.util.Map):69:69 -> access$700
+    1:1:void access$800(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):69:69 -> access$800
+    1:21:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1004:1024 -> addItemToSets
+    22:22:boolean com.android.tools.r8.graph.DexMethod.isLambdaDeserializeMethod(com.android.tools.r8.graph.DexItemFactory):192:192 -> addItemToSets
+    22:22:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1024 -> addItemToSets
+    23:26:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1030:1033 -> addItemToSets
+    27:27:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> addItemToSets
+    27:27:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1033 -> addItemToSets
+    28:33:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1034:1039 -> addItemToSets
+    34:55:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1036:1057 -> addItemToSets
+    56:56:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> addItemToSets
+    56:56:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1057 -> addItemToSets
+    57:113:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1057:1113 -> addItemToSets
+    114:114:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1107:1107 -> addItemToSets
+    115:133:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1104:1122 -> addItemToSets
+    134:157:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1119:1142 -> addItemToSets
+    158:166:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1136:1144 -> addItemToSets
+    167:195:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1127:1155 -> addItemToSets
+    196:251:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1153:1208 -> addItemToSets
+    252:268:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1202:1218 -> addItemToSets
+    1:2:boolean allRulesSatisfied(java.util.Collection,com.android.tools.r8.graph.DexClass):833:834 -> allRulesSatisfied
+    1:26:boolean anyImplementedInterfaceMatchesImplementsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):791:816 -> anyImplementedInterfaceMatchesImplementsRule
+    1:6:boolean anySourceMatchesInheritanceRuleDirectly(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,boolean):823:828 -> anySourceMatchesInheritanceRuleDirectly
+    1:13:boolean anySuperTypeMatchesExtendsRule(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardConfigurationRule):759:771 -> anySuperTypeMatchesExtendsRule
+    1:9:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet buildConsequentRootSet():397:405 -> buildConsequentRootSet
+    1:1:boolean canInsertForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):588:588 -> canInsertForwardingMethod
+    2:3:boolean com.android.tools.r8.utils.ArrayUtils.contains(java.lang.Object[],java.lang.Object):110:111 -> canInsertForwardingMethod
+    2:3:boolean canInsertForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):589 -> canInsertForwardingMethod
+    1:1:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexClass):875:875 -> containsAnnotation
+    2:6:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexEncodedMethod):879:883 -> containsAnnotation
+    7:7:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexEncodedField):891:891 -> containsAnnotation
+    8:12:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexAnnotationSet):899:903 -> containsAnnotation
+    1:10:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):961:970 -> includeDescriptor
+    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> includeDescriptor
+    11:11:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):970 -> includeDescriptor
+    12:21:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):971:980 -> includeDescriptor
+    1:11:void includeDescriptorClasses(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase):984:994 -> includeDescriptorClasses
+    1:1:java.util.Set lambda$addItemToSets$14(com.android.tools.r8.graph.DexType):1057:1057 -> lambda$addItemToSets$14
+    1:1:java.util.Map lambda$addItemToSets$15(com.android.tools.r8.graph.DexReference):1065:1065 -> lambda$addItemToSets$15
+    1:1:java.util.Set lambda$addItemToSets$16(com.android.tools.r8.graph.DexReference):1066:1066 -> lambda$addItemToSets$16
+    1:1:java.util.Set lambda$addItemToSets$17(com.android.tools.r8.graph.DexReference):1069:1069 -> lambda$addItemToSets$17
+    1:1:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):827:827 -> lambda$anySourceMatchesInheritanceRuleDirectly$11
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> lambda$anySourceMatchesInheritanceRuleDirectly$11
+    2:2:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):827 -> lambda$anySourceMatchesInheritanceRuleDirectly$11
+    3:3:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):827:827 -> lambda$anySourceMatchesInheritanceRuleDirectly$11
+    1:1:java.util.Map lambda$includeDescriptor$12(com.android.tools.r8.graph.DexReference):976:976 -> lambda$includeDescriptor$12
+    1:1:java.util.Set lambda$includeDescriptor$13(com.android.tools.r8.graph.DexReference):977:977 -> lambda$includeDescriptor$13
+    1:2:void lambda$markMatchingFields$10(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedField):669:670 -> lambda$markMatchingFields$10
+    1:2:void lambda$markMatchingMethods$8(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedMethod):636:637 -> lambda$markMatchingMethods$8
+    1:2:void lambda$markMatchingOverriddenMethods$7(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedMethod):621:622 -> lambda$markMatchingOverriddenMethods$7
+    1:2:void lambda$markMatchingVisibleFields$9(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedField):654:655 -> lambda$markMatchingVisibleFields$9
+    1:2:void lambda$markMatchingVisibleMethods$5(java.util.Map,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedMethod):450:451 -> lambda$markMatchingVisibleMethods$5
+    1:2:void lambda$markMatchingVisibleMethods$6(java.util.Map,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedMethod):458:459 -> lambda$markMatchingVisibleMethods$6
+    1:1:boolean lambda$process$1(com.android.tools.r8.graph.DexDefinition):177:177 -> lambda$process$1
+    1:6:void lambda$runPerRule$4(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):264:269 -> lambda$runPerRule$4
+    1:2:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):954:955 -> markClass
+    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markClass
+    3:3:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):955 -> markClass
+    4:4:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):957:957 -> markClass
+    1:4:void markField(com.android.tools.r8.graph.DexEncodedField,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):942:945 -> markField
+    5:5:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markField
+    5:5:void markField(com.android.tools.r8.graph.DexEncodedField,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):945 -> markField
+    6:6:void markField(com.android.tools.r8.graph.DexEncodedField,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):948:948 -> markField
+    1:1:void markMatchingFields(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule):667:667 -> markMatchingFields
+    1:1:void markMatchingMethods(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule):634:634 -> markMatchingMethods
+    1:11:void markMatchingOverriddenMethods(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):600:610 -> markMatchingOverriddenMethods
+    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> markMatchingOverriddenMethods
+    12:12:void markMatchingOverriddenMethods(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):610 -> markMatchingOverriddenMethods
+    13:23:void markMatchingOverriddenMethods(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):614:624 -> markMatchingOverriddenMethods
+    1:9:void markMatchingVisibleFields(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):649:657 -> markMatchingVisibleFields
+    1:40:void markMatchingVisibleMethods(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):436:475 -> markMatchingVisibleMethods
+    1:8:void markMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):918:925 -> markMethod
+    9:9:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markMethod
+    9:9:void markMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):925 -> markMethod
+    10:12:void markMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):929:931 -> markMethod
+    1:59:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):131:189 -> process
+    60:79:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):166:185 -> process
+    80:157:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):159:236 -> process
+    158:159:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):227:228 -> process
+    160:160:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):223:223 -> process
+    161:163:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):214:216 -> process
+    164:166:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):215:217 -> process
+    167:167:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):196:196 -> process
+    1:12:void propagateAssumeRules(com.android.tools.r8.graph.DexClass):340:351 -> propagateAssumeRules
+    13:44:void propagateAssumeRules(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,java.util.Set,java.util.Map):361:392 -> propagateAssumeRules
+    1:4:boolean ruleSatisfied(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexClass):846:849 -> ruleSatisfied
+    1:3:boolean ruleSatisfiedByFields(com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):864:866 -> ruleSatisfiedByFields
+    1:3:boolean ruleSatisfiedByMethods(com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):853:855 -> ruleSatisfiedByMethods
+    1:33:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):276:308 -> run
+    34:63:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):307:336 -> run
+    64:64:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):292:292 -> run
+    1:16:void runPerRule(java.util.concurrent.ExecutorService,java.util.List,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):246:261 -> runPerRule
+    17:17:void runPerRule(java.util.concurrent.ExecutorService,java.util.List,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):260:260 -> runPerRule
+    1:2:boolean satisfyAccessFlag(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):732:733 -> satisfyAccessFlag
+    1:1:boolean satisfyAnnotation(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):737:737 -> satisfyAnnotation
+    1:1:boolean satisfyClassType(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):728:728 -> satisfyClassType
+    1:6:boolean satisfyExtendsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):749:754 -> satisfyExtendsRule
+    1:6:boolean satisfyImplementsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):777:782 -> satisfyImplementsRule
+    1:5:boolean satisfyInheritanceRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):741:745 -> satisfyInheritanceRule
+    1:10:com.android.tools.r8.graph.DexDefinition testAndGetPrecondition(com.android.tools.r8.graph.DexDefinition,java.util.Map):415:424 -> testAndGetPrecondition
+    1:14:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):677:690 -> writeSeeds
+    15:40:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):685:710 -> writeSeeds
+    41:56:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):709:724 -> writeSeeds
+com.android.tools.r8.shaking.RootSetBuilder$1 -> com.android.tools.r8.shaking.RootSetBuilder$1:
+    1:1:void <clinit>():1200:1200 -> <clinit>
+    2:2:void <clinit>():1157:1157 -> <clinit>
+    3:3:void <clinit>():1146:1146 -> <clinit>
+    4:4:void <clinit>():1134:1134 -> <clinit>
+    5:5:void <clinit>():1102:1102 -> <clinit>
+    6:6:void <clinit>():156:156 -> <clinit>
+com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet -> com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet:
+    1:1:void <init>(java.util.Set,java.util.Set,java.util.Map,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.List,com.android.tools.r8.shaking.RootSetBuilder$1):1611:1611 -> <init>
+    2:10:void <init>(java.util.Set,java.util.Set,java.util.Map,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.List):1629:1637 -> <init>
+com.android.tools.r8.shaking.RootSetBuilder$RootSet -> com.android.tools.r8.shaking.RootSetBuilder$RootSet:
+    1:1:void <clinit>():1222:1222 -> <clinit>
+    1:1:void <init>(java.util.Map,java.util.Set,java.util.Set,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.List,com.android.tools.r8.shaking.RootSetBuilder$1):1222:1222 -> <init>
+    2:28:void <init>(java.util.Map,java.util.Set,java.util.Set,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.List):1278:1304 -> <init>
+    1:14:void addConsequentRootSet(com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet,boolean):1324:1337 -> addConsequentRootSet
+    1:1:void addDependentItems(java.util.Map):1343:1343 -> addDependentItems
+    1:9:void checkAllRulesAreUsed(com.android.tools.r8.utils.InternalOptions):1308:1316 -> checkAllRulesAreUsed
+    1:14:void copy(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexReference):1390:1403 -> copy
+    1:2:void forEachDependentNonStaticMember(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3):1377:1378 -> forEachDependentNonStaticMember
+    1:2:void forEachDependentStaticMember(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3):1363:1364 -> forEachDependentStaticMember
+    1:3:java.util.Map getDependentItems(com.android.tools.r8.graph.DexDefinition):1355:1355 -> getDependentItems
+    1:1:java.util.Set getDependentKeepClassCompatRule(com.android.tools.r8.graph.DexType):1351:1351 -> getDependentKeepClassCompatRule
+    1:9:boolean isKeptDirectlyOrIndirectly(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.AppInfoWithLiveness):1490:1498 -> isKeptDirectlyOrIndirectly
+    1:1:java.util.Set lambda$addConsequentRootSet$0(com.android.tools.r8.graph.DexReference):1330:1330 -> lambda$addConsequentRootSet$0
+    1:1:void lambda$addConsequentRootSet$1(com.android.tools.r8.graph.DexReference,java.util.Set):1330:1330 -> lambda$addConsequentRootSet$1
+    1:1:java.util.Set lambda$addConsequentRootSet$2(com.android.tools.r8.graph.DexType):1336:1336 -> lambda$addConsequentRootSet$2
+    1:2:void lambda$addConsequentRootSet$3(com.android.tools.r8.graph.DexType,java.util.Set):1335:1336 -> lambda$addConsequentRootSet$3
+    1:1:java.util.Map lambda$addDependentItems$4(com.android.tools.r8.graph.DexReference):1346:1346 -> lambda$addDependentItems$4
+    1:2:void lambda$addDependentItems$5(com.android.tools.r8.graph.DexReference,java.util.Map):1346:1347 -> lambda$addDependentItems$5
+    1:1:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):190:190 -> lambda$forEachDependentNonStaticMember$7
+    1:1:void lambda$forEachDependentNonStaticMember$7(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexReference,java.util.Set):1380 -> lambda$forEachDependentNonStaticMember$7
+    2:4:void lambda$forEachDependentNonStaticMember$7(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexReference,java.util.Set):1382:1384 -> lambda$forEachDependentNonStaticMember$7
+    1:1:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):190:190 -> lambda$forEachDependentStaticMember$6
+    1:1:void lambda$forEachDependentStaticMember$6(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexReference,java.util.Set):1366 -> lambda$forEachDependentStaticMember$6
+    2:3:void lambda$forEachDependentStaticMember$6(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexReference,java.util.Set):1367:1368 -> lambda$forEachDependentStaticMember$6
+    1:1:void lambda$toString$9(java.lang.StringBuilder,com.android.tools.r8.graph.DexReference):1603:1603 -> lambda$toString$9
+    1:1:java.util.Set lambda$verifyKeptItemsAreKept$8(com.android.tools.r8.graph.DexType):1523:1523 -> lambda$verifyKeptItemsAreKept$8
+    1:1:boolean mayBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1425:1425 -> mayBeMinified
+    1:3:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1429:1431 -> mayNotBeMinified
+    4:8:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1430:1434 -> mayNotBeMinified
+    9:14:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1433:1438 -> mayNotBeMinified
+    15:15:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1437:1437 -> mayNotBeMinified
+    1:2:void move(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexReference):1416:1417 -> move
+    1:5:void prune(com.android.tools.r8.graph.DexReference):1408:1412 -> prune
+    1:1:void shouldNotBeMinified(com.android.tools.r8.graph.DexReference):1421:1421 -> shouldNotBeMinified
+    1:21:java.lang.String toString():1585:1605 -> toString
+    1:4:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1443:1446 -> verifyKeptFieldsAreAccessedAndLive
+    5:5:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():134:134 -> verifyKeptFieldsAreAccessedAndLive
+    5:5:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1448 -> verifyKeptFieldsAreAccessedAndLive
+    6:10:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1448:1452 -> verifyKeptFieldsAreAccessedAndLive
+    1:73:boolean verifyKeptItemsAreKept(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo):1505:1577 -> verifyKeptItemsAreKept
+    1:11:boolean verifyKeptMethodsAreTargetedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1460:1470 -> verifyKeptMethodsAreTargetedAndLive
+    1:5:boolean verifyKeptTypesAreLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1479:1483 -> verifyKeptTypesAreLive
+com.android.tools.r8.shaking.RootSetBuilder$SynthesizeMissingInterfaceMethodsForMemberRules -> com.android.tools.r8.shaking.RootSetBuilder$SynthesizeMissingInterfaceMethodsForMemberRules:
+    1:1:void <clinit>():484:484 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexProgramClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.shaking.RootSetBuilder$1):484:484 -> <init>
+    2:2:void <init>(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexProgramClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule):498:498 -> <init>
+    3:18:void <init>(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexProgramClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule):490:505 -> <init>
+    1:3:void lambda$tryAndKeepMethodOnClass$0(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.shaking.RootSetBuilder):571:573 -> lambda$tryAndKeepMethodOnClass$0
+    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> lambda$tryAndKeepMethodOnClass$0
+    4:4:void lambda$tryAndKeepMethodOnClass$0(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.shaking.RootSetBuilder):572 -> lambda$tryAndKeepMethodOnClass$0
+    5:7:void lambda$tryAndKeepMethodOnClass$0(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.shaking.RootSetBuilder):580:582 -> lambda$tryAndKeepMethodOnClass$0
+    8:8:void lambda$tryAndKeepMethodOnClass$0(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.shaking.RootSetBuilder):581:581 -> lambda$tryAndKeepMethodOnClass$0
+    1:1:void run():509:509 -> run
+    1:25:void tryAndKeepMethodOnClass(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.ProguardMemberRule):542:566 -> tryAndKeepMethodOnClass
+    1:1:void visitAllSuperInterfaces(com.android.tools.r8.graph.DexType):513:513 -> visitAllSuperInterfaces
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> visitAllSuperInterfaces
+    2:2:void visitAllSuperInterfaces(com.android.tools.r8.graph.DexType):513 -> visitAllSuperInterfaces
+    3:24:void visitAllSuperInterfaces(com.android.tools.r8.graph.DexType):514:535 -> visitAllSuperInterfaces
+com.android.tools.r8.shaking.ScopedDexMethodSet -> com.android.tools.r8.shaking.ScopedDexMethodSet:
+    1:1:void <clinit>():22:22 -> <clinit>
+    1:1:void <init>():28:28 -> <init>
+    2:2:void <init>(com.android.tools.r8.shaking.ScopedDexMethodSet):31:31 -> <init>
+    3:10:void <init>(com.android.tools.r8.shaking.ScopedDexMethodSet):25:32 -> <init>
+    1:5:boolean addMethod(com.android.tools.r8.graph.DexEncodedMethod):49:53 -> addMethod
+    1:10:com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult addMethodIfMoreVisible(com.android.tools.r8.graph.DexEncodedMethod):58:67 -> addMethodIfMoreVisible
+    11:18:com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult addMethodIfMoreVisible(com.android.tools.r8.graph.DexEncodedMethod):64:71 -> addMethodIfMoreVisible
+    1:1:boolean contains(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):45:45 -> contains
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet getParent():75:75 -> getParent
+    1:2:com.android.tools.r8.graph.DexEncodedMethod lookup(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):40:41 -> lookup
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet newNestedScope():36:36 -> newNestedScope
+    1:1:void setParent(com.android.tools.r8.shaking.ScopedDexMethodSet):79:79 -> setParent
+com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult -> com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult:
+    1:3:void <clinit>():17:19 -> <clinit>
+    4:4:void <clinit>():16:16 -> <clinit>
+    1:1:void <init>(java.lang.String,int):16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult valueOf(java.lang.String):16:16 -> valueOf
+    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult[] values():16:16 -> values
+com.android.tools.r8.shaking.StaticClassMerger -> com.android.tools.r8.shaking.StaticClassMerger:
+    1:1:void <clinit>():58:58 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.shaking.MainDexClasses):215:215 -> <init>
+    2:21:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.shaking.MainDexClasses):205:224 -> <init>
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence access$000(com.android.tools.r8.shaking.StaticClassMerger):58:58 -> access$000
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence access$100(com.android.tools.r8.shaking.StaticClassMerger):58:58 -> access$100
+    1:11:com.android.tools.r8.graph.GraphLense$NestedGraphLense buildGraphLense():245:255 -> buildGraphLense
+    1:6:void clearRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):411:416 -> clearRepresentative
+    7:11:void clearRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):415:419 -> clearRepresentative
+    1:9:com.android.tools.r8.shaking.StaticClassMerger$Representative getOrCreateRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.graph.DexProgramClass):378:386 -> getOrCreateRepresentative
+    1:1:boolean isValidRepresentative(com.android.tools.r8.graph.DexProgramClass):323:323 -> isValidRepresentative
+    1:1:boolean lambda$mayMergeAcrossPackageBoundaries$2(com.android.tools.r8.graph.DexEncodedMethod):430:430 -> lambda$mayMergeAcrossPackageBoundaries$2
+    1:1:boolean lambda$mayMergeAcrossPackageBoundaries$3(com.android.tools.r8.graph.DexEncodedField):434:434 -> lambda$mayMergeAcrossPackageBoundaries$3
+    1:1:boolean lambda$mayMergeAcrossPackageBoundaries$4(com.android.tools.r8.graph.DexEncodedMethod):442:442 -> lambda$mayMergeAcrossPackageBoundaries$4
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper lambda$mergeFields$7(com.android.tools.r8.utils.FieldSignatureEquivalence,com.android.tools.r8.graph.DexEncodedField):532:532 -> lambda$mergeFields$7
+    1:1:boolean lambda$mergeFields$8(java.util.Set,com.android.tools.r8.utils.FieldSignatureEquivalence,com.android.tools.r8.graph.DexField):536:536 -> lambda$mergeFields$8
+    1:1:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper lambda$mergeMethods$5(com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.graph.DexEncodedMethod):495:495 -> lambda$mergeMethods$5
+    1:1:boolean lambda$mergeMethods$6(java.util.Set,com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.graph.DexMethod):499:499 -> lambda$mergeMethods$6
+    1:1:boolean lambda$satisfiesMergeCriteria$0(com.android.tools.r8.graph.DexEncodedField):277:277 -> lambda$satisfiesMergeCriteria$0
+    1:6:boolean lambda$satisfiesMergeCriteria$1(com.android.tools.r8.graph.DexEncodedMethod):293:298 -> lambda$satisfiesMergeCriteria$1
+    1:25:boolean mayMergeAcrossPackageBoundaries(com.android.tools.r8.graph.DexProgramClass):425:449 -> mayMergeAcrossPackageBoundaries
+    1:8:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):327:334 -> merge
+    9:9:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):330:330 -> merge
+    10:44:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):338:372 -> merge
+    1:31:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):520:550 -> mergeFields
+    1:20:java.util.List mergeMethods(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):492:511 -> mergeMethods
+    1:6:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):458:463 -> moveMembersFromSourceToTarget
+    7:23:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):459:475 -> moveMembersFromSourceToTarget
+    24:27:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):474:477 -> moveMembersFromSourceToTarget
+    28:31:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):476:479 -> moveMembersFromSourceToTarget
+    32:38:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):478:484 -> moveMembersFromSourceToTarget
+    1:13:com.android.tools.r8.graph.DexEncodedField renameFieldIfNeeded(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass,java.util.function.Predicate):578:590 -> renameFieldIfNeeded
+    1:14:com.android.tools.r8.graph.DexEncodedMethod renameMethodIfNeeded(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,java.util.function.Predicate):558:571 -> renameMethodIfNeeded
+    1:12:com.android.tools.r8.graph.GraphLense$NestedGraphLense run():228:239 -> run
+    13:19:com.android.tools.r8.graph.GraphLense$NestedGraphLense run():235:241 -> run
+    1:58:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup satisfiesMergeCriteria(com.android.tools.r8.graph.DexProgramClass):261:318 -> satisfiesMergeCriteria
+    1:8:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):390:397 -> setRepresentative
+    9:20:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):393:404 -> setRepresentative
+    21:29:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):399:407 -> setRepresentative
+com.android.tools.r8.shaking.StaticClassMerger$1 -> com.android.tools.r8.shaking.StaticClassMerger$1:
+    1:1:void <clinit>():112:112 -> <clinit>
+com.android.tools.r8.shaking.StaticClassMerger$MergeGroup -> com.android.tools.r8.shaking.StaticClassMerger$MergeGroup:
+    1:6:void <clinit>():60:60 -> <clinit>
+    13:16:void <clinit>():67:70 -> <clinit>
+    1:1:void <init>(java.lang.String,int):60:60 -> <init>
+    1:9:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():112:120 -> globalKey
+    10:10:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():118:118 -> globalKey
+    11:11:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():116:116 -> globalKey
+    1:2:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key key(java.lang.String):125:126 -> key
+    1:9:java.lang.String toString():131:139 -> toString
+    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup valueOf(java.lang.String):60:60 -> valueOf
+    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup[] values():60:60 -> values
+com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key -> com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key:
+    1:3:void <init>(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup,java.lang.String):76:78 -> <init>
+    1:1:java.lang.String access$400(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):72:72 -> access$400
+    1:5:boolean equals(java.lang.Object):103:107 -> equals
+    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup getMergeGroup():82:82 -> getMergeGroup
+    1:1:java.lang.String getPackageOrGlobal():86:86 -> getPackageOrGlobal
+    1:1:int hashCode():95:95 -> hashCode
+    1:1:boolean isGlobal():90:90 -> isGlobal
+com.android.tools.r8.shaking.StaticClassMerger$Representative -> com.android.tools.r8.shaking.StaticClassMerger$Representative:
+    1:1:void <clinit>():150:150 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.StaticClassMerger,com.android.tools.r8.graph.DexProgramClass):161:161 -> <init>
+    2:9:void <init>(com.android.tools.r8.shaking.StaticClassMerger,com.android.tools.r8.graph.DexProgramClass):156:163 -> <init>
+    1:1:boolean access$200(com.android.tools.r8.shaking.StaticClassMerger$Representative):150:150 -> access$200
+    1:1:com.android.tools.r8.graph.DexProgramClass access$300(com.android.tools.r8.shaking.StaticClassMerger$Representative):150:150 -> access$300
+    1:12:void include(com.android.tools.r8.graph.DexProgramClass):168:179 -> include
+    1:5:boolean isFull():188:192 -> isFull
+com.android.tools.r8.shaking.TreePruner -> com.android.tools.r8.shaking.TreePruner:
+    1:1:void <clinit>():34:34 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView):43:43 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.TreePrunerConfiguration):46:46 -> <init>
+    3:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.TreePrunerConfiguration):39:56 -> <init>
+    1:1:void claimNestOwnership(com.android.tools.r8.graph.DexClass):209:209 -> claimNestOwnership
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> claimNestOwnership
+    2:2:void claimNestOwnership(com.android.tools.r8.graph.DexClass):209 -> claimNestOwnership
+    3:6:void claimNestOwnership(com.android.tools.r8.graph.DexClass):214:217 -> claimNestOwnership
+    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> claimNestOwnership
+    7:7:void claimNestOwnership(com.android.tools.r8.graph.DexClass):217 -> claimNestOwnership
+    8:14:void claimNestOwnership(com.android.tools.r8.graph.DexClass):219:225 -> claimNestOwnership
+    1:2:void clearDeadNestMembers(com.android.tools.r8.graph.DexClass):201:202 -> clearDeadNestMembers
+    1:2:int firstUnreachableIndex(java.util.List,java.util.function.Predicate):248:249 -> firstUnreachableIndex
+    1:1:java.util.Collection getMethodsToKeepForConfigurationDebugging():356:356 -> getMethodsToKeepForConfigurationDebugging
+    1:35:java.util.List getNewProgramClasses(java.util.List):77:111 -> getNewProgramClasses
+    1:1:java.util.Collection getRemovedClasses():352:352 -> getRemovedClasses
+    1:4:boolean isAttributeReferencingPrunedItem(com.android.tools.r8.graph.EnclosingMethodAttribute):231:234 -> isAttributeReferencingPrunedItem
+    1:6:boolean isAttributeReferencingPrunedType(com.android.tools.r8.graph.InnerClassAttribute):238:243 -> isAttributeReferencingPrunedType
+    1:1:boolean isTypeLive(com.android.tools.r8.graph.DexType):195:195 -> isTypeLive
+    1:1:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):204:204 -> lambda$clearDeadNestMembers$1
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> lambda$clearDeadNestMembers$1
+    2:2:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):204 -> lambda$clearDeadNestMembers$1
+    3:3:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):205:205 -> lambda$clearDeadNestMembers$1
+    1:1:void lambda$new$0(com.android.tools.r8.utils.InternalOptions,java.lang.String):54:54 -> lambda$new$0
+    1:1:boolean lambda$reachableFields$3(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedField):321:321 -> lambda$reachableFields$3
+    1:1:boolean lambda$reachableMethods$2(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedMethod):260:260 -> lambda$reachableMethods$2
+    1:22:void pruneMembersAndAttributes(com.android.tools.r8.graph.DexProgramClass):156:177 -> pruneMembersAndAttributes
+    1:20:void pruneUnusedInterfaces(com.android.tools.r8.graph.DexProgramClass):119:138 -> pruneUnusedInterfaces
+    1:30:com.android.tools.r8.graph.DexEncodedField[] reachableFields(java.util.List):319:348 -> reachableFields
+    1:22:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):257:278 -> reachableMethods
+    23:53:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):275:305 -> reachableMethods
+    54:54:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():355:355 -> reachableMethods
+    54:54:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexEncodedMethod.toEmptyThrowingMethod(com.android.tools.r8.utils.InternalOptions):754 -> reachableMethods
+    54:54:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):305 -> reachableMethods
+    55:56:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexEncodedMethod.toEmptyThrowingMethod(com.android.tools.r8.utils.InternalOptions):755:756 -> reachableMethods
+    55:56:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):305 -> reachableMethods
+    57:68:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):304:315 -> reachableMethods
+    1:2:com.android.tools.r8.graph.DirectMappedDexApplication$Builder removeUnused(com.android.tools.r8.graph.DirectMappedDexApplication):72:73 -> removeUnused
+    1:8:void retainReachableInterfacesFrom(com.android.tools.r8.graph.DexType,java.util.Set):143:150 -> retainReachableInterfacesFrom
+    1:9:void rewriteNestAttributes(com.android.tools.r8.graph.DexProgramClass):181:189 -> rewriteNestAttributes
+    1:7:com.android.tools.r8.graph.DirectMappedDexApplication run(com.android.tools.r8.graph.DirectMappedDexApplication):60:66 -> run
+com.android.tools.r8.shaking.UnusedArgumentRule -> com.android.tools.r8.shaking.UnusedArgumentRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.UnusedArgumentRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
+    1:1:com.android.tools.r8.shaking.UnusedArgumentRule$Builder builder():74:74 -> builder
+com.android.tools.r8.shaking.UnusedArgumentRule$Builder -> com.android.tools.r8.shaking.UnusedArgumentRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.UnusedArgumentRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:4:com.android.tools.r8.shaking.UnusedArgumentRule build():26:28 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.shaking.UsagePrinter -> com.android.tools.r8.shaking.UsagePrinter:
+    1:4:void <clinit>():12:15 -> <clinit>
+    1:1:void <init>(java.util.function.Consumer):21:21 -> <init>
+    2:6:void <init>(java.util.function.Consumer):18:22 -> <init>
+    1:1:void append(java.lang.String):26:26 -> append
+    1:6:void printClazzPrefixIfNecessary():47:52 -> printClazzPrefixIfNecessary
+    1:2:void printUnusedClass(com.android.tools.r8.graph.DexProgramClass):30:31 -> printUnusedClass
+    1:11:void printUnusedField(com.android.tools.r8.graph.DexEncodedField):79:89 -> printUnusedField
+    1:19:void printUnusedMethod(com.android.tools.r8.graph.DexEncodedMethod):57:75 -> printUnusedMethod
+    1:2:void visited():42:43 -> visited
+    1:2:void visiting(com.android.tools.r8.graph.DexProgramClass):36:37 -> visiting
+com.android.tools.r8.shaking.UsagePrinter$NoOpUsagePrinter -> com.android.tools.r8.shaking.UsagePrinter$NoOpUsagePrinter:
+    1:1:void <init>():96:96 -> <init>
+com.android.tools.r8.shaking.VerticalClassMerger -> com.android.tools.r8.shaking.VerticalClassMerger:
+    1:1:void <clinit>():90:90 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.shaking.MainDexClasses):221:221 -> <init>
+    2:41:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.shaking.MainDexClasses):194:233 -> <init>
+    1:1:java.util.Set access$000(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$000
+    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness access$100(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$100
+    1:1:com.android.tools.r8.ir.optimize.MethodPoolCollection access$1000(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$1000
+    1:1:void access$1100(com.android.tools.r8.graph.DexEncodedMethod):90:90 -> access$1100
+    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedback access$1200(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$1200
+    1:1:java.util.Map access$1300(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$1300
+    1:1:java.util.Map access$1400(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$1400
+    1:1:com.android.tools.r8.graph.DexApplication access$1500(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$1500
+    1:1:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder access$1600(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$1600
+    1:1:java.util.List access$1700(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$1700
+    1:1:java.util.Collection access$1800(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$1800
+    1:1:com.android.tools.r8.graph.AppView access$200(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$200
+    1:1:java.util.concurrent.ExecutorService access$800(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$800
+    1:1:com.android.tools.r8.utils.Timing access$900(com.android.tools.r8.shaking.VerticalClassMerger):90:90 -> access$900
+    1:17:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason disallowInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):1644:1660 -> disallowInlining
+    18:26:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason disallowInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):1659:1667 -> disallowInlining
+    1:18:void extractPinnedItems(java.lang.Iterable,com.android.tools.r8.shaking.VerticalClassMerger$AbortReason):283:300 -> extractPinnedItems
+    1:18:boolean fieldResolutionMayChange(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):843:860 -> fieldResolutionMayChange
+    1:4:java.util.Collection getInvokes():520:523 -> getInvokes
+    1:1:com.android.tools.r8.graph.classmerging.VerticallyMergedClasses getMergedClasses():237:237 -> getMergedClasses
+    1:1:java.util.Collection getRemovedClasses():1966:1966 -> getRemovedClasses
+    1:3:void initializeMergeCandidates(java.lang.Iterable):241:243 -> initializeMergeCandidates
+    1:26:void initializePinnedTypes(java.lang.Iterable):253:278 -> initializePinnedTypes
+    1:9:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):329:337 -> isMergeCandidate
+    10:10:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> isMergeCandidate
+    10:10:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):337 -> isMergeCandidate
+    11:14:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):337:337 -> isMergeCandidate
+    18:74:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):341:397 -> isMergeCandidate
+    75:76:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):388:389 -> isMergeCandidate
+    1:17:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):408:424 -> isStillMergeCandidate
+    18:61:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):423:466 -> isStillMergeCandidate
+    62:63:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):445:446 -> isStillMergeCandidate
+    64:65:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):427:428 -> isStillMergeCandidate
+    1:1:boolean lambda$isStillMergeCandidate$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):424:424 -> lambda$isStillMergeCandidate$0
+    1:4:void makePrivate(com.android.tools.r8.graph.DexEncodedMethod):1424:1427 -> makePrivate
+    1:14:void markTypeAsPinned(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.VerticalClassMerger$AbortReason):307:320 -> markTypeAsPinned
+    1:65:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):767:831 -> mergeClassIfPossible
+    66:76:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):827:837 -> mergeClassIfPossible
+    77:77:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):833:833 -> mergeClassIfPossible
+    78:78:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):818:818 -> mergeClassIfPossible
+    1:38:boolean mergeMayLeadToIllegalAccesses(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):474:511 -> mergeMayLeadToIllegalAccesses
+    1:52:boolean methodResolutionMayChange(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):704:755 -> methodResolutionMayChange
+    1:12:com.android.tools.r8.shaking.VerticalClassMergerGraphLense run():619:630 -> run
+    1:6:boolean verifyGraphLens(com.android.tools.r8.shaking.VerticalClassMergerGraphLense):635:635 -> verifyGraphLens
+    12:68:boolean verifyGraphLens(com.android.tools.r8.shaking.VerticalClassMergerGraphLense):641:697 -> verifyGraphLens
+com.android.tools.r8.shaking.VerticalClassMerger$1 -> com.android.tools.r8.shaking.VerticalClassMerger$1:
+    1:1:void <clinit>():1949:1949 -> <clinit>
+    2:2:void <clinit>():1364:1364 -> <clinit>
+    3:3:void <clinit>():118:118 -> <clinit>
+com.android.tools.r8.shaking.VerticalClassMerger$AbortReason -> com.android.tools.r8.shaking.VerticalClassMerger$AbortReason:
+    1:20:void <clinit>():92:92 -> <clinit>
+    1:1:void <init>(java.lang.String,int):92:92 -> <init>
+    1:59:java.lang.String getMessageForClass(com.android.tools.r8.graph.DexClass):118:176 -> getMessageForClass
+    60:60:java.lang.String getMessageForClass(com.android.tools.r8.graph.DexClass):174:174 -> getMessageForClass
+    1:1:void printLogMessageForClass(com.android.tools.r8.graph.DexClass):113:113 -> printLogMessageForClass
+    1:1:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason valueOf(java.lang.String):92:92 -> valueOf
+    1:1:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason[] values():92:92 -> values
+com.android.tools.r8.shaking.VerticalClassMerger$ClassMerger -> com.android.tools.r8.shaking.VerticalClassMerger$ClassMerger:
+    1:1:void <clinit>():871:871 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.VerticalClassMerger$1):871:871 -> <init>
+    2:2:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):883:883 -> <init>
+    3:11:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):877:885 -> <init>
+    1:1:void add(java.util.Map,com.android.tools.r8.graph.DexEncodedMember,com.android.tools.r8.com.google.common.base.Equivalence):1272:1272 -> add
+    1:2:void addAll(java.util.Collection,java.lang.Iterable,com.android.tools.r8.com.google.common.base.Equivalence):1277:1278 -> addAll
+    1:1:void blockRedirectionOfSuperCalls(com.android.tools.r8.graph.DexMethod):1197:1197 -> blockRedirectionOfSuperCalls
+    1:35:com.android.tools.r8.graph.DexEncodedMethod buildBridgeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1202:1236 -> buildBridgeMethod
+    1:21:com.android.tools.r8.graph.DexEncodedMethod findMethodInTarget(com.android.tools.r8.graph.DexEncodedMethod):1243:1263 -> findMethodInTarget
+    22:22:com.android.tools.r8.graph.DexEncodedMethod findMethodInTarget(com.android.tools.r8.graph.DexEncodedMethod):1258:1258 -> findMethodInTarget
+    1:5:com.android.tools.r8.graph.DexString getFreshName(java.lang.String,int,com.android.tools.r8.graph.DexType):1315:1319 -> getFreshName
+    1:1:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder getRenamings():1110:1110 -> getRenamings
+    1:1:java.util.List getSynthesizedBridges():1114:1114 -> getSynthesizedBridges
+    1:4:boolean lambda$merge$0(java.util.Set,java.util.Map,java.util.Map,com.android.tools.r8.graph.DexMethod):900:903 -> lambda$merge$0
+    1:3:boolean lambda$merge$1(java.util.function.Predicate,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexMethod):980:982 -> lambda$merge$1
+    4:4:boolean lambda$merge$1(java.util.function.Predicate,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexMethod):981:981 -> lambda$merge$1
+    1:1:boolean lambda$merge$2(java.util.Set,com.android.tools.r8.graph.DexField):1043:1043 -> lambda$merge$2
+    1:1:java.util.Set lambda$merge$3(com.android.tools.r8.graph.DexType):1087:1087 -> lambda$merge$3
+    1:2:void lambda$restoreDebuggingState$4(com.android.tools.r8.graph.DexEncodedMethod):1095:1096 -> lambda$restoreDebuggingState$4
+    1:2:void lambda$restoreDebuggingState$5(com.android.tools.r8.graph.DexEncodedMethod):1100:1101 -> lambda$restoreDebuggingState$5
+    1:1:boolean lambda$restoreDebuggingState$6(com.android.tools.r8.graph.DexEncodedMethod):1105:1105 -> lambda$restoreDebuggingState$6
+    1:5:void makeStatic(com.android.tools.r8.graph.DexEncodedMethod):1414:1418 -> makeStatic
+    1:26:boolean merge():892:917 -> merge
+    27:56:boolean merge():914:943 -> merge
+    57:67:boolean merge():942:952 -> merge
+    68:68:boolean com.android.tools.r8.graph.DexClass.isAbstract():625:625 -> merge
+    68:68:boolean merge():952 -> merge
+    69:102:boolean merge():953:986 -> merge
+    103:150:boolean merge():977:1024 -> merge
+    151:176:boolean merge():1023:1048 -> merge
+    177:186:boolean merge():1046:1055 -> merge
+    187:222:boolean merge():1053:1088 -> merge
+    1:3:java.util.Set mergeArrays(java.lang.Object[],java.lang.Object[]):1283:1285 -> mergeArrays
+    1:13:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.Collection,java.util.Collection,java.util.function.Predicate,java.util.Set):1294:1306 -> mergeFields
+    1:57:void redirectSuperCallsInTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):1118:1174 -> redirectSuperCallsInTarget
+    1:20:com.android.tools.r8.graph.DexEncodedMethod renameConstructor(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):1324:1343 -> renameConstructor
+    1:16:com.android.tools.r8.graph.DexEncodedField renameFieldIfNeeded(com.android.tools.r8.graph.DexEncodedField,java.util.function.Predicate):1395:1410 -> renameFieldIfNeeded
+    1:1:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename):1349:1349 -> renameMethod
+    2:30:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename,com.android.tools.r8.graph.DexProto):1359:1387 -> renameMethod
+    31:55:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename,com.android.tools.r8.graph.DexProto):1366:1390 -> renameMethod
+    1:13:boolean restoreDebuggingState(java.util.stream.Stream):1093:1105 -> restoreDebuggingState
+    14:14:boolean restoreDebuggingState(java.util.stream.Stream):1104:1104 -> restoreDebuggingState
+com.android.tools.r8.shaking.VerticalClassMerger$CollisionDetector -> com.android.tools.r8.shaking.VerticalClassMerger$CollisionDetector:
+    1:1:void <clinit>():1533:1533 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.VerticalClassMerger$1):1533:1533 -> <init>
+    2:2:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1544:1544 -> <init>
+    3:15:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1538:1550 -> <init>
+    1:32:int computePositionsFor(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1607:1638 -> computePositionsFor
+    1:18:void fillSeenPositions():1580:1597 -> fillSeenPositions
+    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap lambda$fillSeenPositions$0(com.android.tools.r8.graph.DexString):1587:1588 -> lambda$fillSeenPositions$0
+    1:22:boolean mayCollide():1554:1575 -> mayCollide
+com.android.tools.r8.shaking.VerticalClassMerger$IllegalAccessDetector -> com.android.tools.r8.shaking.VerticalClassMerger$IllegalAccessDetector:
+    1:1:void <clinit>():1752:1752 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):1761:1761 -> <init>
+    2:11:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):1754:1763 -> <init>
+    1:8:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1775:1782 -> checkFieldReference
+    9:9:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):195:195 -> checkFieldReference
+    9:9:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1782 -> checkFieldReference
+    10:11:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1783:1784 -> checkFieldReference
+    1:10:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1792:1801 -> checkMethodReference
+    11:11:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):200:200 -> checkMethodReference
+    11:11:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1801 -> checkMethodReference
+    12:13:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1802:1803 -> checkMethodReference
+    1:5:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1811:1815 -> checkTypeReference
+    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> checkTypeReference
+    6:6:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1815 -> checkTypeReference
+    7:8:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1816:1817 -> checkTypeReference
+    1:1:boolean foundIllegalAccess():1767:1767 -> foundIllegalAccess
+    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):1871:1871 -> registerInstanceFieldRead
+    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):1866:1866 -> registerInstanceFieldWrite
+    1:4:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):1834:1837 -> registerInvokeDirect
+    1:4:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):1850:1853 -> registerInvokeInterface
+    1:4:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):1842:1845 -> registerInvokeStatic
+    1:4:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):1858:1861 -> registerInvokeSuper
+    1:4:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):1826:1829 -> registerInvokeVirtual
+    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):1876:1876 -> registerNewInstance
+    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):1881:1881 -> registerStaticFieldRead
+    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):1886:1886 -> registerStaticFieldWrite
+    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):1891:1891 -> registerTypeReference
+    1:1:void setContext(com.android.tools.r8.graph.DexEncodedMethod):1771:1771 -> setContext
+com.android.tools.r8.shaking.VerticalClassMerger$OverloadedMethodSignaturesRetriever -> com.android.tools.r8.shaking.VerticalClassMerger$OverloadedMethodSignaturesRetriever:
+    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):534:534 -> <init>
+    2:10:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):529:537 -> <init>
+    1:35:java.util.Collection get():542:576 -> get
+    1:1:com.android.tools.r8.graph.DexProto lambda$get$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):560:560 -> lambda$get$0
+    1:15:boolean protoMayReferenceMergedSourceOrTarget(com.android.tools.r8.graph.DexProto):584:598 -> protoMayReferenceMergedSourceOrTarget
+    1:8:boolean typeMayReferenceMergedSourceOrTarget(com.android.tools.r8.graph.DexType):604:611 -> typeMayReferenceMergedSourceOrTarget
+com.android.tools.r8.shaking.VerticalClassMerger$Rename -> com.android.tools.r8.shaking.VerticalClassMerger$Rename:
+    1:3:void <clinit>():181:183 -> <clinit>
+    4:4:void <clinit>():180:180 -> <clinit>
+    1:1:void <init>(java.lang.String,int):180:180 -> <init>
+    1:1:com.android.tools.r8.shaking.VerticalClassMerger$Rename valueOf(java.lang.String):180:180 -> valueOf
+    1:1:com.android.tools.r8.shaking.VerticalClassMerger$Rename[] values():180:180 -> values
+com.android.tools.r8.shaking.VerticalClassMerger$SingleTypeMapperGraphLense -> com.android.tools.r8.shaking.VerticalClassMerger$SingleTypeMapperGraphLense:
+    1:1:void <clinit>():1670:1670 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1675:1677 -> <init>
+    1:1:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):1687:1687 -> getOriginalFieldSignature
+    1:1:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):1692:1692 -> getOriginalMethodSignature
+    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):1682:1682 -> getOriginalType
+    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):1697:1697 -> getRenamedFieldSignature
+    1:1:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):1702:1702 -> getRenamedMethodSignature
+    1:1:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField):1741:1741 -> lookupField
+    1:18:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):1714:1731 -> lookupMethod
+    1:1:com.android.tools.r8.graph.RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):1736:1736 -> lookupPrototypeChanges
+    1:1:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):1707:1707 -> lookupType
+com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode -> com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode:
+    1:6:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,boolean):1908:1913 -> <init>
+    1:1:com.android.tools.r8.graph.DexMethod access$500(com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode):1895:1895 -> access$500
+    1:1:java.util.function.Consumer getRegistryCallback():1948:1948 -> getRegistryCallback
+    1:10:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():1934:1943 -> getSourceCodeProvider
+    1:11:void lambda$getRegistryCallback$0(com.android.tools.r8.graph.UseRegistry):1949:1959 -> lambda$getRegistryCallback$0
+    12:12:void lambda$getRegistryCallback$0(com.android.tools.r8.graph.UseRegistry):1951:1951 -> lambda$getRegistryCallback$0
+    1:2:void updateMethodSignatures(java.util.function.Function):1928:1929 -> updateMethodSignatures
+com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer -> com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer:
+    1:5:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):1430:1434 -> <init>
+    6:8:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):1433:1435 -> <init>
+    9:9:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.shaking.VerticalClassMerger$1):1430:1430 -> <init>
+    1:1:com.android.tools.r8.shaking.VerticalClassMergerGraphLense access$400(com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer):1430:1430 -> access$400
+    1:11:void fixupFields(java.util.List,com.android.tools.r8.graph.DexClass$FieldSetter):1476:1486 -> fixupFields
+    1:3:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1492:1492 -> fixupMethod
+    1:9:void fixupMethods(java.util.List,com.android.tools.r8.graph.DexClass$MethodSetter):1459:1467 -> fixupMethods
+    1:6:com.android.tools.r8.graph.DexProto fixupProto(com.android.tools.r8.graph.DexProto):1497:1502 -> fixupProto
+    1:11:com.android.tools.r8.graph.DexType fixupType(com.android.tools.r8.graph.DexType):1508:1518 -> fixupType
+    1:12:com.android.tools.r8.shaking.VerticalClassMergerGraphLense fixupTypeReferences():1439:1450 -> fixupTypeReferences
+    1:3:com.android.tools.r8.graph.DexType[] fixupTypes(com.android.tools.r8.graph.DexType[]):1525:1527 -> fixupTypes
+com.android.tools.r8.shaking.VerticalClassMergerGraphLense -> com.android.tools.r8.shaking.VerticalClassMergerGraphLense:
+    1:1:void <clinit>():48:48 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.shaking.VerticalClassMergerGraphLense$1):48:48 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.GraphLense):77:77 -> <init>
+    3:14:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.GraphLense):70:81 -> <init>
+    1:3:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):109:109 -> getOriginalMethodSignature
+    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):104:104 -> getOriginalType
+    1:3:void initializeCacheForLookupMethodInAllContexts():85:87 -> initializeCacheForLookupMethodInAllContexts
+    1:1:boolean isContextFreeForMethods():164:164 -> isContextFreeForMethods
+    1:1:java.util.Set lambda$initializeCacheForLookupMethodInAllContexts$0(com.android.tools.r8.graph.DexMethod):91:91 -> lambda$initializeCacheForLookupMethodInAllContexts$0
+    1:4:void lambda$initializeCacheForLookupMethodInAllContexts$1(com.android.tools.r8.graph.DexType,java.util.Map):89:92 -> lambda$initializeCacheForLookupMethodInAllContexts$1
+    1:1:boolean lambda$verifyIsContextFreeForMethod$2(com.android.tools.r8.graph.DexMethod,java.util.Map):172:172 -> lambda$verifyIsContextFreeForMethod$2
+    1:24:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):115:138 -> lookupMethod
+    1:12:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):148:159 -> lookupMethodInAllContexts
+    1:1:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):143:143 -> mapInvocationType
+    1:2:void unsetCacheForLookupMethodInAllContexts():98:99 -> unsetCacheForLookupMethodInAllContexts
+    1:4:boolean verifyIsContextFreeForMethod(com.android.tools.r8.graph.DexMethod):169:172 -> verifyIsContextFreeForMethod
+    5:5:boolean verifyIsContextFreeForMethod(com.android.tools.r8.graph.DexMethod):171:171 -> verifyIsContextFreeForMethod
+com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder -> com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder:
+    1:1:void <clinit>():176:176 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):192:192 -> <init>
+    2:15:void <init>(com.android.tools.r8.graph.DexItemFactory):180:193 -> <init>
+    1:16:com.android.tools.r8.shaking.VerticalClassMergerGraphLense build(com.android.tools.r8.graph.AppView,java.util.Map):242:257 -> build
+    1:5:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):197:201 -> createBuilderForFixup
+    6:13:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):199:206 -> createBuilderForFixup
+    14:20:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):204:210 -> createBuilderForFixup
+    21:35:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):209:223 -> createBuilderForFixup
+    36:43:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):222:229 -> createBuilderForFixup
+    44:52:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):227:235 -> createBuilderForFixup
+    53:53:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):233:233 -> createBuilderForFixup
+    1:12:com.android.tools.r8.graph.DexField getFieldSignatureAfterClassMerging(com.android.tools.r8.graph.DexField,java.util.Map):262:273 -> getFieldSignatureAfterClassMerging
+    1:14:com.android.tools.r8.graph.DexMethod getMethodSignatureAfterClassMerging(com.android.tools.r8.graph.DexMethod,java.util.Map):278:291 -> getMethodSignatureAfterClassMerging
+    1:9:com.android.tools.r8.graph.DexType getTypeAfterClassMerging(com.android.tools.r8.graph.DexType,java.util.Map):295:303 -> getTypeAfterClassMerging
+    1:4:boolean hasMappingForSignatureInContext(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):307:310 -> hasMappingForSignatureInContext
+    1:1:boolean hasOriginalSignatureMappingFor(com.android.tools.r8.graph.DexField):316:316 -> hasOriginalSignatureMappingFor
+    2:3:boolean hasOriginalSignatureMappingFor(com.android.tools.r8.graph.DexMethod):320:321 -> hasOriginalSignatureMappingFor
+    1:1:com.android.tools.r8.graph.DexType lambda$getMethodSignatureAfterClassMerging$0(java.util.Map,com.android.tools.r8.graph.DexType):286:286 -> lambda$getMethodSignatureAfterClassMerging$0
+    1:1:java.util.Map lambda$mapVirtualMethodToDirectInType$1(com.android.tools.r8.graph.DexType):348:348 -> lambda$mapVirtualMethodToDirectInType$1
+    1:1:void map(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):329:329 -> map
+    2:2:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):333:333 -> map
+    1:3:void mapVirtualMethodToDirectInType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult,com.android.tools.r8.graph.DexType):347:349 -> mapVirtualMethodToDirectInType
+    1:1:void markMethodAsMerged(com.android.tools.r8.graph.DexMethod):325:325 -> markMethodAsMerged
+    1:14:void merge(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder):353:366 -> merge
+    1:1:void recordCreationOfBridgeMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):342:342 -> recordCreationOfBridgeMethod
+    1:1:void recordMove(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):338:338 -> recordMove
+com.android.tools.r8.shaking.WhyAreYouKeepingConsumer -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer:
+    1:1:void <clinit>():43:43 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):58:58 -> <init>
+    1:2:void addNodeMessage(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter):240:241 -> addNodeMessage
+    1:23:java.util.List findShortestPathTo(com.android.tools.r8.experimental.graphinfo.GraphNode):132:154 -> findShortestPathTo
+    1:9:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getCanonicalInfo(java.util.Set):185:193 -> getCanonicalInfo
+    10:10:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getCanonicalInfo(java.util.Set):192:192 -> getCanonicalInfo
+    1:14:java.util.List getCanonicalPath(com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath,com.android.tools.r8.experimental.graphinfo.GraphNode):165:178 -> getCanonicalPath
+    1:2:com.android.tools.r8.experimental.graphinfo.ClassGraphNode getClassNode(com.android.tools.r8.references.ClassReference):62:63 -> getClassNode
+    1:2:com.android.tools.r8.experimental.graphinfo.FieldGraphNode getFieldNode(com.android.tools.r8.references.FieldReference):80:81 -> getFieldNode
+    1:2:com.android.tools.r8.experimental.graphinfo.MethodGraphNode getMethodNode(com.android.tools.r8.references.MethodReference):71:72 -> getMethodNode
+    1:3:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):202:204 -> getNodeString
+    4:15:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):203:214 -> getNodeString
+    16:39:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):213:236 -> getNodeString
+    40:40:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):235:235 -> getNodeString
+    1:2:void printEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter):197:198 -> printEdge
+    1:2:void printNothingKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):119:120 -> printNothingKeeping
+    3:4:void printNothingKeeping(com.android.tools.r8.references.ClassReference,java.io.PrintStream):124:125 -> printNothingKeeping
+    1:2:void printWhyAreYouKeeping(com.android.tools.r8.references.ClassReference,java.io.PrintStream):89:90 -> printWhyAreYouKeeping
+    3:4:void printWhyAreYouKeeping(com.android.tools.r8.references.MethodReference,java.io.PrintStream):94:95 -> printWhyAreYouKeeping
+    5:6:void printWhyAreYouKeeping(com.android.tools.r8.references.FieldReference,java.io.PrintStream):99:100 -> printWhyAreYouKeeping
+    7:18:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):104:115 -> printWhyAreYouKeeping
+    1:5:java.lang.String shortPositionInfo(com.android.tools.r8.position.Position):246:250 -> shortPositionInfo
+com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter:
+    1:1:void <init>(java.io.PrintStream):257:257 -> <init>
+    2:5:void <init>(java.io.PrintStream):255:258 -> <init>
+    1:3:void addMessage(java.lang.String):280:282 -> addMessage
+    1:3:void addReason(java.lang.String):274:276 -> addReason
+    1:1:void endItem():286:286 -> endItem
+    1:2:void indent():268:269 -> indent
+    1:3:void startItem(java.lang.String):262:264 -> startItem
+com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath:
+    1:1:void <clinit>():46:46 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath):50:53 -> <init>
+com.android.tools.r8.shaking.WhyAreYouNotInliningRule -> com.android.tools.r8.shaking.WhyAreYouNotInliningRule:
+    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.WhyAreYouNotInliningRule$1):10:10 -> <init>
+    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
+    1:1:com.android.tools.r8.shaking.WhyAreYouNotInliningRule$Builder builder():74:74 -> builder
+com.android.tools.r8.shaking.WhyAreYouNotInliningRule$Builder -> com.android.tools.r8.shaking.WhyAreYouNotInliningRule$Builder:
+    1:1:void <init>(com.android.tools.r8.shaking.WhyAreYouNotInliningRule$1):12:12 -> <init>
+    2:2:void <init>():16:16 -> <init>
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
+    2:4:com.android.tools.r8.shaking.WhyAreYouNotInliningRule build():26:28 -> build
+    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
+com.android.tools.r8.utils.AarArchiveResourceProvider -> com.android.tools.r8.utils.a:
+    com.android.tools.r8.origin.Origin origin -> a
+    java.nio.file.Path archive -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():32:32 -> <clinit>
+    1:4:void <init>(java.nio.file.Path):41:44 -> <init>
+    1:8:java.util.List readArchive():69:76 -> a
+    9:20:java.util.List readClassesJar(java.util.zip.ZipInputStream):49:60 -> a
+    9:20:java.util.List readArchive():77 -> a
+    21:26:java.util.List readClassesJar(java.util.zip.ZipInputStream):56:61 -> a
+    21:26:java.util.List readArchive():77 -> a
+    27:30:java.util.List readArchive():78:81 -> a
+    31:36:java.util.List readArchive():76:81 -> a
+    37:50:java.util.List readArchive():73:86 -> a
+    51:66:java.util.List readArchive():69:84 -> a
+    67:67:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):83:83 -> a
+    1:3:java.util.Collection getProgramResources():92:94 -> getProgramResources
+com.android.tools.r8.utils.AbortException -> com.android.tools.r8.utils.b:
+    1:1:void <init>():12:12 -> <init>
+    2:2:void <init>(java.lang.String):17:17 -> <init>
+com.android.tools.r8.utils.Action -> com.android.tools.r8.utils.c:
+    void execute() -> a
+com.android.tools.r8.utils.AndroidApiLevel -> com.android.tools.r8.utils.d:
+    com.android.tools.r8.utils.AndroidApiLevel G -> w
+    com.android.tools.r8.utils.AndroidApiLevel H -> u
+    com.android.tools.r8.utils.AndroidApiLevel E_MR1 -> y
+    com.android.tools.r8.utils.AndroidApiLevel R -> b
+    com.android.tools.r8.utils.AndroidApiLevel E -> A
+    com.android.tools.r8.utils.AndroidApiLevel O -> f
+    com.android.tools.r8.utils.AndroidApiLevel P -> d
+    com.android.tools.r8.utils.AndroidApiLevel B -> E
+    com.android.tools.r8.utils.AndroidApiLevel L_MR1 -> j
+    com.android.tools.r8.utils.AndroidApiLevel N -> h
+    com.android.tools.r8.utils.AndroidApiLevel J_MR2 -> n
+    com.android.tools.r8.utils.AndroidApiLevel K_WATCH -> l
+    com.android.tools.r8.utils.AndroidApiLevel I -> r
+    com.android.tools.r8.utils.AndroidApiLevel J -> p
+    com.android.tools.r8.utils.AndroidApiLevel G_MR1 -> v
+    com.android.tools.r8.utils.AndroidApiLevel H_MR1 -> t
+    com.android.tools.r8.utils.AndroidApiLevel E_0_1 -> z
+    com.android.tools.r8.utils.AndroidApiLevel F -> x
+    com.android.tools.r8.utils.AndroidApiLevel[] $VALUES -> G
+    com.android.tools.r8.utils.AndroidApiLevel D -> B
+    com.android.tools.r8.utils.AndroidApiLevel Q -> c
+    int level -> a
+    com.android.tools.r8.utils.AndroidApiLevel LATEST -> F
+    com.android.tools.r8.utils.AndroidApiLevel N_MR1 -> g
+    com.android.tools.r8.utils.AndroidApiLevel B_1_1 -> D
+    com.android.tools.r8.utils.AndroidApiLevel O_MR1 -> e
+    com.android.tools.r8.utils.AndroidApiLevel L -> k
+    com.android.tools.r8.utils.AndroidApiLevel M -> i
+    com.android.tools.r8.utils.AndroidApiLevel J_MR1 -> o
+    com.android.tools.r8.utils.AndroidApiLevel K -> m
+    com.android.tools.r8.utils.AndroidApiLevel H_MR2 -> s
+    com.android.tools.r8.utils.AndroidApiLevel I_MR1 -> q
+    1:30:void <clinit>():15:44 -> <clinit>
+    31:63:void <clinit>():14:46 -> <clinit>
+    1:2:void <init>(java.lang.String,int,int):52:53 -> <init>
+    1:2:java.util.List getAndroidApiLevelsSorted():73:74 -> a
+    3:3:boolean isLessThanOrEqualTo(com.android.tools.r8.utils.AndroidApiLevel):166:166 -> a
+    3:3:boolean isGreaterThanOrEqualTo(com.android.tools.r8.utils.AndroidApiLevel):174 -> a
+    1:1:com.android.tools.r8.utils.AndroidApiLevel getDefault():65:65 -> b
+    2:2:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):157:157 -> b
+    3:3:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):155:155 -> b
+    4:4:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):153:153 -> b
+    5:5:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):151:151 -> b
+    6:6:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):149:149 -> b
+    7:7:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):147:147 -> b
+    8:8:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):145:145 -> b
+    9:9:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):143:143 -> b
+    10:10:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):141:141 -> b
+    11:11:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):139:139 -> b
+    12:12:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):137:137 -> b
+    13:13:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):135:135 -> b
+    14:14:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):133:133 -> b
+    15:15:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):131:131 -> b
+    16:16:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):129:129 -> b
+    17:17:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):127:127 -> b
+    18:18:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):125:125 -> b
+    19:19:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):123:123 -> b
+    20:20:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):121:121 -> b
+    21:21:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):119:119 -> b
+    22:22:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):117:117 -> b
+    23:23:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):115:115 -> b
+    24:24:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):113:113 -> b
+    25:25:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):111:111 -> b
+    26:26:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):109:109 -> b
+    27:27:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):107:107 -> b
+    28:28:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):105:105 -> b
+    29:29:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):103:103 -> b
+    30:30:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):101:101 -> b
+    31:31:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):99:99 -> b
+    32:32:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):97:97 -> b
+    33:33:boolean isLessThan(com.android.tools.r8.utils.AndroidApiLevel):162:162 -> b
+    1:1:com.android.tools.r8.utils.DexVersion getDexVersion():69:69 -> c
+    1:1:int getLevel():57:57 -> d
+    1:1:com.android.tools.r8.utils.AndroidApiLevel[] values():14:14 -> e
+com.android.tools.r8.utils.AndroidApp -> com.android.tools.r8.utils.e:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.StringResource proguardMapOutputData -> f
+    com.android.tools.r8.com.google.common.collect.ImmutableList archiveProvidersToClose -> e
+    com.android.tools.r8.com.google.common.collect.ImmutableMap programResourcesMainDescriptor -> b
+    java.util.List mainDexClasses -> h
+    java.util.List mainDexListResources -> g
+    com.android.tools.r8.com.google.common.collect.ImmutableList programResourceProviders -> a
+    com.android.tools.r8.com.google.common.collect.ImmutableList libraryResourceProviders -> d
+    com.android.tools.r8.com.google.common.collect.ImmutableList classpathResourceProviders -> c
+    1:1:void <clinit>():75:75 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.StringResource,java.util.List,java.util.List,com.android.tools.r8.utils.AndroidApp$1):75:75 -> <init>
+    2:12:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.StringResource,java.util.List,java.util.List):162:172 -> <init>
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$200(com.android.tools.r8.utils.AndroidApp):75:75 -> a
+    2:5:void printClassFileProviders(java.lang.StringBuilder,java.util.Collection):135:138 -> a
+    6:12:void printProgramResource(java.lang.StringBuilder,com.android.tools.r8.ProgramResource):144:150 -> a
+    13:14:boolean verifyInternalProvidersInCloseSet(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList):178:179 -> a
+    15:15:boolean lambda$verifyInternalProvidersInCloseSet$0(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.ClassFileResourceProvider):180:180 -> a
+    16:16:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.Reporter):196:196 -> a
+    17:17:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.Reporter):208:208 -> a
+    18:23:int applicationSize():213:213 -> a
+    27:27:int applicationSize():217:217 -> a
+    28:28:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):217:217 -> a
+    29:33:java.util.List filter(java.util.List,com.android.tools.r8.ProgramResource$Kind):303:307 -> a
+    34:37:void write(java.nio.file.Path,com.android.tools.r8.OutputMode):369:372 -> a
+    38:39:java.lang.String getPrimaryClassDescriptor(com.android.tools.r8.Resource):416:417 -> a
+    40:44:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):422:426 -> a
+    45:51:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):425:431 -> a
+    52:53:int dumpClasspathResources(int,java.util.zip.ZipOutputStream):448:449 -> a
+    52:53:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):432 -> a
+    54:55:int dumpLibraryResources(int,java.util.zip.ZipOutputStream):441:442 -> a
+    54:55:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):433 -> a
+    56:56:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):434:434 -> a
+    57:68:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):424:435 -> a
+    69:69:com.android.tools.r8.ClassFileResourceProvider createClassFileResourceProvider(java.util.Map):456:456 -> a
+    69:69:com.android.tools.r8.ClassFileResourceProvider access$800(java.util.Map):75 -> a
+    70:72:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):480:482 -> a
+    73:73:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap.<init>():119:119 -> a
+    73:73:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):482 -> a
+    74:80:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):483:489 -> a
+    81:94:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):486:499 -> a
+    95:111:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):481:497 -> a
+    112:131:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):480:499 -> a
+    132:134:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):509:511 -> a
+    135:135:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap.<init>():119:119 -> a
+    135:135:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):511 -> a
+    136:147:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):512:523 -> a
+    148:159:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):510:521 -> a
+    160:174:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):509:523 -> a
+    175:182:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):533:540 -> a
+    183:184:java.lang.String extractClassDescriptor(byte[]):577:578 -> a
+    183:184:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):539 -> a
+    185:185:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
+    185:185:java.lang.String extractClassDescriptor(byte[]):579 -> a
+    185:185:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):539 -> a
+    186:186:java.lang.String extractClassDescriptor(byte[]):584:584 -> a
+    186:186:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):539 -> a
+    187:195:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):541:549 -> a
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$300(com.android.tools.r8.utils.AndroidApp):75:75 -> b
+    2:2:com.android.tools.r8.utils.Reporter defaultReporter():184:184 -> b
+    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder():191 -> b
+    3:3:com.android.tools.r8.utils.AndroidApp$Builder builder():191:191 -> b
+    4:13:void writeToDirectory(java.nio.file.Path,com.android.tools.r8.OutputMode):380:389 -> b
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$400(com.android.tools.r8.utils.AndroidApp):75:75 -> c
+    2:3:void closeInternalArchiveProviders():96:97 -> c
+    4:6:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):396:398 -> c
+    7:15:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):397:405 -> c
+    16:22:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):404:410 -> c
+    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$500(com.android.tools.r8.utils.AndroidApp):75:75 -> d
+    2:4:java.util.Collection computeAllProgramResources():223:225 -> d
+    1:1:java.util.List access$600(com.android.tools.r8.utils.AndroidApp):75:75 -> e
+    2:7:java.util.List getClassProgramResourcesForTesting():246:251 -> e
+    1:1:java.util.List access$700(com.android.tools.r8.utils.AndroidApp):75:75 -> f
+    2:2:java.util.List getClasspathResourceProviders():293:293 -> f
+    1:1:com.android.tools.r8.utils.Reporter defaultReporter():184:184 -> g
+    1:1:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp):203 -> g
+    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.Reporter):208:208 -> g
+    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp):203 -> g
+    3:7:java.util.Set getDataEntryResourcesForTesting():257:261 -> g
+    1:6:java.util.List getDexProgramResourcesForTesting():233:238 -> h
+    1:1:java.util.List getLibraryResourceProviders():298:298 -> i
+    1:1:java.util.List getMainDexClasses():349:349 -> j
+    1:1:java.util.List getMainDexListResources():342:342 -> k
+    1:1:java.util.List getProgramResourceProviders():288:288 -> l
+    1:1:com.android.tools.r8.StringResource getProguardMapOutputData():321:321 -> m
+    1:1:boolean hasMainDexList():328:328 -> n
+    1:1:boolean hasMainDexListResources():335:335 -> o
+    1:9:com.android.tools.r8.utils.AndroidApp withoutMainDexList():354:362 -> p
+    1:5:java.lang.String toString():103:107 -> toString
+    6:8:void printProgramResourceProviders(java.lang.StringBuilder,java.util.Collection):126:128 -> toString
+    6:8:java.lang.String toString():107 -> toString
+    9:20:java.lang.String toString():109:120 -> toString
+com.android.tools.r8.utils.AndroidApp$1 -> com.android.tools.r8.utils.e$a:
+    java.util.Set val$out -> a
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,java.util.Set):262:262 -> <init>
+    1:6:void visit(com.android.tools.r8.DataEntryResource):272:277 -> visit
+com.android.tools.r8.utils.AndroidApp$1ClassNameExtractor -> com.android.tools.r8.utils.f:
+    java.lang.String className -> c
+    1:1:void <init>():558:558 -> <init>
+    1:1:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):569:569 -> a
+    1:1:java.lang.String getDescriptor():573:573 -> b
+com.android.tools.r8.utils.AndroidApp$2 -> com.android.tools.r8.utils.g:
+    java.util.Map val$classPathResources -> a
+    1:1:void <init>(java.util.Map):456:456 -> <init>
+    1:1:java.util.Set getClassDescriptors():459:459 -> getClassDescriptors
+    1:1:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):464:464 -> getProgramResource
+com.android.tools.r8.utils.AndroidApp$Builder -> com.android.tools.r8.utils.e$b:
+    boolean $assertionsDisabled -> m
+    boolean ignoreDexInArchive -> j
+    com.android.tools.r8.StringResource proguardMapOutputData -> k
+    java.util.List programResources -> b
+    com.android.tools.r8.utils.Reporter reporter -> l
+    java.util.List programResourceProviders -> a
+    java.util.Map programResourcesMainDescriptor -> d
+    java.util.List libraryResourceProviders -> f
+    java.util.List classpathResourceProviders -> e
+    java.util.List dataResources -> c
+    java.util.List mainDexListClasses -> i
+    java.util.List mainDexListResources -> h
+    java.util.List archiveProvidersToClose -> g
+    1:1:void <clinit>():590:590 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp$1):590:590 -> <init>
+    2:2:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.AndroidApp$1):590:590 -> <init>
+    3:3:void <init>(com.android.tools.r8.utils.Reporter):610:610 -> <init>
+    4:23:void <init>(com.android.tools.r8.utils.Reporter):592:611 -> <init>
+    24:30:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp):616:622 -> <init>
+    1:5:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):635:639 -> a
+    6:20:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):686:700 -> a
+    6:20:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
+    21:31:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):696:706 -> a
+    21:31:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
+    32:39:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):705:712 -> a
+    32:39:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
+    40:46:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):711:717 -> a
+    40:46:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
+    47:74:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):688:715 -> a
+    47:74:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
+    75:80:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):641:646 -> a
+    81:94:void readClassFileDump(com.android.tools.r8.origin.Origin,java.io.InputStream,java.util.function.Consumer,java.lang.String):658:671 -> a
+    95:109:void readClassFileDump(com.android.tools.r8.origin.Origin,java.io.InputStream,java.util.function.Consumer,java.lang.String):667:681 -> a
+    110:130:void readClassFileDump(com.android.tools.r8.origin.Origin,java.io.InputStream,java.util.function.Consumer,java.lang.String):659:679 -> a
+    131:131:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):679:679 -> a
+    132:133:com.android.tools.r8.utils.AndroidApp$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):773:774 -> a
+    134:134:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFiles(java.nio.file.Path[]):780:780 -> a
+    135:135:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFiles(java.util.Collection):785:785 -> a
+    135:135:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFiles(java.nio.file.Path[]):780 -> a
+    136:136:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFile(java.nio.file.Path):793:793 -> a
+    136:136:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFiles(java.util.Collection):786 -> a
+    136:136:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFiles(java.nio.file.Path[]):780 -> a
+    137:137:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFile(java.nio.file.Path):793:793 -> a
+    138:138:com.android.tools.r8.utils.AndroidApp$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):801:801 -> a
+    139:141:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set):862:862 -> a
+    142:142:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set,java.lang.String):875:875 -> a
+    143:146:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set,java.lang.String):874:877 -> a
+    147:147:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[][]):901:901 -> a
+    148:149:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(java.util.Collection):906:907 -> a
+    150:150:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin):916:916 -> a
+    151:151:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin,java.util.Set):920:920 -> a
+    152:152:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):926:926 -> a
+    153:153:void addDataResources(com.android.tools.r8.DataResource[]):1069:1069 -> a
+    153:153:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):926 -> a
+    154:154:void addDataResources(java.util.Collection):1073:1073 -> a
+    154:154:void addDataResources(com.android.tools.r8.DataResource[]):1069 -> a
+    154:154:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):926 -> a
+    155:155:com.android.tools.r8.utils.AndroidApp$Builder setProguardMapOutputData(java.lang.String):937:937 -> a
+    156:156:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.lang.String[]):964:964 -> a
+    157:157:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.util.Collection):971:971 -> a
+    157:157:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.lang.String[]):964 -> a
+    158:158:com.android.tools.r8.utils.AndroidApp$Builder setIgnoreDexInArchive(boolean):987:987 -> a
+    159:198:com.android.tools.r8.utils.AndroidApp build():995:1034 -> a
+    199:199:void addProgramResources(com.android.tools.r8.ProgramResource[]):1061:1061 -> a
+    200:200:void addProgramResources(java.util.Collection):1065:1065 -> a
+    200:200:void addProgramResources(com.android.tools.r8.ProgramResource[]):1061 -> a
+    201:204:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):1078:1081 -> a
+    205:220:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):1079:1094 -> a
+    221:221:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    221:221:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):1094 -> a
+    222:222:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):1094:1094 -> a
+    1:4:com.android.tools.r8.utils.AndroidApp$Builder addDump(java.nio.file.Path):630:633 -> b
+    5:5:com.android.tools.r8.utils.AndroidApp$Builder addDump(java.nio.file.Path):632:632 -> b
+    6:6:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.nio.file.Path[]):807:807 -> b
+    7:8:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.util.Collection):812:813 -> b
+    7:8:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.nio.file.Path[]):807 -> b
+    9:24:com.android.tools.r8.utils.AndroidApp$Builder addFilteredLibraryArchives(java.util.Collection):826:841 -> b
+    25:25:com.android.tools.r8.utils.AndroidApp$Builder addFilteredLibraryArchives(java.util.Collection):837:837 -> b
+    26:29:com.android.tools.r8.utils.AndroidApp$Builder addLibraryResourceProvider(com.android.tools.r8.ClassFileResourceProvider):851:854 -> b
+    30:30:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):885:885 -> b
+    31:31:java.util.List getProgramResourceProviders():1099:1099 -> b
+    1:1:com.android.tools.r8.utils.Reporter getReporter():626:626 -> c
+    2:2:com.android.tools.r8.utils.AndroidApp$Builder addProgramFiles(java.nio.file.Path[]):743:743 -> c
+    3:13:com.android.tools.r8.utils.AndroidApp$Builder addFilteredProgramArchives(java.util.Collection):756:766 -> c
+    14:14:com.android.tools.r8.utils.AndroidApp$Builder addFilteredProgramArchives(java.util.Collection):762:762 -> c
+    15:15:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFile(java.nio.file.Path):820:820 -> c
+    1:1:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.util.Collection):971:971 -> d
+    2:2:boolean hasMainDexList():976:976 -> d
+    3:11:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1041:1049 -> d
+    12:13:boolean com.android.tools.r8.utils.FileUtils.isAarFile(java.nio.file.Path):73:74 -> d
+    12:13:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1050 -> d
+    14:14:com.android.tools.r8.utils.AarArchiveResourceProvider com.android.tools.r8.utils.AarArchiveResourceProvider.fromArchive(java.nio.file.Path):38:38 -> d
+    14:14:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1051 -> d
+    15:19:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1051:1055 -> d
+    20:20:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> d
+    20:20:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1055 -> d
+    21:21:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1055:1055 -> d
+    1:7:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.util.Collection):949:955 -> e
+    8:8:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.util.Collection):951:951 -> e
+    1:2:com.android.tools.r8.utils.AndroidApp$Builder addProgramFiles(java.util.Collection):748:749 -> f
+com.android.tools.r8.utils.AndroidApp$Builder$1 -> com.android.tools.r8.utils.i:
+    java.util.List val$dataResources -> b
+    java.util.List val$programResources -> a
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder,java.util.List,java.util.List):718:718 -> <init>
+    1:3:com.android.tools.r8.DataResourceProvider getDataResourceProvider():726:728 -> getDataResourceProvider
+    1:1:java.util.Collection getProgramResources():721:721 -> getProgramResources
+com.android.tools.r8.utils.AndroidApp$Builder$1$1 -> com.android.tools.r8.utils.h:
+    com.android.tools.r8.utils.AndroidApp$Builder$1 this$1 -> a
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder$1):728:728 -> <init>
+    1:2:void accept(com.android.tools.r8.DataResourceProvider$Visitor):731:732 -> accept
+com.android.tools.r8.utils.AndroidApp$Builder$2 -> com.android.tools.r8.utils.e$b$a:
+    java.util.List val$finalDataResources -> b
+    java.util.List val$finalProgramResources -> a
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder,java.util.List,java.util.List):1000:1000 -> <init>
+    1:2:com.android.tools.r8.DataResourceProvider getDataResourceProvider():1008:1009 -> getDataResourceProvider
+    1:1:java.util.Collection getProgramResources():1003:1003 -> getProgramResources
+com.android.tools.r8.utils.AndroidApp$Builder$2$1 -> com.android.tools.r8.utils.j:
+    com.android.tools.r8.utils.AndroidApp$Builder$2 this$1 -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():1009:1009 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder$2):1009:1009 -> <init>
+    1:6:void accept(com.android.tools.r8.DataResourceProvider$Visitor):1012:1017 -> accept
+com.android.tools.r8.utils.AndroidAppConsumers -> com.android.tools.r8.utils.k:
+    com.android.tools.r8.utils.AndroidApp$Builder builder -> a
+    boolean $assertionsDisabled -> e
+    boolean closed -> b
+    com.android.tools.r8.StringConsumer proguardMapConsumer -> d
+    com.android.tools.r8.ProgramConsumer programConsumer -> c
+    1:1:void <clinit>():30:30 -> <clinit>
+    1:1:void <init>():38:38 -> <init>
+    2:6:void <init>():32:36 -> <init>
+    7:7:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder):42:42 -> <init>
+    8:19:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder):32:43 -> <init>
+    20:20:void <init>(com.android.tools.r8.utils.InternalOptions):46:46 -> <init>
+    21:37:void <init>(com.android.tools.r8.utils.InternalOptions):32:48 -> <init>
+    1:1:com.android.tools.r8.utils.AndroidApp$Builder access$000(com.android.tools.r8.utils.AndroidAppConsumers):30:30 -> a
+    2:2:boolean access$102(com.android.tools.r8.utils.AndroidAppConsumers,boolean):30:30 -> a
+    3:9:com.android.tools.r8.ProgramConsumer wrapProgramConsumer(com.android.tools.r8.ProgramConsumer):52:58 -> a
+    10:82:com.android.tools.r8.DexFilePerClassFileConsumer wrapDexFilePerClassFileConsumer(com.android.tools.r8.DexFilePerClassFileConsumer):175:247 -> a
+    10:82:com.android.tools.r8.ProgramConsumer wrapProgramConsumer(com.android.tools.r8.ProgramConsumer):58 -> a
+    83:87:com.android.tools.r8.ProgramConsumer wrapProgramConsumer(com.android.tools.r8.ProgramConsumer):61:65 -> a
+    88:112:com.android.tools.r8.StringConsumer wrapProguardMapConsumer(com.android.tools.r8.StringConsumer):69:93 -> a
+    113:185:com.android.tools.r8.DexIndexedConsumer wrapDexIndexedConsumer(com.android.tools.r8.DexIndexedConsumer):97:169 -> a
+    186:253:com.android.tools.r8.ClassFileConsumer wrapClassFileConsumer(com.android.tools.r8.ClassFileConsumer):252:319 -> a
+    254:255:com.android.tools.r8.utils.AndroidApp build():324:325 -> a
+    1:1:boolean access$100(com.android.tools.r8.utils.AndroidAppConsumers):30:30 -> b
+com.android.tools.r8.utils.AndroidAppConsumers$1 -> com.android.tools.r8.utils.k$a:
+    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> c
+    java.lang.StringBuilder stringBuilder -> b
+    1:2:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.StringConsumer):72:73 -> <init>
+    1:5:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):77:81 -> accept
+    1:3:void finished(com.android.tools.r8.DiagnosticsHandler):86:88 -> finished
+com.android.tools.r8.utils.AndroidAppConsumers$2 -> com.android.tools.r8.utils.k$b:
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap files -> c
+    com.android.tools.r8.DexIndexedConsumer val$consumer -> d
+    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():99:99 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.DexIndexedConsumer,com.android.tools.r8.DexIndexedConsumer):99:102 -> <init>
+    1:1:void lambda$finished$0(java.lang.Integer,com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):120:120 -> a
+    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):111:112 -> accept
+    3:3:void addDexFile(int,byte[],java.util.Set):166:166 -> accept
+    3:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):112 -> accept
+    1:7:void finished(com.android.tools.r8.DiagnosticsHandler):117:123 -> finished
+    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():130:131 -> getDataResourceConsumer
+com.android.tools.r8.utils.AndroidAppConsumers$2$1 -> com.android.tools.r8.utils.l:
+    com.android.tools.r8.utils.AndroidAppConsumers$2 this$1 -> b
+    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
+    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$2,com.android.tools.r8.DataResourceConsumer):131:131 -> <init>
+    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):136:137 -> accept
+    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):144:152 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):158:159 -> finished
+com.android.tools.r8.utils.AndroidAppConsumers$3 -> com.android.tools.r8.utils.n:
+    java.util.TreeMap files -> c
+    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
+    com.android.tools.r8.DexFilePerClassFileConsumer val$consumer -> d
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():177:177 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.DexFilePerClassFileConsumer,com.android.tools.r8.DexFilePerClassFileConsumer):177:180 -> <init>
+    1:1:void lambda$finished$0(java.lang.String,com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):202:202 -> a
+    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):188:189 -> accept
+    3:3:void addDexFile(java.lang.String,byte[],java.util.Set):194:194 -> accept
+    3:3:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):189 -> accept
+    1:7:void finished(com.android.tools.r8.DiagnosticsHandler):199:205 -> finished
+    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():212:213 -> getDataResourceConsumer
+com.android.tools.r8.utils.AndroidAppConsumers$3$1 -> com.android.tools.r8.utils.m:
+    com.android.tools.r8.utils.AndroidAppConsumers$3 this$1 -> b
+    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
+    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$3,com.android.tools.r8.DataResourceConsumer):213:213 -> <init>
+    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):218:219 -> accept
+    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):226:234 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):240:241 -> finished
+com.android.tools.r8.utils.AndroidAppConsumers$4 -> com.android.tools.r8.utils.k$c:
+    com.android.tools.r8.ClassFileConsumer val$consumer -> d
+    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
+    java.util.List files -> c
+    boolean $assertionsDisabled -> f
+    1:1:void <clinit>():254:254 -> <clinit>
+    1:3:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.ClassFileConsumer,com.android.tools.r8.ClassFileConsumer):254:256 -> <init>
+    1:1:void lambda$finished$0(com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):274:274 -> a
+    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):260:261 -> accept
+    3:3:void addClassFile(byte[],java.lang.String):265:265 -> accept
+    3:3:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):261 -> accept
+    1:8:void finished(com.android.tools.r8.DiagnosticsHandler):270:277 -> finished
+    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():284:285 -> getDataResourceConsumer
+com.android.tools.r8.utils.AndroidAppConsumers$4$1 -> com.android.tools.r8.utils.o:
+    com.android.tools.r8.utils.AndroidAppConsumers$4 this$1 -> b
+    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
+    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$4,com.android.tools.r8.DataResourceConsumer):285:285 -> <init>
+    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):290:291 -> accept
+    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):298:306 -> accept
+    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):312:313 -> finished
+com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents -> com.android.tools.r8.utils.k$d:
+    byte[] contents -> b
+    java.util.Set descriptors -> a
+    1:1:void <init>(java.util.Set,byte[],com.android.tools.r8.utils.AndroidAppConsumers$1):328:328 -> <init>
+    2:4:void <init>(java.util.Set,byte[]):333:335 -> <init>
+com.android.tools.r8.utils.ArchiveBuilder -> com.android.tools.r8.utils.r:
+    boolean $assertionsDisabled -> i
+    com.android.tools.r8.origin.Origin origin -> b
+    java.util.zip.ZipOutputStream stream -> c
+    int classesFileIndex -> f
+    int openCount -> e
+    java.nio.file.Path archive -> a
+    java.util.SortedSet delayedWrites -> h
+    java.util.Map delayedClassesDexFiles -> g
+    boolean closed -> d
+    1:1:void <clinit>():28:28 -> <clinit>
+    1:1:void <init>(java.nio.file.Path):38:38 -> <init>
+    2:11:void <init>(java.nio.file.Path):31:40 -> <init>
+    1:2:void close(com.android.tools.r8.DiagnosticsHandler):51:52 -> a
+    3:7:void writeDelayed(com.android.tools.r8.DiagnosticsHandler):67:71 -> a
+    3:7:void close(com.android.tools.r8.DiagnosticsHandler):54 -> a
+    8:21:void writeDirectoryNow(java.lang.String,com.android.tools.r8.DiagnosticsHandler):115:128 -> a
+    8:21:void writeDelayed(com.android.tools.r8.DiagnosticsHandler):71 -> a
+    8:21:void close(com.android.tools.r8.DiagnosticsHandler):54 -> a
+    22:23:void writeDelayed(com.android.tools.r8.DiagnosticsHandler):73:74 -> a
+    22:23:void close(com.android.tools.r8.DiagnosticsHandler):54 -> a
+    24:29:void close(com.android.tools.r8.DiagnosticsHandler):55:60 -> a
+    30:35:void handleIOException(java.io.IOException,com.android.tools.r8.DiagnosticsHandler):100:105 -> a
+    36:36:void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler):111:111 -> a
+    37:42:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):133:138 -> a
+    43:43:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):137:137 -> a
+    44:53:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):133:142 -> a
+    54:54:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):141:141 -> a
+    55:55:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):139:139 -> a
+    56:56:void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):148:148 -> a
+    57:60:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):171:174 -> a
+    61:65:void writeNextIfAvailable(com.android.tools.r8.DiagnosticsHandler):160:164 -> a
+    61:65:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):175 -> a
+    66:68:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):178:178 -> a
+    69:69:java.nio.file.Path getPath():190:190 -> a
+    1:4:java.util.zip.ZipOutputStream getStreamRaw():80:83 -> b
+    5:11:java.util.zip.ZipOutputStream getStream(com.android.tools.r8.DiagnosticsHandler):90:96 -> b
+    12:14:void writeFileNow(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):153:155 -> b
+    1:1:com.android.tools.r8.origin.Origin getOrigin():185:185 -> getOrigin
+    1:2:void open():45:46 -> open
+com.android.tools.r8.utils.ArchiveBuilder$1 -> com.android.tools.r8.utils.p:
+com.android.tools.r8.utils.ArchiveBuilder$DelayedData -> com.android.tools.r8.utils.q:
+    com.android.tools.r8.ByteDataView content -> b
+    java.lang.String name -> a
+    boolean isDirectory -> c
+    1:1:void <init>(java.lang.String,com.android.tools.r8.ByteDataView,boolean,com.android.tools.r8.utils.ArchiveBuilder$1):193:193 -> <init>
+    2:5:void <init>(java.lang.String,com.android.tools.r8.ByteDataView,boolean):206:209 -> <init>
+    1:1:com.android.tools.r8.utils.ArchiveBuilder$DelayedData createFile(java.lang.String,com.android.tools.r8.ByteDataView):199:199 -> a
+    2:2:com.android.tools.r8.utils.ArchiveBuilder$DelayedData createDirectory(java.lang.String):203:203 -> a
+    1:1:int compareTo(java.lang.Object):193:193 -> compareTo
+    2:4:int compareTo(com.android.tools.r8.utils.ArchiveBuilder$DelayedData):215:217 -> compareTo
+    2:4:int compareTo(java.lang.Object):193 -> compareTo
+com.android.tools.r8.utils.ArchiveResourceProvider -> com.android.tools.r8.utils.ArchiveResourceProvider:
+    com.android.tools.r8.origin.Origin origin -> a
+    com.android.tools.r8.shaking.FilteredClassPath archive -> b
+    boolean ignoreDexInArchive -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():36:36 -> <clinit>
+    1:5:void <init>(com.android.tools.r8.shaking.FilteredClassPath,boolean):47:51 -> <init>
+    1:16:java.util.List readArchive():55:70 -> a
+    17:28:java.util.List readArchive():69:80 -> a
+    29:37:java.util.List readArchive():76:84 -> a
+    38:67:java.util.List readArchive():62:91 -> a
+    68:68:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    68:68:java.util.List readArchive():91 -> a
+    69:73:java.util.List readArchive():91:95 -> a
+    74:105:java.util.List readArchive():57:88 -> a
+    106:106:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):86:86 -> a
+    107:107:boolean isProgramResourceName(java.lang.String):138:138 -> a
+    108:109:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):143:144 -> a
+    108:109:boolean isProgramResourceName(java.lang.String):138 -> a
+    110:110:boolean isProgramResourceName(java.lang.String):138:138 -> a
+    1:16:void accept(com.android.tools.r8.DataResourceProvider$Visitor):114:114 -> accept
+    30:35:void accept(com.android.tools.r8.DataResourceProvider$Visitor):128:133 -> accept
+    36:37:void accept(com.android.tools.r8.DataResourceProvider$Visitor):129:130 -> accept
+    38:50:void accept(java.util.function.Consumer):142:154 -> accept
+    51:60:void accept(java.util.function.Consumer):153:162 -> accept
+    61:68:void accept(java.util.function.Consumer):158:165 -> accept
+    69:87:void accept(java.util.function.Consumer):150:168 -> accept
+    88:122:void accept(java.util.function.Consumer):142:176 -> accept
+    123:125:void accept(java.util.function.Consumer):169:171 -> accept
+    1:1:com.android.tools.r8.utils.ArchiveResourceProvider fromArchive(java.nio.file.Path,boolean):44:44 -> fromArchive
+    1:3:java.util.Collection getProgramResources():101:103 -> getProgramResources
+com.android.tools.r8.utils.ArrayUtils -> com.android.tools.r8.utils.s:
+    1:10:java.lang.Object[] copyWithSparseChanges(java.lang.Class,java.lang.Object[],java.util.Map):25:34 -> a
+    11:30:java.lang.Object[] filter(java.lang.Class,java.lang.Object[],java.util.function.Predicate):50:69 -> a
+    31:31:java.lang.Object[] filter(java.lang.Class,java.lang.Object[],java.util.function.Predicate):68:68 -> a
+    32:55:java.lang.Object[] map(java.lang.Class,java.lang.Object[],java.util.function.Function):83:106 -> a
+    56:56:java.lang.Object[] map(java.lang.Class,java.lang.Object[],java.util.function.Function):105:105 -> a
+com.android.tools.r8.utils.AssertionConfigurationWithDefault -> com.android.tools.r8.utils.t:
+    java.util.List assertionsConfigurations -> b
+    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation defautlTransformation -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():12:12 -> <clinit>
+    1:4:void <init>(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.util.List):19:22 -> <init>
+com.android.tools.r8.utils.BiMapContainer -> com.android.tools.r8.utils.u:
+    java.util.Map original -> a
+    java.util.Map inverse -> b
+    1:3:void <init>(java.util.Map,java.util.Map):21:23 -> <init>
+com.android.tools.r8.utils.BitUtils -> com.android.tools.r8.utils.v:
+    boolean isBitInMaskSet(int,int) -> a
+    boolean isBitSet(int,int) -> b
+com.android.tools.r8.utils.BooleanLatticeElement -> com.android.tools.r8.utils.x:
+    com.android.tools.r8.utils.BooleanLatticeElement BOTTOM -> a
+    boolean $assertionsDisabled -> b
+    1:3:void <clinit>():6:8 -> <clinit>
+    1:1:void <init>():27:27 -> <init>
+    com.android.tools.r8.utils.OptionalBool asOptionalBool() -> a
+    1:1:boolean isBottom():0:0 -> a
+    1:1:com.android.tools.r8.utils.BooleanLatticeElement join(com.android.tools.r8.utils.BooleanLatticeElement):56 -> a
+    2:10:com.android.tools.r8.utils.BooleanLatticeElement join(com.android.tools.r8.utils.BooleanLatticeElement):56:64 -> a
+    boolean isBottom() -> b
+    boolean isFalse() -> c
+    1:1:boolean isPossiblyTrue():48:48 -> d
+    boolean isTrue() -> e
+    boolean isUnknown() -> f
+    1:1:int hashCode():74:74 -> hashCode
+com.android.tools.r8.utils.BooleanLatticeElement$1 -> com.android.tools.r8.utils.w:
+    1:1:void <init>():9:9 -> <init>
+    1:1:com.android.tools.r8.utils.OptionalBool asOptionalBool():13:13 -> a
+    boolean isBottom() -> b
+com.android.tools.r8.utils.BooleanUtils -> com.android.tools.r8.utils.y:
+    java.lang.Boolean[] VALUES -> a
+    1:1:void <clinit>():8:8 -> <clinit>
+    int intValue(boolean) -> a
+    1:1:java.lang.Boolean[] values():15:15 -> a
+com.android.tools.r8.utils.Box -> com.android.tools.r8.utils.z:
+    java.lang.Object value -> a
+    1:1:void <init>():11:11 -> <init>
+    2:3:void <init>(java.lang.Object):13:14 -> <init>
+    1:1:java.lang.Object get():18:18 -> a
+    2:2:void set(java.lang.Object):22:22 -> a
+    1:1:boolean isSet():26:26 -> b
+com.android.tools.r8.utils.CfLineToMethodMapper -> com.android.tools.r8.utils.D:
+    java.util.Map sourceMethodMapping -> a
+    com.android.tools.r8.utils.AndroidApp inputApp -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():19:19 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.AndroidApp):25:25 -> <init>
+    2:7:void <init>(com.android.tools.r8.utils.AndroidApp):21:26 -> <init>
+    1:1:java.util.Map access$100(com.android.tools.r8.utils.CfLineToMethodMapper):19:19 -> a
+    2:6:java.lang.String lookupNameAndDescriptor(java.lang.String,int):31:35 -> a
+    7:28:void readLineNumbersFromClassFiles():39:60 -> a
+    29:29:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
+    29:29:void readLineNumbersFromClassFiles():61 -> a
+    30:34:void lambda$readLineNumbersFromClassFiles$0(com.android.tools.r8.utils.CfLineToMethodMapper$ClassVisitor,com.android.tools.r8.ProgramResource):45:49 -> a
+    35:35:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
+    35:35:void lambda$readLineNumbersFromClassFiles$0(com.android.tools.r8.utils.CfLineToMethodMapper$ClassVisitor,com.android.tools.r8.ProgramResource):50 -> a
+com.android.tools.r8.utils.CfLineToMethodMapper$1 -> com.android.tools.r8.utils.A:
+com.android.tools.r8.utils.CfLineToMethodMapper$ClassVisitor -> com.android.tools.r8.utils.B:
+    com.android.tools.r8.utils.CfLineToMethodMapper this$0 -> d
+    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap currentLineNumberMapping -> c
+    1:1:void <init>(com.android.tools.r8.utils.CfLineToMethodMapper,com.android.tools.r8.utils.CfLineToMethodMapper$1):84:84 -> <init>
+    2:3:void <init>(com.android.tools.r8.utils.CfLineToMethodMapper):88:89 -> <init>
+    4:4:void <init>(com.android.tools.r8.utils.CfLineToMethodMapper):86:86 -> <init>
+    1:3:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):100:102 -> a
+    4:4:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):108:108 -> a
+    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap lambda$visit$0(java.lang.String):102:102 -> c
+com.android.tools.r8.utils.CfLineToMethodMapper$MethodLineVisitor -> com.android.tools.r8.utils.C:
+    java.lang.String nameAndDescriptor -> j
+    java.util.Map lineMethodMapping -> k
+    1:1:void <init>(java.lang.String,java.util.Map,com.android.tools.r8.utils.CfLineToMethodMapper$1):113:113 -> <init>
+    2:4:void <init>(java.lang.String,java.util.Map):119:121 -> <init>
+    1:1:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):126:126 -> b
+com.android.tools.r8.utils.CfgPrinter -> com.android.tools.r8.utils.E:
+    java.util.Stack opened -> b
+    java.lang.StringBuilder builder -> a
+    int nextUnusedValue -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():11:11 -> <clinit>
+    1:7:void <init>():11:17 -> <init>
+    1:1:com.android.tools.r8.utils.CfgPrinter append(int):55:55 -> a
+    2:2:com.android.tools.r8.utils.CfgPrinter append(java.lang.String):60:60 -> a
+    3:3:com.android.tools.r8.utils.CfgPrinter ln():70:70 -> a
+    1:2:com.android.tools.r8.utils.CfgPrinter print(int):43:44 -> b
+    3:4:com.android.tools.r8.utils.CfgPrinter print(java.lang.String):49:50 -> b
+    3:4:com.android.tools.r8.utils.CfgPrinter begin(java.lang.String):28 -> b
+    5:5:com.android.tools.r8.utils.CfgPrinter append(java.lang.String):60:60 -> b
+    5:5:com.android.tools.r8.utils.CfgPrinter begin(java.lang.String):29 -> b
+    6:7:com.android.tools.r8.utils.CfgPrinter begin(java.lang.String):29:30 -> b
+    8:9:void printIndent():75:76 -> b
+    1:2:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):35:36 -> c
+    3:4:com.android.tools.r8.utils.CfgPrinter print(java.lang.String):49:50 -> c
+    3:4:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):37 -> c
+    5:5:com.android.tools.r8.utils.CfgPrinter append(java.lang.String):60:60 -> c
+    5:5:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):38 -> c
+    6:6:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):38:38 -> c
+    7:7:com.android.tools.r8.utils.CfgPrinter sp():65:65 -> c
+    1:2:com.android.tools.r8.utils.CfgPrinter print(java.lang.String):49:50 -> d
+    1:1:java.lang.String toString():82:82 -> toString
+com.android.tools.r8.utils.ClassMap -> com.android.tools.r8.utils.H:
+    java.util.Map classes -> a
+    java.util.concurrent.atomic.AtomicReference classProvider -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():34:34 -> <clinit>
+    1:1:void <init>(java.util.Map,com.android.tools.r8.utils.ClassProvider):58:58 -> <init>
+    2:7:void <init>(java.util.Map,com.android.tools.r8.utils.ClassProvider):56:61 -> <init>
+    java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass) -> a
+    com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass) -> a
+    1:28:com.android.tools.r8.graph.DexClass get(com.android.tools.r8.graph.DexType):89:116 -> a
+    29:29:com.android.tools.r8.graph.DexClass get(com.android.tools.r8.graph.DexType):114:114 -> a
+    30:35:java.util.function.Supplier lambda$get$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):107:112 -> a
+    36:46:java.util.List getAllClasses():123:133 -> a
+    47:47:java.util.List getAllClasses():124:124 -> a
+    48:48:boolean isFullyLoaded():228:228 -> a
+    48:48:void forceLoad(java.util.function.Predicate):166 -> a
+    49:104:void forceLoad(java.util.function.Predicate):169:224 -> a
+    1:9:java.util.Map getAllClassesInMap():139:147 -> b
+    10:10:java.util.Map getAllClassesInMap():140:140 -> b
+    com.android.tools.r8.graph.ClassKind getClassKind() -> c
+    1:1:boolean isFullyLoaded():228:228 -> d
+    1:1:java.lang.String toString():81:81 -> toString
+com.android.tools.r8.utils.ClassMap$1 -> com.android.tools.r8.utils.F:
+com.android.tools.r8.utils.ClassMap$ConcurrentClassLoader -> com.android.tools.r8.utils.G:
+    boolean ready -> e
+    boolean $assertionsDisabled -> f
+    com.android.tools.r8.graph.DexType type -> c
+    com.android.tools.r8.utils.ClassMap classMap -> a
+    com.android.tools.r8.utils.ClassProvider provider -> b
+    com.android.tools.r8.graph.DexClass clazz -> d
+    1:1:void <clinit>():234:234 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.ClassMap$1):234:234 -> <init>
+    2:2:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType):243:243 -> <init>
+    3:9:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType):240:246 -> <init>
+    1:41:com.android.tools.r8.graph.DexClass get():251:291 -> a
+    42:42:com.android.tools.r8.graph.DexClass get():287:287 -> a
+    43:62:void lambda$get$0(com.android.tools.r8.graph.DexClass):259:278 -> a
+    63:65:void lambda$get$0(com.android.tools.r8.graph.DexClass):264:266 -> a
+    66:66:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    66:66:void lambda$get$0(com.android.tools.r8.graph.DexClass):266 -> a
+    67:67:void lambda$get$0(com.android.tools.r8.graph.DexClass):266:266 -> a
+    1:1:java.lang.Object get():234:234 -> get
+com.android.tools.r8.utils.ClassProvider -> com.android.tools.r8.utils.M:
+    com.android.tools.r8.graph.ClassKind classKind -> a
+    1:2:void <init>(com.android.tools.r8.graph.ClassKind):30:31 -> <init>
+    void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer) -> a
+    java.util.Collection collectTypes() -> a
+    1:1:com.android.tools.r8.utils.ClassProvider forClassFileResources(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader):62:62 -> a
+    2:2:com.android.tools.r8.utils.ClassProvider combine(com.android.tools.r8.graph.ClassKind,java.util.List):78:78 -> a
+    3:3:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.builder():211:211 -> a
+    3:3:com.android.tools.r8.utils.ClassProvider forPreloadedClasses(com.android.tools.r8.graph.ClassKind,java.util.Collection):68 -> a
+    4:7:com.android.tools.r8.utils.ClassProvider forPreloadedClasses(com.android.tools.r8.graph.ClassKind,java.util.Collection):69:72 -> a
+    1:1:com.android.tools.r8.graph.ClassKind getClassKind():36:36 -> b
+com.android.tools.r8.utils.ClassProvider$1 -> com.android.tools.r8.utils.I:
+com.android.tools.r8.utils.ClassProvider$ClassFileResourceReader -> com.android.tools.r8.utils.J:
+    com.android.tools.r8.graph.JarApplicationReader reader -> d
+    com.android.tools.r8.graph.ClassKind classKind -> b
+    com.android.tools.r8.ClassFileResourceProvider provider -> c
+    1:1:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.utils.ClassProvider$1):81:81 -> <init>
+    2:5:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader):88:91 -> <init>
+    1:8:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):96:103 -> a
+    9:11:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):102:104 -> a
+    12:18:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):99:105 -> a
+    19:21:java.util.Collection collectTypes():112:114 -> a
+    1:1:java.lang.String toString():121:121 -> toString
+com.android.tools.r8.utils.ClassProvider$CombinedClassProvider -> com.android.tools.r8.utils.K:
+    java.util.List providers -> b
+    1:1:void <init>(com.android.tools.r8.graph.ClassKind,java.util.List,com.android.tools.r8.utils.ClassProvider$1):151:151 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.ClassKind,java.util.List):155:156 -> <init>
+    1:2:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):161:162 -> a
+    3:5:java.util.Collection collectTypes():168:170 -> a
+    1:8:java.lang.String toString():177:184 -> toString
+com.android.tools.r8.utils.ClassProvider$PreloadedClassProvider -> com.android.tools.r8.utils.L:
+    com.android.tools.r8.com.google.common.collect.Multimap classes -> b
+    1:1:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.com.google.common.collect.Multimap,com.android.tools.r8.utils.ClassProvider$1):125:125 -> <init>
+    2:3:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.com.google.common.collect.Multimap):129:130 -> <init>
+    1:2:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):135:136 -> a
+    3:3:java.util.Collection collectTypes():142:142 -> a
+    1:1:java.lang.String toString():147:147 -> toString
+com.android.tools.r8.utils.ClasspathClassCollection -> com.android.tools.r8.utils.N:
+    1:1:void <init>(com.android.tools.r8.utils.ClassProvider):14:14 -> <init>
+    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):12:12 -> a
+    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12:12 -> a
+    3:3:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19:19 -> a
+    3:3:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
+    4:4:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    4:4:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19 -> a
+    4:4:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
+    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
+    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
+    5:5:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19 -> a
+    5:5:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
+    6:6:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19:19 -> a
+    6:6:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
+    1:1:com.android.tools.r8.graph.ClassKind getClassKind():29:29 -> c
+    1:1:java.lang.String toString():34:34 -> toString
+com.android.tools.r8.utils.Consumer3 -> com.android.tools.r8.utils.O:
+    void accept(java.lang.Object,java.lang.Object,java.lang.Object) -> a
+com.android.tools.r8.utils.DescriptorUtils -> com.android.tools.r8.utils.P:
+    java.util.Map typeNameToLetterMap -> a
+    boolean $assertionsDisabled -> b
+    1:17:void <clinit>():23:39 -> <clinit>
+    1:2:java.lang.String javaTypeToDescriptor(java.lang.String):69:70 -> A
+    1:2:java.lang.String javaTypeToDescriptorIfValidJavaType(java.lang.String):95:96 -> B
+    1:2:java.lang.String javaTypeToDescriptorIgnorePrimitives(java.lang.String):84:85 -> C
+    1:1:java.lang.String javaTypeToShorty(java.lang.String):151:151 -> D
+    boolean isPrimitiveType(char) -> a
+    1:12:java.lang.String internalToDescriptor(java.lang.String,boolean,boolean):45:56 -> a
+    13:17:java.lang.String internalToDescriptor(java.lang.String,boolean,boolean):55:59 -> a
+    18:23:java.lang.String toArrayDescriptor(int,java.lang.String):110:115 -> a
+    24:24:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):200:200 -> a
+    25:25:java.lang.String primitiveDescriptorToJavaType(char):265:265 -> a
+    25:25:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):212 -> a
+    26:26:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):210:210 -> a
+    27:31:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):203:207 -> a
+    32:32:java.lang.String backwardRelocatedName(java.lang.String):377:377 -> a
+    32:32:java.lang.String access$000(java.lang.String):23 -> a
+    33:51:java.lang.String getDescriptorFromKmType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):389:407 -> a
+    52:58:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):428:434 -> a
+    59:59:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):433:433 -> a
+    60:60:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):431:431 -> a
+    61:68:java.lang.String computeInnerClassSeparator(java.lang.String,java.lang.String,java.lang.String):439:446 -> a
+    69:72:java.lang.String computeInnerClassSeparator(java.lang.String,java.lang.String,java.lang.String):445:448 -> a
+    73:77:java.lang.String guessTypeDescriptor(java.nio.file.Path):520:524 -> a
+    78:78:java.lang.String getPathFromJavaType(java.lang.Class):594:594 -> a
+    1:7:java.lang.String descriptorToInternalName(java.lang.String):171:177 -> b
+    8:8:java.lang.String descriptorToInternalName(java.lang.String):175:175 -> b
+    1:1:java.lang.String descriptorToJavaType(java.lang.String):161:161 -> c
+    1:2:java.lang.String descriptorToKotlinClassifier(java.lang.String):187:188 -> d
+    1:20:int getArgumentCount(java.lang.String):665:684 -> e
+    1:37:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):621:657 -> f
+    38:44:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):642:648 -> f
+    45:70:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):629:654 -> f
+    71:71:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):638:638 -> f
+    1:2:java.lang.String getBinaryNameFromDescriptor(java.lang.String):348:349 -> g
+    1:1:java.lang.String getBinaryNameFromJavaType(java.lang.String):340:340 -> h
+    1:3:java.lang.String getClassBinaryNameFromDescriptor(java.lang.String):318:320 -> i
+    1:2:java.lang.String getClassFileName(java.lang.String):603:604 -> j
+    1:2:java.lang.String getClassNameFromDescriptor(java.lang.String):286:287 -> k
+    1:2:java.lang.String getDescriptorFromClassBinaryName(java.lang.String):359:360 -> l
+    1:3:java.lang.String getDescriptorFromKotlinClassifier(java.lang.String):369:371 -> m
+    1:1:java.lang.String getJavaTypeFromBinaryName(java.lang.String):344:344 -> n
+    1:1:java.lang.String getPackageBinaryNameFromJavaType(java.lang.String):330:330 -> o
+    1:3:java.lang.String getPackageNameFromBinaryName(java.lang.String):498:500 -> p
+    1:1:java.lang.String getPackageNameFromDescriptor(java.lang.String):308:308 -> q
+    1:3:java.lang.String getPathFromDescriptor(java.lang.String):588:590 -> r
+    1:2:java.lang.String getPathFromJavaType(java.lang.String):598:599 -> s
+    1:2:java.lang.String getReturnTypeDescriptor(java.lang.String):608:609 -> t
+    1:1:java.lang.String getUnqualifiedClassNameFromDescriptor(java.lang.String):276:276 -> u
+    2:3:java.lang.String getUnqualifiedClassNameFromBinaryName(java.lang.String):422:423 -> u
+    2:3:java.lang.String getUnqualifiedClassNameFromDescriptor(java.lang.String):276 -> u
+    1:13:com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor guessJrtModuleAndTypeDescriptor(java.lang.String):571:583 -> v
+    14:14:com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor guessJrtModuleAndTypeDescriptor(java.lang.String):581:581 -> v
+    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> v
+    15:15:com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor guessJrtModuleAndTypeDescriptor(java.lang.String):581 -> v
+    16:16:com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor guessJrtModuleAndTypeDescriptor(java.lang.String):581:581 -> v
+    1:8:java.lang.String guessTypeDescriptor(java.lang.String):536:543 -> w
+    9:9:java.lang.String guessTypeDescriptor(java.lang.String):541:541 -> w
+    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> w
+    10:10:java.lang.String guessTypeDescriptor(java.lang.String):541 -> w
+    11:11:java.lang.String guessTypeDescriptor(java.lang.String):541:541 -> w
+    1:26:boolean isClassDescriptor(java.lang.String):455:480 -> x
+    1:1:boolean isDescriptor(java.lang.String):239:239 -> y
+    2:5:boolean isPrimitiveDescriptor(java.lang.String):217:220 -> y
+    2:5:boolean isDescriptor(java.lang.String):240 -> y
+    6:10:boolean isArrayDescriptor(java.lang.String):229:233 -> y
+    6:10:boolean isDescriptor(java.lang.String):241 -> y
+    1:6:boolean isValidJavaType(java.lang.String):125:130 -> z
+com.android.tools.r8.utils.DescriptorUtils$1 -> com.android.tools.r8.utils.P$a:
+    boolean $assertionsDisabled -> c
+    com.android.tools.r8.utils.Box val$descriptor -> b
+    1:1:void <clinit>():390:390 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.Box):390:390 -> <init>
+    1:2:void visitClass(java.lang.String):395:396 -> a
+    1:2:void visitTypeAlias(java.lang.String):403:404 -> b
+com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor -> com.android.tools.r8.utils.P$b:
+    java.lang.String module -> a
+    java.lang.String descriptor -> b
+    1:3:void <init>(java.lang.String,java.lang.String):550:552 -> <init>
+    1:1:java.lang.String getDescriptor():560:560 -> a
+    1:1:java.lang.String getModule():556:556 -> b
+com.android.tools.r8.utils.DexVersion -> com.android.tools.r8.utils.Q:
+    byte[] dexVersionBytes -> b
+    com.android.tools.r8.utils.DexVersion[] $VALUES -> g
+    com.android.tools.r8.utils.DexVersion V35 -> c
+    com.android.tools.r8.utils.DexVersion V37 -> d
+    com.android.tools.r8.utils.DexVersion V38 -> e
+    com.android.tools.r8.utils.DexVersion V39 -> f
+    int dexVersion -> a
+    1:4:void <clinit>():13:16 -> <clinit>
+    5:5:void <clinit>():12:12 -> <clinit>
+    1:3:void <init>(java.lang.String,int,int,byte[]):22:24 -> <init>
+    1:1:byte[] getBytes():32:32 -> a
+    2:38:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):40:76 -> a
+    39:39:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):74:74 -> a
+    40:40:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):50:50 -> a
+    41:41:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):47:47 -> a
+    42:42:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):44:44 -> a
+    43:43:java.util.Optional getDexVersion(char,char,char):99:99 -> a
+    44:44:java.util.Optional getDexVersion(char,char,char):97:97 -> a
+    1:1:int getIntValue():28:28 -> b
+    2:2:boolean matchesApiLevel(com.android.tools.r8.utils.AndroidApiLevel):36:36 -> b
+    3:3:java.util.Optional getDexVersion(int):91:91 -> b
+    4:4:java.util.Optional getDexVersion(int):89:89 -> b
+    5:5:java.util.Optional getDexVersion(int):87:87 -> b
+    6:6:java.util.Optional getDexVersion(int):85:85 -> b
+    7:7:java.util.Optional getDexVersion(int):83:83 -> b
+com.android.tools.r8.utils.DiagnosticWithThrowable -> com.android.tools.r8.utils.S:
+    java.lang.Throwable throwable -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:3:void <init>(java.lang.Throwable):13:15 -> <init>
+    1:1:java.lang.Throwable getThrowable():19:19 -> getThrowable
+com.android.tools.r8.utils.DirectoryBuilder -> com.android.tools.r8.utils.T:
+    com.android.tools.r8.origin.Origin origin -> b
+    java.nio.file.Path root -> a
+    1:3:void <init>(java.nio.file.Path):24:26 -> <init>
+    void close(com.android.tools.r8.DiagnosticsHandler) -> a
+    1:5:void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler):39:43 -> a
+    6:9:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):49:49 -> a
+    11:15:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):51:55 -> a
+    16:16:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):54:54 -> a
+    17:17:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):52:52 -> a
+    18:23:void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):61:66 -> a
+    24:24:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):73:73 -> a
+    25:25:java.nio.file.Path getPath():83:83 -> a
+    1:1:com.android.tools.r8.origin.Origin getOrigin():78:78 -> getOrigin
+com.android.tools.r8.utils.DisjointSets -> com.android.tools.r8.utils.U:
+    java.util.Map parent -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():16:16 -> <clinit>
+    1:4:void <init>():16:19 -> <init>
+    1:9:java.util.Set collectSet(java.lang.Object):69:77 -> a
+    10:20:java.lang.Object union(java.lang.Object,java.lang.Object):106:116 -> a
+    21:25:java.util.Map collectSets():139:143 -> a
+    26:27:void lambda$toString$2(java.lang.StringBuilder,java.lang.Object,java.util.Set):158:159 -> a
+    28:28:void lambda$toString$1(java.lang.StringBuilder,java.lang.Object):159:159 -> a
+    1:2:java.lang.Object findOrMakeSet(java.lang.Object):91:92 -> b
+    1:11:java.lang.Object findSet(java.lang.Object):39:49 -> c
+    1:2:boolean isRepresentativeOrNotPresent(java.lang.Object):59:60 -> d
+    1:1:java.util.Set lambda$collectSets$0(java.lang.Object):143:143 -> e
+    1:3:java.lang.Object makeSet(java.lang.Object):27:29 -> f
+    1:12:java.lang.String toString():150:161 -> toString
+com.android.tools.r8.utils.EncodedValueUtils -> com.android.tools.r8.utils.V:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():9:9 -> <clinit>
+    1:6:int putBitsFromRightZeroExtended(com.android.tools.r8.dex.DexOutputBuffer,long,int):84:89 -> a
+    7:12:byte[] encodeBitsFromRightZeroExtended(long):96:101 -> a
+    13:14:int putFloat(com.android.tools.r8.dex.DexOutputBuffer,float):114:115 -> a
+    15:17:byte[] encodeFloat(float):119:121 -> a
+    18:19:double parseDouble(com.android.tools.r8.dex.DexReader,int):127:128 -> a
+    20:21:int putDouble(com.android.tools.r8.dex.DexOutputBuffer,double):132:133 -> a
+    22:24:byte[] encodeDouble(double):137:139 -> a
+    1:5:int putSigned(com.android.tools.r8.dex.DexOutputBuffer,long,int):25:29 -> b
+    6:7:float parseFloat(com.android.tools.r8.dex.DexReader,int):109:110 -> b
+    1:9:long parseSigned(com.android.tools.r8.dex.DexReader,int):12:20 -> c
+    10:14:int putUnsigned(com.android.tools.r8.dex.DexOutputBuffer,long,int):61:65 -> c
+    1:5:long parseUnsigned(com.android.tools.r8.dex.DexReader,int):48:52 -> d
+com.android.tools.r8.utils.ExceptionDiagnostic -> com.android.tools.r8.utils.ExceptionDiagnostic:
+    com.android.tools.r8.origin.Origin origin -> c
+    1:2:void <init>(java.lang.Throwable,com.android.tools.r8.origin.Origin):23:24 -> <init>
+    3:3:void <init>(com.android.tools.r8.ResourceException):28:28 -> <init>
+    1:13:java.lang.String getDiagnosticMessage():43:55 -> getDiagnosticMessage
+    14:14:java.lang.String getDiagnosticMessage():45:45 -> getDiagnosticMessage
+    1:1:com.android.tools.r8.origin.Origin getOrigin():33:33 -> getOrigin
+    1:1:com.android.tools.r8.position.Position getPosition():38:38 -> getPosition
+com.android.tools.r8.utils.ExceptionUtils -> com.android.tools.r8.utils.W:
+    1:1:boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierPart(int):14:14 -> a
+    2:2:void lambda$withConsumeResourceHandler$0(com.android.tools.r8.StringConsumer,java.lang.String,com.android.tools.r8.DiagnosticsHandler):27:27 -> a
+    3:3:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer,java.lang.String):27:27 -> a
+    4:8:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,java.util.function.Consumer):37:41 -> a
+    4:8:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer,java.lang.String):27 -> a
+    9:9:void withFinishedResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer):31:31 -> a
+    10:14:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,java.util.function.Consumer):37:41 -> a
+    10:14:void withFinishedResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer):31 -> a
+    15:29:java.lang.String[] com.android.tools.r8.utils.FlagFile.expandFlagFiles(java.lang.String[],com.android.tools.r8.BaseCommand$Builder):33:47 -> a
+    30:47:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):67:84 -> a
+    48:50:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):78:80 -> a
+    51:51:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object,java.lang.Object[]):88:88 -> a
+    51:51:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):80 -> a
+    52:57:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Platform.newArray(java.lang.Object[],int):37:42 -> a
+    52:57:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Object[],int):60 -> a
+    52:57:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object,java.lang.Object[]):88 -> a
+    52:57:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):80 -> a
+    58:59:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object,java.lang.Object[]):89:90 -> a
+    58:59:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):80 -> a
+    60:62:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):80:82 -> a
+    63:63:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):75:75 -> a
+    64:66:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    64:66:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):75 -> a
+    67:67:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):73:73 -> a
+    68:70:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    68:70:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):73 -> a
+    71:71:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction) -> a
+    72:74:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    72:74:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):71 -> a
+    75:75:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):69:69 -> a
+    76:82:com.android.tools.r8.origin.Origin extractIOExceptionOrigin(java.io.IOException):113:119 -> a
+    76:82:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):69 -> a
+    83:83:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):69:69 -> a
+    84:86:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    84:86:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):69 -> a
+    87:87:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):86:86 -> a
+    88:97:void withMainProgramHandler(com.android.tools.r8.utils.ExceptionUtils$MainAction):96:105 -> a
+    98:99:void withMainProgramHandler(com.android.tools.r8.utils.ExceptionUtils$MainAction):99:100 -> a
+    100:109:java.lang.RuntimeException unwrapExecutionException(java.util.concurrent.ExecutionException):123:132 -> a
+    110:111:java.lang.RuntimeException unwrapExecutionException(java.util.concurrent.ExecutionException):126:127 -> a
+    1:1:boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierPart(int):14:14 -> b
+    1:1:boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierStart(int):10 -> b
+    1:2:boolean com.android.tools.r8.utils.IdentifierUtils.isRelaxedDexIdentifierPart(int):18:19 -> c
+    boolean com.android.tools.r8.utils.IdentifierUtils.isSimpleNameChar(int) -> d
+    boolean com.android.tools.r8.utils.IdentifierUtils.isUnicodeSpace(int) -> e
+com.android.tools.r8.utils.ExceptionUtils$CompileAction -> com.android.tools.r8.utils.W$a:
+com.android.tools.r8.utils.ExceptionUtils$MainAction -> com.android.tools.r8.utils.W$b:
+com.android.tools.r8.utils.FeatureClassMapping -> com.android.tools.r8.utils.FeatureClassMapping:
+    java.util.Map parsedRules -> a
+    java.util.Map parseNonClassRules -> b
+    java.util.Set mappings -> d
+    boolean usesOnlyExactMappings -> c
+    java.lang.String baseName -> e
+    1:1:void <init>(com.android.tools.r8.utils.FeatureClassMapping$1):49:49 -> <init>
+    2:2:void <init>():170:170 -> <init>
+    3:10:void <init>():51:58 -> <init>
+    11:11:void <init>(java.util.List):189:189 -> <init>
+    12:153:void <init>(java.util.List):51:192 -> <init>
+    1:10:void addRule(java.lang.String,java.lang.String,int):242:251 -> a
+    11:11:boolean com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate.isExactmapping():307:307 -> a
+    11:11:void addRule(java.lang.String,java.lang.String,int):251 -> a
+    12:12:void addRule(java.lang.String,java.lang.String,int):251:251 -> a
+    13:13:void error(java.lang.String,int):255:255 -> a
+    1:1:void addBaseMapping(java.lang.String):173:173 -> addBaseMapping
+    1:1:void addBaseNonClassMapping(java.lang.String):177:177 -> addBaseNonClassMapping
+    1:1:void addMapping(java.lang.String,java.lang.String):181:181 -> addMapping
+    1:1:void addNonClassMapping(java.lang.String,java.lang.String):186:186 -> addNonClassMapping
+    1:18:void parseAndAdd(java.lang.String,int):220:237 -> b
+    19:19:void parseAndAdd(java.lang.String,int):232:232 -> b
+    20:20:void parseAndAdd(java.lang.String,int):228:228 -> b
+    1:5:java.lang.String featureForClass(java.lang.String):197:201 -> featureForClass
+    6:11:boolean com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate.match(java.lang.String):297:302 -> featureForClass
+    6:11:java.lang.String featureForClass(java.lang.String):202 -> featureForClass
+    12:20:java.lang.String featureForClass(java.lang.String):203:211 -> featureForClass
+    1:1:java.lang.String featureForNonClass(java.lang.String):216:216 -> featureForNonClass
+    1:1:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path):94:94 -> fromSpecification
+    2:12:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path,com.android.tools.r8.DiagnosticsHandler):99:109 -> fromSpecification
+    13:14:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path,com.android.tools.r8.DiagnosticsHandler):104:105 -> fromSpecification
+    1:1:java.lang.String getBaseName():66:66 -> getBaseName
+com.android.tools.r8.utils.FeatureClassMapping$1 -> com.android.tools.r8.utils.FeatureClassMapping$a:
+    1:1:void <init>():94:94 -> <init>
+com.android.tools.r8.utils.FeatureClassMapping$FeatureMappingException -> com.android.tools.r8.utils.FeatureClassMapping$FeatureMappingException:
+    1:1:void <init>(java.lang.String):262:262 -> <init>
+com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate -> com.android.tools.r8.utils.FeatureClassMapping$b:
+    java.lang.String predicate -> a
+    java.lang.String feature -> b
+    boolean isCatchAll -> c
+    boolean isWildcard -> d
+    1:1:void <clinit>():268:268 -> <clinit>
+    1:12:void <init>(java.lang.String,java.lang.String):275:286 -> <init>
+    13:23:void <init>(java.lang.String,java.lang.String):283:293 -> <init>
+    24:24:void <init>(java.lang.String,java.lang.String):289:289 -> <init>
+com.android.tools.r8.utils.FeatureClassMapping$Internal -> com.android.tools.r8.utils.FeatureClassMapping$c:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():114:114 -> <clinit>
+    1:9:java.util.List getClassFileDescriptors(java.lang.String,com.android.tools.r8.DiagnosticsHandler):116:124 -> a
+    10:10:boolean lambda$getNonClassFiles$0(java.util.zip.ZipEntry):131:131 -> a
+    11:31:com.android.tools.r8.utils.FeatureClassMapping fromJarFiles(java.util.List,java.util.List,java.lang.String,com.android.tools.r8.DiagnosticsHandler):144:164 -> a
+    1:7:java.util.List getNonClassFiles(java.lang.String,com.android.tools.r8.DiagnosticsHandler):129:129 -> b
+    12:14:java.util.List getNonClassFiles(java.lang.String,com.android.tools.r8.DiagnosticsHandler):134:136 -> b
+com.android.tools.r8.utils.FeatureClassMapping$JarFileOrigin -> com.android.tools.r8.utils.FeatureClassMapping$d:
+    1:1:void <init>(java.nio.file.Path):84:84 -> <init>
+    1:1:java.lang.String part():89:89 -> part
+com.android.tools.r8.utils.FeatureClassMapping$SpecificationOrigin -> com.android.tools.r8.utils.FeatureClassMapping$e:
+    1:1:void <init>(java.nio.file.Path):72:72 -> <init>
+    1:1:java.lang.String part():77:77 -> part
+com.android.tools.r8.utils.FieldSignatureEquivalence -> com.android.tools.r8.utils.X:
+    boolean ignoreName -> a
+    com.android.tools.r8.utils.FieldSignatureEquivalence INSTANCE_IGNORE_NAME -> c
+    com.android.tools.r8.utils.FieldSignatureEquivalence INSTANCE -> b
+    1:3:void <clinit>():16:18 -> <clinit>
+    1:2:void <init>(boolean):23:24 -> <init>
+    1:1:com.android.tools.r8.utils.FieldSignatureEquivalence get():28:28 -> c
+    1:1:com.android.tools.r8.utils.FieldSignatureEquivalence getEquivalenceIgnoreName():32:32 -> d
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):14:14 -> doEquivalent
+    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):37:40 -> doEquivalent
+    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):14 -> doEquivalent
+    1:1:int doHash(java.lang.Object):14:14 -> doHash
+    2:5:int doHash(com.android.tools.r8.graph.DexField):45:48 -> doHash
+    2:5:int doHash(java.lang.Object):14 -> doHash
+com.android.tools.r8.utils.FileUtils -> com.android.tools.r8.utils.Y:
+    boolean isAndroid -> a
+    boolean $assertionsDisabled -> b
+    1:16:void <clinit>():21:36 -> <clinit>
+    1:5:boolean isArchive(java.nio.file.Path):78:82 -> a
+    6:6:java.lang.String readTextFile(java.nio.file.Path,java.nio.charset.Charset):86:86 -> a
+    7:7:void writeTextFile(java.nio.file.Path,java.util.List):94:94 -> a
+    8:8:void writeTextFile(java.nio.file.Path,java.lang.String[]):98:98 -> a
+    9:11:java.nio.file.Path validateOutputFile(java.nio.file.Path,com.android.tools.r8.utils.Reporter):103:105 -> a
+    12:12:void writeToFile(java.nio.file.Path,java.io.OutputStream,byte[]):167:167 -> a
+    13:14:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):172:173 -> a
+    15:19:java.io.OutputStream openPathWithDefault(com.android.tools.r8.com.google.common.io.Closer,java.nio.file.Path,java.io.OutputStream,java.nio.file.OpenOption[]):131:135 -> a
+    15:19:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):174 -> a
+    20:21:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):181:182 -> a
+    22:32:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):172:182 -> a
+    33:38:java.lang.String withNativeFileSeparators(java.lang.String):186:191 -> a
+    39:52:java.util.zip.ZipFile createZipFile(java.io.File,java.nio.charset.Charset):196:209 -> a
+    1:6:boolean isClassFile(java.nio.file.Path):49:54 -> b
+    1:17:boolean isClassesDexFile(java.nio.file.Path):141:157 -> c
+    1:2:boolean isDexFile(java.nio.file.Path):39:40 -> d
+    1:2:boolean isJarFile(java.nio.file.Path):58:59 -> e
+    1:2:boolean isVDexFile(java.nio.file.Path):44:45 -> f
+    1:2:boolean isZipFile(java.nio.file.Path):63:64 -> g
+    1:1:java.util.List readAllLines(java.nio.file.Path):90:90 -> h
+com.android.tools.r8.utils.FilteredArchiveClassFileProvider -> com.android.tools.r8.utils.Z:
+    1:1:void <init>(com.android.tools.r8.shaking.FilteredClassPath):13:13 -> <init>
+    1:1:boolean lambda$new$0(com.android.tools.r8.shaking.FilteredClassPath,java.lang.String):13:13 -> a
+com.android.tools.r8.utils.FlagFile$FlagFileOrigin -> com.android.tools.r8.utils.a0:
+    java.nio.file.Path path -> a
+    1:2:void <init>(java.nio.file.Path):22:23 -> <init>
+    1:1:java.lang.String part():28:28 -> part
+com.android.tools.r8.utils.HeapUtils -> com.android.tools.r8.utils.b0:
+    com.sun.management.HotSpotDiagnosticMXBean hotSpotDiagnosticMXBean -> a
+    1:3:void initHotSpotMBean():19:21 -> a
+    1:3:void dumpHeap(java.nio.file.Path,boolean):35 -> a
+    4:5:com.sun.management.HotSpotDiagnosticMXBean getHotSpotDiagnosticMXBean():29:30 -> a
+    4:5:void initHotSpotMBean():22 -> a
+    4:5:void dumpHeap(java.nio.file.Path,boolean):35 -> a
+    6:8:void initHotSpotMBean():22:24 -> a
+    6:8:void dumpHeap(java.nio.file.Path,boolean):35 -> a
+    9:9:void dumpHeap(java.nio.file.Path,boolean):36:36 -> a
+com.android.tools.r8.utils.IROrdering -> com.android.tools.r8.utils.c0:
+    java.lang.Iterable order(java.lang.Iterable) -> a
+    java.util.Collection order(java.util.Collection) -> a
+com.android.tools.r8.utils.IROrdering$IdentityIROrdering -> com.android.tools.r8.utils.c0$a:
+    com.android.tools.r8.utils.IROrdering$IdentityIROrdering INSTANCE -> a
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:1:void <init>():23:23 -> <init>
+    java.lang.Iterable order(java.lang.Iterable) -> a
+    java.util.Collection order(java.util.Collection) -> a
+    1:1:com.android.tools.r8.utils.IROrdering$IdentityIROrdering getInstance():26:26 -> a
+com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering -> com.android.tools.r8.utils.c0$b:
+    com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering INSTANCE -> a
+    1:1:void <clinit>():42:42 -> <clinit>
+    1:1:void <init>():44:44 -> <init>
+    1:1:com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering getInstance():47:47 -> a
+    2:3:java.util.List order(java.lang.Iterable):52:53 -> a
+    2:3:java.lang.Iterable order(java.lang.Iterable):40 -> a
+    4:5:java.util.List order(java.lang.Iterable):52:53 -> a
+    4:5:java.util.List order(java.util.Collection):59 -> a
+    4:5:java.util.Collection order(java.util.Collection):40 -> a
+com.android.tools.r8.utils.IntObjConsumer -> com.android.tools.r8.utils.d0:
+    void accept(int,java.lang.Object) -> a
+com.android.tools.r8.utils.InternalArchiveClassFileProvider -> com.android.tools.r8.utils.e0:
+    java.util.Set descriptors -> c
+    com.android.tools.r8.origin.Origin origin -> b
+    java.util.zip.ZipFile openedZipFile -> d
+    boolean $assertionsDisabled -> e
+    java.nio.file.Path path -> a
+    1:1:void <clinit>():39:39 -> <clinit>
+    1:1:void <init>(java.nio.file.Path):52:52 -> <init>
+    2:2:void <init>(java.nio.file.Path,java.util.function.Predicate):62:62 -> <init>
+    3:32:void <init>(java.nio.file.Path,java.util.function.Predicate):42:71 -> <init>
+    boolean lambda$new$0(java.lang.String) -> a
+    1:12:java.util.zip.ZipFile getOpenZipFile():101:112 -> a
+    1:2:void close():117:118 -> close
+    1:1:java.util.Set getClassDescriptors():78:78 -> getClassDescriptors
+    1:1:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):83:83 -> getProgramResource
+    2:3:java.util.zip.ZipEntry getZipEntryFromDescriptor(java.lang.String):122:123 -> getProgramResource
+    2:3:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):87 -> getProgramResource
+    4:9:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):88:93 -> getProgramResource
+    10:15:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):89:94 -> getProgramResource
+    16:24:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):88:96 -> getProgramResource
+    25:25:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> getProgramResource
+    25:25:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):96 -> getProgramResource
+    26:26:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):96:96 -> getProgramResource
+com.android.tools.r8.utils.InternalOptions -> com.android.tools.r8.utils.f0:
+    boolean enableRedundantFieldLoadElimination -> f0
+    boolean enableKotlinMetadataRewritingForMembers -> P
+    java.lang.String dumpInputToDirectory -> j
+    boolean enableStringSwitchConversion -> b0
+    com.android.tools.r8.features.FeatureSplitConfiguration featureSplitConfiguration -> f
+    java.util.List methodsFilter -> w0
+    boolean enableFieldBitAccessAnalysis -> q
+    boolean enableInheritanceClassInDexDistributor -> Z0
+    boolean enableInlining -> y
+    com.android.tools.r8.utils.InternalOptions$KotlinOptimizationOptions kotlinOptimizationOptions -> V0
+    com.android.tools.r8.StringConsumer usageInformationConsumer -> h1
+    boolean configurationDebugging -> R0
+    java.util.function.Consumer syntheticProguardRulesConsumer -> p1
+    boolean $assertionsDisabled -> s1
+    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> l1
+    boolean enableInitializedClassesAnalysis -> G
+    boolean printCfg -> N0
+    boolean printMemory -> h
+    boolean lookupLibraryBeforeProgram -> J0
+    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> m1
+    boolean enableNestBasedAccessDesugaring -> E0
+    java.lang.String dumpInputToFile -> i
+    boolean enableDeterminismAnalysis -> I
+    java.util.Set extensiveLoggingFilter -> u0
+    boolean enableKotlinMetadataRewritingForRenamedClasses -> Q
+    boolean enableHorizontalClassMerging -> r
+    boolean readCompileTimeAnnotations -> z0
+    com.android.tools.r8.DesugarGraphConsumer desugarGraphConsumer -> o1
+    int minApiLevel -> x0
+    boolean enableEnumUnboxing -> z
+    boolean ignoreMainDexMissingClasses -> r0
+    boolean enableSideEffectAnalysis -> H
+    int callGraphLikelySpuriousCallEdgeThreshold -> U
+    boolean useSmaliSyntax -> n0
+    boolean enableUninstantiatedTypeOptimizationForInterfaces -> j0
+    com.android.tools.r8.utils.OffOrAuto interfaceMethodDesugaring -> G0
+    boolean enablePropagationOfDynamicTypesAtCallSites -> N
+    com.android.tools.r8.utils.InternalOptions$TestingOptions testing -> W0
+    boolean enableDynamicTypeOptimization -> o
+    com.android.tools.r8.dex.Marker marker -> t0
+    boolean enableValuePropagation -> g0
+    boolean enableEnumValueOptimization -> c0
+    boolean enableDevirtualization -> w
+    java.util.Set reportedMissingForDesugaring -> q1
+    boolean skipIR -> S0
+    boolean enableClassInlining -> E
+    int classInliningInstructionLimit -> V
+    boolean ignoreMissingClasses -> O0
+    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> i1
+    com.android.tools.r8.ProgramConsumer programConsumer -> d
+    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> n1
+    java.util.Set neverMergePrefixes -> m
+    boolean enableMainDexListCheck -> K0
+    boolean enablePropagationOfConstantsAtCallSites -> O
+    boolean enableNestReduction -> F0
+    java.util.Map warningInvalidDebugInfo -> d1
+    boolean enableFieldAssignmentTracker -> p
+    boolean enableLoadStoreOptimization -> B0
+    boolean enableNonNullTracking -> x
+    java.util.List mainDexKeepRules -> X0
+    com.android.tools.r8.graph.DexItemFactory itemFactory -> a
+    boolean hasMarker -> s0
+    boolean enableClassStaticizer -> F
+    int classInliningInstructionAllowance -> W
+    boolean printTimes -> g
+    boolean verbose -> o0
+    boolean enableRedundantConstNumberOptimization -> k0
+    com.android.tools.r8.DataResourceConsumer dataResourceConsumer -> e
+    boolean enableStringConcatenationOptimization -> L
+    boolean enableUnusedArgumentRemoval -> u
+    com.android.tools.r8.utils.Reporter reporter -> c
+    boolean enableCfInterfaceMethodDesugaring -> T
+    boolean debug -> T0
+    boolean forceProguardCompatibility -> P0
+    int inliningInstructionLimit -> X
+    com.android.tools.r8.StringConsumer mainDexListConsumer -> f1
+    boolean enableTreeShaking -> L0
+    com.android.tools.r8.StringConsumer configurationConsumer -> j1
+    boolean enableInliningOfInvokesWithNullableReceivers -> C
+    boolean enableTreeShakingOfLibraryMethodOverrides -> M
+    boolean libraryInterfacesMayHaveStaticInitialization -> n
+    java.util.Map warningInvalidParameterAnnotations -> c1
+    com.android.tools.r8.utils.AssertionConfigurationWithDefault assertionsConfiguration -> Q0
+    boolean enableLambdaMerging -> C0
+    boolean enableUnusedInterfaceRemoval -> v
+    boolean quiet -> p0
+    int inliningInstructionAllowance -> Y
+    boolean enablePcDebugInfoOutput -> l0
+    com.android.tools.r8.utils.InternalOptions$DesugarState desugarState -> D0
+    boolean enableValuePropagationForInstanceFields -> h0
+    com.android.tools.r8.utils.InternalOptions$OutlineOptions outline -> d0
+    boolean disableInliningOfLibraryMethodOverrides -> D
+    boolean enableInitializedClassesInInstanceMethodsAnalysis -> e0
+    java.util.List logArgumentsFilter -> A0
+    boolean enableServiceLoaderRewriting -> J
+    boolean passthroughDexCode -> k
+    boolean encodeChecksums -> R
+    boolean minimalMainDex -> Y0
+    boolean enableVerticalClassMerging -> s
+    int SUPPORTED_DEX_VERSION -> r1
+    int inliningMonitorEnterValuesAllowance -> Z
+    com.android.tools.r8.StringConsumer proguardMapConsumer -> g1
+    com.android.tools.r8.utils.InternalOptions$ProtoShrinkingOptions protoShrinking -> U0
+    boolean enableMinification -> M0
+    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration desugaredLibraryConfiguration -> k1
+    boolean applyInliningToInlinee -> A
+    boolean processCovariantReturnTypeAnnotations -> I0
+    java.util.Map missingEnclosingMembers -> b1
+    boolean skipReadingDexCode -> e1
+    com.android.tools.r8.shaking.ProguardConfiguration proguardConfiguration -> b
+    int inliningControlFlowResolutionBlocksThreshold -> a0
+    java.util.Set extensiveInterfaceMethodMinifierLoggingFilter -> v0
+    boolean enableNameReflectionOptimization -> K
+    boolean enableNeverMergePrefixes -> l
+    int applyInliningToInlineeMaxDepth -> B
+    java.util.function.BiPredicate dexClassChecksumFilter -> S
+    boolean intermediate -> y0
+    boolean enableArgumentRemoval -> t
+    int numberOfThreads -> m0
+    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization lineNumberOptimization -> a1
+    boolean invalidDebugInfoFatal -> q0
+    boolean enableUninstantiatedTypeOptimization -> i0
+    com.android.tools.r8.utils.OffOrAuto tryWithResourcesDesugaring -> H0
+    1:21:void <clinit>():68:88 -> <clinit>
+    1:1:void <init>():112:112 -> <init>
+    2:557:void <init>():106:661 -> <init>
+    558:562:void <init>():113:117 -> <init>
+    563:563:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):121:121 -> <init>
+    564:1119:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):106:661 -> <init>
+    1120:1127:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):122:129 -> <init>
+    1128:1128:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):133:133 -> <init>
+    1129:1684:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):106:661 -> <init>
+    1685:1696:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):134:145 -> <init>
+    1:9:java.util.Set getExtensiveInterfaceMethodMinifierLoggingFilter():523:531 -> A
+    1:9:java.util.Set getExtensiveLoggingFilter():497:505 -> B
+    1:1:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():322:322 -> C
+    2:2:boolean hasConsumer():318:318 -> C
+    2:2:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():322 -> C
+    3:3:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():322:322 -> C
+    4:4:boolean isGeneratingDexIndexed():347:347 -> C
+    4:4:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():323 -> C
+    5:5:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():324:324 -> C
+    6:6:boolean isGeneratingDexFilePerClassFile():351:351 -> C
+    6:6:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():325 -> C
+    7:7:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():326:326 -> C
+    8:8:boolean isGeneratingClassFiles():355:355 -> C
+    8:8:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():327 -> C
+    9:11:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():328:330 -> C
+    1:1:com.android.tools.r8.shaking.ProguardConfiguration getProguardConfiguration():99:99 -> D
+    1:1:boolean hasMethodsFilter():911:911 -> E
+    1:1:boolean hasProguardConfiguration():95:95 -> F
+    1:1:boolean hasUsageInformationConsumer():618:618 -> G
+    1:1:boolean isCallSiteOptimizationEnabled():1143:1143 -> H
+    1:1:boolean isDesugaredLibraryCompilation():334:334 -> I
+    1:1:boolean isGeneratingClassFiles():355:355 -> J
+    1:1:boolean isGeneratingDexIndexed():347:347 -> K
+    1:1:boolean isGeneratingDex():343 -> K
+    2:2:boolean isGeneratingDexFilePerClassFile():351:351 -> K
+    2:2:boolean isGeneratingDex():343 -> K
+    1:1:boolean hasConsumer():318:318 -> L
+    1:1:boolean isInterfaceMethodDesugaringEnabled():1158 -> L
+    2:4:boolean isInterfaceMethodDesugaringEnabled():1161:1163 -> L
+    1:1:boolean isMinifying():450:450 -> M
+    1:1:boolean isShrinking():446:446 -> N
+    1:1:boolean isStringSwitchConversionEnabled():1167:1167 -> O
+    1:1:com.android.tools.r8.utils.InternalOptions$KotlinOptimizationOptions kotlinOptimizationOptions():489:489 -> P
+    1:32:boolean printWarnings():836:867 -> Q
+    33:72:boolean printWarnings():863:902 -> Q
+    1:1:com.android.tools.r8.utils.InternalOptions$ProtoShrinkingOptions protoShrinking():485:485 -> R
+    1:4:boolean shouldDesugarNests():393:396 -> S
+    5:5:boolean isGeneratingClassFiles():355:355 -> S
+    5:5:boolean canUseNestBasedAccess():1127 -> S
+    5:5:boolean shouldDesugarNests():396 -> S
+    1:1:boolean shouldEnableKeepRuleSynthesisForRecompilation():493:493 -> T
+    1:18:void signalFinishedToConsumers():371:388 -> U
+    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
+    1:2:void setMarker(com.android.tools.r8.dex.Marker):287:288 -> a
+    3:4:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):292:293 -> a
+    5:12:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):300:307 -> a
+    5:12:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):295 -> a
+    13:13:boolean isGeneratingClassFiles():355:355 -> a
+    13:13:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):308 -> a
+    13:13:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):295 -> a
+    14:17:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):309:312 -> a
+    14:17:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):295 -> a
+    18:18:boolean assertionsEnabled():656:656 -> a
+    19:19:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):664:664 -> a
+    20:20:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):686:686 -> a
+    21:27:void warningMissingTypeForDesugar(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):780:786 -> a
+    28:28:void warningMissingTypeForDesugar(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):781:781 -> a
+    29:30:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):793:794 -> a
+    31:31:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> a
+    31:31:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):796 -> a
+    32:34:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):796:798 -> a
+    35:35:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    35:35:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):799 -> a
+    36:36:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):799:799 -> a
+    37:37:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    37:37:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):802 -> a
+    38:38:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):802:802 -> a
+    39:39:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):794:794 -> a
+    40:43:void warningMissingEnclosingMember(com.android.tools.r8.graph.DexType,com.android.tools.r8.origin.Origin,int):807:810 -> a
+    44:48:void warningInvalidParameterAnnotations(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,int,int):815:819 -> a
+    49:55:void warningInvalidDebugInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.errors.InvalidDebugInfoException):824:830 -> a
+    56:56:void warningInvalidDebugInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.errors.InvalidDebugInfoException):825:825 -> a
+    57:57:java.util.List lambda$warningInvalidDebugInfo$3(com.android.tools.r8.origin.Origin):829:829 -> a
+    58:63:boolean methodMatchesFilter(com.android.tools.r8.graph.DexEncodedMethod):916:921 -> a
+    64:65:boolean hasMinApi(com.android.tools.r8.utils.AndroidApiLevel):1098:1099 -> a
+    1:3:java.lang.String messageErrorMissingNestHost(com.android.tools.r8.graph.DexClass):720:722 -> b
+    4:9:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):736:741 -> b
+    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> b
+    10:10:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):741 -> b
+    11:38:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):743:770 -> b
+    39:39:java.util.List lambda$warningInvalidParameterAnnotations$2(com.android.tools.r8.origin.Origin):818:818 -> b
+    40:40:boolean canHaveArtCheckCastVerifierBug():1492:1492 -> b
+    1:1:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):702:702 -> c
+    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> c
+    2:2:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):703 -> c
+    3:5:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):704:706 -> c
+    6:6:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):686:686 -> c
+    6:6:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):707 -> c
+    7:8:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):711:712 -> c
+    9:9:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> c
+    9:9:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):714 -> c
+    10:10:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):714:714 -> c
+    11:11:java.lang.String messageWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):774:774 -> c
+    11:11:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):716 -> c
+    12:12:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):716:716 -> c
+    13:13:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):712:712 -> c
+    14:16:java.lang.String messageWarningMissingNestHost(com.android.tools.r8.graph.DexClass):729:731 -> c
+    17:17:java.util.List lambda$warningMissingEnclosingMember$1(com.android.tools.r8.origin.Origin):809:809 -> c
+    18:19:boolean canHaveArtInstanceOfVerifierBug():1447:1448 -> c
+    1:4:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):675:678 -> d
+    5:5:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> d
+    5:5:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):680 -> d
+    6:8:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):680:682 -> d
+    9:9:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):678:678 -> d
+    10:10:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):664:664 -> d
+    10:10:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):676 -> d
+    11:11:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):690:690 -> d
+    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> d
+    12:12:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):691 -> d
+    13:13:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):692:692 -> d
+    14:14:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):686:686 -> d
+    14:14:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):693 -> d
+    15:15:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):697:697 -> d
+    16:16:java.lang.String messageWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):774:774 -> d
+    16:16:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):697 -> d
+    17:17:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):697:697 -> d
+    18:18:boolean canHaveDalvikAbstractMethodOnNonAbstractClassVerificationBug():1524:1524 -> d
+    1:1:boolean isGeneratingClassFiles():355:355 -> e
+    1:1:boolean canHaveDalvikIntUsedAsNonIntPrimitiveTypeBug():1538 -> e
+    2:2:boolean canHaveDalvikIntUsedAsNonIntPrimitiveTypeBug():1538:1538 -> e
+    3:6:void warningMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):668:671 -> e
+    7:7:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):664:664 -> e
+    7:7:void warningMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):669 -> e
+    1:1:boolean isGeneratingClassFiles():355:355 -> f
+    1:1:boolean canInitCauseAfterAssertionErrorObjectConstructor():1194 -> f
+    2:2:boolean canInitCauseAfterAssertionErrorObjectConstructor():1194:1194 -> f
+    1:1:boolean isGeneratingClassFiles():355:355 -> g
+    1:1:boolean canLeaveStaticInterfaceMethodInvokes():1131 -> g
+    2:2:boolean canLeaveStaticInterfaceMethodInvokes():1131:1131 -> g
+    1:1:boolean isGeneratingClassFiles():355:355 -> h
+    1:1:boolean canUseAssertionErrorTwoArgumentConstructor():1184 -> h
+    2:2:boolean canUseAssertionErrorTwoArgumentConstructor():1184:1184 -> h
+    1:1:boolean isGeneratingClassFiles():355:355 -> i
+    1:1:boolean canUseConstantMethodHandle():1111 -> i
+    2:2:boolean canUseConstantMethodHandle():1111:1111 -> i
+    1:1:boolean isGeneratingClassFiles():355:355 -> j
+    1:1:boolean canUseConstantMethodType():1115 -> j
+    2:2:boolean canUseConstantMethodType():1115:1115 -> j
+    1:1:boolean isGeneratingClassFiles():355:355 -> k
+    1:1:boolean canUseDefaultAndStaticInterfaceMethods():1123 -> k
+    2:2:boolean canUseDefaultAndStaticInterfaceMethods():1123:1123 -> k
+    1:2:boolean canUseFilledNewArrayOfObjects():1206:1207 -> l
+    1:1:boolean isGeneratingClassFiles():355:355 -> m
+    1:1:boolean canUseInvokeCustom():1119 -> m
+    2:2:boolean canUseInvokeCustom():1119:1119 -> m
+    1:1:boolean isGeneratingClassFiles():355:355 -> n
+    1:1:boolean canUseInvokePolymorphic():1107 -> n
+    2:2:boolean canUseInvokePolymorphic():1107:1107 -> n
+    1:1:boolean isGeneratingClassFiles():355:355 -> o
+    1:1:boolean canUseInvokePolymorphicOnVarHandle():1103 -> o
+    2:2:boolean canUseInvokePolymorphicOnVarHandle():1103:1103 -> o
+    1:2:boolean canUseMultidex():1171:1172 -> p
+    1:1:boolean isGeneratingClassFiles():355:355 -> q
+    1:1:boolean canUseNotInstruction():1242 -> q
+    2:2:boolean canUseNotInstruction():1242:1242 -> q
+    1:1:boolean isGeneratingClassFiles():355:355 -> r
+    1:1:boolean canUsePrivateInterfaceMethods():1139 -> r
+    2:2:boolean canUsePrivateInterfaceMethods():1139:1139 -> r
+    1:1:boolean isGeneratingClassFiles():355:355 -> s
+    1:1:boolean canUseRequireNonNull():1176 -> s
+    2:2:boolean canUseRequireNonNull():1176:1176 -> s
+    1:2:boolean canUseSameArrayAndResultRegisterInArrayGetWide():1215:1216 -> t
+    1:1:boolean isGeneratingClassFiles():355:355 -> u
+    1:1:boolean canUseSuppressedExceptions():1180 -> u
+    2:2:boolean canUseSuppressedExceptions():1180:1180 -> u
+    1:1:boolean isGeneratingClassFiles():355:355 -> v
+    1:1:boolean canUseTwrCloseResourceMethod():1135 -> v
+    2:2:boolean canUseTwrCloseResourceMethod():1135:1135 -> v
+    1:4:void disableAllOptimizations():149:152 -> w
+    1:18:void disableGlobalOptimizations():156:173 -> x
+    1:1:void disableNameReflectionOptimization():1087:1087 -> y
+    1:2:void enablePropagationOfConstantsAtCallSites():1093:1094 -> z
+com.android.tools.r8.utils.InternalOptions$DesugarState -> com.android.tools.r8.utils.f0$a:
+    com.android.tools.r8.utils.InternalOptions$DesugarState ONLY_BACKPORT_STATICS -> b
+    com.android.tools.r8.utils.InternalOptions$DesugarState ON -> c
+    com.android.tools.r8.utils.InternalOptions$DesugarState OFF -> a
+    1:4:void <clinit>():80:83 -> <clinit>
+    1:1:void <init>(java.lang.String,int):79:79 -> <init>
+com.android.tools.r8.utils.InternalOptions$InvalidParameterAnnotationInfo -> com.android.tools.r8.utils.f0$b:
+    int expectedParameterCount -> b
+    int actualParameterCount -> c
+    com.android.tools.r8.graph.DexMethod method -> a
+    1:4:void <init>(com.android.tools.r8.graph.DexMethod,int,int):575:578 -> <init>
+com.android.tools.r8.utils.InternalOptions$KotlinOptimizationOptions -> com.android.tools.r8.utils.f0$c:
+    boolean disableKotlinSpecificOptimizations -> a
+    1:3:void <init>():954:956 -> <init>
+com.android.tools.r8.utils.InternalOptions$LineNumberOptimization -> com.android.tools.r8.utils.f0$d:
+    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization ON -> b
+    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization OFF -> a
+    1:2:void <clinit>():75:76 -> <clinit>
+    1:1:void <init>(java.lang.String,int):74:74 -> <init>
+com.android.tools.r8.utils.InternalOptions$OutlineOptions -> com.android.tools.r8.utils.f0$e:
+    int threshold -> d
+    boolean enabled -> a
+    int minSize -> b
+    int maxSize -> c
+    1:9:void <init>():943:951 -> <init>
+com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode -> com.android.tools.r8.utils.f0$f:
+    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode[] $VALUES -> d
+    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode FLATTEN -> c
+    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode REPACKAGE -> b
+    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode NONE -> a
+    1:5:void <clinit>():936:940 -> <clinit>
+    6:6:void <clinit>():934:934 -> <clinit>
+    1:1:void <init>(java.lang.String,int):934:934 -> <init>
+com.android.tools.r8.utils.InternalOptions$ProtoShrinkingOptions -> com.android.tools.r8.utils.f0$g:
+    boolean enableGeneratedExtensionRegistryShrinking -> a
+    boolean enableGeneratedMessageLiteShrinking -> b
+    boolean enableGeneratedMessageLiteBuilderShrinking -> c
+    boolean traverseOneOfAndRepeatedProtoFields -> d
+    1:13:void <init>():959:971 -> <init>
+    1:1:boolean isProtoShrinkingEnabled():974:974 -> a
+com.android.tools.r8.utils.InternalOptions$TestingOptions -> com.android.tools.r8.utils.f0$h:
+    boolean enableSwitchToIfRewriting -> m
+    boolean forceRedundantConstNumberRemoval -> o
+    java.util.function.Consumer callSiteOptimizationInfoInspector -> N
+    boolean reportUnusedProguardConfigurationRules -> i
+    boolean allowOutlinerInterfaceArrayArguments -> J
+    boolean enableCheckCastAndInstanceOfRemoval -> k
+    java.util.Set validInliningReasons -> u
+    boolean measureProguardIfRuleEvaluations -> L
+    com.android.tools.r8.utils.InternalOptions$TestingOptions$MinifierTestingOptions minifier -> K
+    boolean forceNameReflectionOptimization -> w
+    boolean invertConditionals -> q
+    com.android.tools.r8.utils.IROrdering irOrdering -> b
+    boolean dontCreateMarkerInD8 -> s
+    java.util.function.Consumer irModifier -> y
+    boolean allowNonAbstractClassesWithAbstractMethods -> E
+    boolean allowInvokeErrors -> f
+    boolean verifyKeptGraphInfo -> G
+    boolean allowClassInlinerGracefulExit -> h
+    boolean dontReportFailingCheckDiscarded -> A
+    boolean addCallEdgesForLibraryInvokes -> d
+    java.io.PrintStream whyAreYouNotInliningConsumer -> C
+    boolean enableEnumUnboxingDebugLogs -> n
+    boolean forceAssumeNoneInsertion -> p
+    boolean readInputStackMaps -> I
+    boolean alwaysUsePessimisticRegisterAllocation -> j
+    boolean enableDeadSwitchCaseElimination -> l
+    boolean noLocalsTableOnInput -> v
+    com.android.tools.r8.utils.InternalOptions$TestingOptions$ProguardIfRuleEvaluationData proguardIfRuleEvaluationData -> M
+    boolean enableNarrowingChecksInD8 -> x
+    boolean placeExceptionalBlocksLast -> r
+    boolean forceJumboStringProcessing -> t
+    byte[] forceDexVersionBytes -> a
+    int basicBlockMuncherIterationLimit -> z
+    java.util.function.Consumer waveModifier -> c
+    boolean allowTypeErrors -> e
+    boolean enableForceNestBasedAccessDesugaringForTest -> F
+    boolean disableL8AnnotationRemoval -> g
+    boolean dumpAll -> H
+    boolean deterministicSortingBasedOnDexType -> B
+    boolean trackDesugaredAPIConversions -> D
+    1:101:void <init>():980:1080 -> <init>
+    void lambda$new$0(java.util.Deque) -> a
+com.android.tools.r8.utils.InternalOptions$TestingOptions$MinifierTestingOptions -> com.android.tools.r8.utils.f0$h$a:
+    java.util.Comparator interfaceMethodOrdering -> a
+    1:3:void <init>():1057:1059 -> <init>
+    1:2:java.util.Comparator getInterfaceMethodOrderingOrDefault(java.util.Comparator):1063:1064 -> a
+    3:3:int lambda$getInterfaceMethodOrderingOrDefault$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):1064:1064 -> a
+com.android.tools.r8.utils.InternalOptions$TestingOptions$ProguardIfRuleEvaluationData -> com.android.tools.r8.utils.f0$h$b:
+    int numberOfProguardIfRuleMemberEvaluations -> b
+    int numberOfProguardIfRuleClassEvaluations -> a
+    1:4:void <init>():1074:1077 -> <init>
+com.android.tools.r8.utils.InternalOptions$TypeVersionPair -> com.android.tools.r8.utils.f0$i:
+    com.android.tools.r8.graph.DexType type -> b
+    int version -> a
+    1:3:void <init>(int,com.android.tools.r8.graph.DexType):587:589 -> <init>
+com.android.tools.r8.utils.InternalOutputMode -> com.android.tools.r8.utils.g0:
+    com.android.tools.r8.utils.InternalOutputMode DexIndexed -> a
+    com.android.tools.r8.utils.InternalOutputMode DexFilePerClassFile -> b
+    com.android.tools.r8.utils.InternalOutputMode ClassFile -> c
+    1:3:void <clinit>():8:10 -> <clinit>
+    1:1:void <init>(java.lang.String,int):7:7 -> <init>
+    1:1:boolean isGeneratingClassFiles():13:13 -> a
+    1:1:boolean isGeneratingDex():17:17 -> b
+com.android.tools.r8.utils.IterableUtils -> com.android.tools.r8.utils.h0:
+    1:2:int firstIndexMatching(java.lang.Iterable,java.util.function.Predicate):13:14 -> a
+com.android.tools.r8.utils.IteratorUtils -> com.android.tools.r8.utils.j0:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():17:17 -> <clinit>
+    1:1:java.util.Iterator filter(java.util.Iterator,java.util.function.Predicate):21:21 -> a
+    2:5:java.lang.Object peekNext(java.util.ListIterator):61:64 -> a
+    6:18:boolean anyRemainingMatch(java.util.ListIterator,java.util.function.Predicate):104:116 -> a
+    1:3:java.lang.Object peekPrevious(java.util.ListIterator):54:56 -> b
+    4:7:void removeIf(java.util.Iterator,java.util.function.Predicate):81:84 -> b
+com.android.tools.r8.utils.IteratorUtils$1 -> com.android.tools.r8.utils.i0:
+    java.util.Iterator val$iterator -> b
+    java.util.function.Predicate val$predicate -> c
+    java.lang.Object next -> a
+    1:3:void <init>(java.util.Iterator,java.util.function.Predicate):21:23 -> <init>
+    1:1:boolean hasNext():38:38 -> hasNext
+    1:3:java.lang.Object advance():27:29 -> k
+    1:5:java.lang.Object next():43:47 -> next
+    6:6:java.lang.Object next():45:45 -> next
+com.android.tools.r8.utils.LRUCacheTable -> com.android.tools.r8.utils.l0:
+    int columnCapacity -> b
+    int rowCapacity -> a
+    1:3:void <init>(int,int,float):31:33 -> <init>
+    1:1:java.util.Map lambda$put$0(java.lang.Object):46:46 -> a
+    2:3:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):46:47 -> a
+    1:1:com.android.tools.r8.utils.LRUCacheTable create(int,int):37:37 -> b
+    1:1:boolean removeEldestEntry(java.util.Map$Entry):42:42 -> removeEldestEntry
+com.android.tools.r8.utils.LRUCacheTable$LRUCacheRow -> com.android.tools.r8.utils.k0:
+    int columnCapacity -> a
+    1:2:void <init>(int,float):17:18 -> <init>
+    1:1:boolean removeEldestEntry(java.util.Map$Entry):23:23 -> removeEldestEntry
+com.android.tools.r8.utils.LebUtils -> com.android.tools.r8.utils.m0:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:6:int parseSleb128(com.android.tools.r8.dex.BinaryReader):65:70 -> a
+    7:19:byte[] encodeSleb128(int):76:88 -> a
+    20:20:void putSleb128(com.android.tools.r8.dex.DexOutputBuffer,int):99:99 -> a
+    1:6:int parseUleb128(com.android.tools.r8.dex.BinaryReader):21:26 -> b
+    7:16:byte[] encodeUleb128(int):32:41 -> b
+    17:21:void putUleb128(com.android.tools.r8.dex.DexOutputBuffer,int):48:52 -> b
+    1:1:int sizeAsSleb128(int):110:110 -> c
+    1:1:int sizeAsUleb128(int):57:57 -> d
+com.android.tools.r8.utils.LibraryClassCollection -> com.android.tools.r8.utils.n0:
+    1:1:void <init>(com.android.tools.r8.utils.ClassProvider):15:15 -> <init>
+    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):13:13 -> a
+    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):13:13 -> a
+    3:5:com.android.tools.r8.graph.DexLibraryClass resolveClassConflict(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexLibraryClass):20:22 -> a
+    3:5:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):13 -> a
+    6:6:com.android.tools.r8.graph.DexLibraryClass resolveClassConflict(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexLibraryClass):21:21 -> a
+    6:6:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):13 -> a
+    1:1:com.android.tools.r8.graph.ClassKind getClassKind():34:34 -> c
+    1:1:java.lang.String toString():39:39 -> toString
+com.android.tools.r8.utils.LineNumberOptimizer -> com.android.tools.r8.utils.w0:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():61:61 -> <clinit>
+    1:1:void access$1200(int,int,com.android.tools.r8.ir.code.Position,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):61:61 -> a
+    2:2:com.android.tools.r8.ir.code.Position access$900(com.android.tools.r8.ir.code.Position,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):61:61 -> a
+    3:13:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):270:280 -> a
+    14:14:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    14:14:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):281 -> a
+    15:17:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):281:283 -> a
+    18:20:void addClassToClassNaming(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.function.Supplier):514:516 -> a
+    18:20:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):291 -> a
+    21:62:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):294:335 -> a
+    63:63:boolean com.android.tools.r8.utils.InternalOptions.canUseDexPcAsDebugInformation():1153:1153 -> a
+    63:63:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):335 -> a
+    64:64:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):335:335 -> a
+    65:68:void optimizeDexCodePositionsForPc(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):707:710 -> a
+    65:68:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):336 -> a
+    69:69:void com.android.tools.r8.utils.Pair.<init>():20:20 -> a
+    69:69:void optimizeDexCodePositionsForPc(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):710 -> a
+    69:69:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):336 -> a
+    70:103:void optimizeDexCodePositionsForPc(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):712:745 -> a
+    70:103:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):336 -> a
+    104:112:void optimizeDexCodePositionsForPc(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):742:750 -> a
+    104:112:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):336 -> a
+    113:208:void optimizeDexCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,boolean):601:696 -> a
+    113:208:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):338 -> a
+    209:212:boolean verifyIdentityMapping(com.android.tools.r8.graph.DexDebugInfo,com.android.tools.r8.graph.DexDebugInfo):755:758 -> a
+    209:212:void optimizeDexCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,boolean):697 -> a
+    209:212:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):338 -> a
+    213:213:void optimizeDexCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,boolean):699:699 -> a
+    213:213:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):338 -> a
+    214:214:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):341:341 -> a
+    215:238:void optimizeCfCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,com.android.tools.r8.graph.AppView):769:792 -> a
+    215:238:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):342 -> a
+    239:239:void optimizeCfCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,com.android.tools.r8.graph.AppView):785:785 -> a
+    239:239:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):342 -> a
+    240:271:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):346:377 -> a
+    272:272:void com.android.tools.r8.naming.MemberNaming.<init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String):61:61 -> a
+    272:272:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):377 -> a
+    273:313:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):378:418 -> a
+    314:324:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):416:426 -> a
+    325:337:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):423:435 -> a
+    338:339:com.android.tools.r8.naming.ClassNaming$Builder lambda$run$0(com.android.tools.r8.naming.ClassNameMapper$Builder,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):286:287 -> a
+    340:340:com.android.tools.r8.naming.ClassNaming$Builder lambda$run$0(com.android.tools.r8.naming.ClassNameMapper$Builder,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):285:285 -> a
+    341:342:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$2(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):369:370 -> a
+    343:343:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):373:373 -> a
+    344:344:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():711:711 -> a
+    344:344:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):374 -> a
+    345:345:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):373:373 -> a
+    346:359:int getMethodStartLine(com.android.tools.r8.graph.DexEncodedMethod):476:489 -> a
+    360:360:void sortMethods(java.util.List):498:498 -> a
+    361:362:int lambda$sortMethods$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):500:501 -> a
+    363:363:int com.android.tools.r8.graph.DexEncodedMethod.slowCompare(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1199:1199 -> a
+    363:363:int lambda$sortMethods$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):504 -> a
+    364:364:void addFieldsToClassNaming(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier):525:525 -> a
+    365:371:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):527:533 -> a
+    372:372:void com.android.tools.r8.naming.MemberNaming.<init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String):61:61 -> a
+    372:372:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):533 -> a
+    373:373:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):534:534 -> a
+    374:381:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):541:548 -> a
+    382:389:boolean doesContainPositions(com.android.tools.r8.graph.DexEncodedMethod):559:566 -> a
+    382:389:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):549 -> a
+    390:392:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):550:552 -> a
+    393:393:java.util.List lambda$groupMethodsByRenamedName$5(com.android.tools.r8.graph.DexString):551:551 -> a
+    394:399:boolean doesContainPositions(com.android.tools.r8.graph.DexCode):572:577 -> a
+    400:402:boolean doesContainPositions(com.android.tools.r8.graph.CfCode):585:587 -> a
+    1:4:com.android.tools.r8.ir.code.Position remapAndAdd(com.android.tools.r8.ir.code.Position,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):798:801 -> b
+    5:8:void remapAndAddForPc(int,int,com.android.tools.r8.ir.code.Position,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):813:816 -> b
+com.android.tools.r8.utils.LineNumberOptimizer$1 -> com.android.tools.r8.utils.o0:
+    boolean $assertionsDisabled -> m
+    com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper val$positionRemapper -> i
+    com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter val$positionEventEmitter -> h
+    com.android.tools.r8.utils.Box val$inlinedOriginalPosition -> k
+    java.util.List val$mappedPositions -> j
+    int emittedPc -> g
+    java.util.List val$processedEvents -> l
+    1:1:void <clinit>():613:613 -> <clinit>
+    1:4:void <init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,com.android.tools.r8.utils.Box,java.util.List):613:616 -> <init>
+    1:14:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):629:642 -> a
+    15:15:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):651:651 -> a
+    16:16:void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd):656:656 -> a
+    17:17:void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin):661:661 -> a
+    18:19:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):668:669 -> a
+    20:21:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):674:675 -> a
+    22:23:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):680:681 -> a
+    1:3:void flushPc():620:622 -> f
+com.android.tools.r8.utils.LineNumberOptimizer$2 -> com.android.tools.r8.utils.p0:
+    com.android.tools.r8.utils.Pair val$lastPosition -> g
+    com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper val$positionRemapper -> h
+    boolean $assertionsDisabled -> j
+    java.util.List val$mappedPositions -> i
+    1:1:void <clinit>():713:713 -> <clinit>
+    1:1:void <init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.utils.Pair,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):713:713 -> <init>
+    1:7:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):716:722 -> a
+    8:21:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):719:732 -> a
+    22:22:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):727:727 -> a
+com.android.tools.r8.utils.LineNumberOptimizer$IdentityPositionRemapper -> com.android.tools.r8.utils.q0:
+    1:1:void <init>():69:69 -> <init>
+    2:2:void <init>(com.android.tools.r8.utils.LineNumberOptimizer$1):69:69 -> <init>
+    1:1:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):73:73 -> a
+com.android.tools.r8.utils.LineNumberOptimizer$KotlinInlineFunctionPositionRemapper -> com.android.tools.r8.utils.r0:
+    com.android.tools.r8.graph.DexItemFactory factory -> b
+    com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parsedData -> g
+    java.util.Map parsedKotlinSourceDebugExtensions -> c
+    com.android.tools.r8.graph.AppView appView -> a
+    com.android.tools.r8.utils.CfLineToMethodMapper lineToMethodMapper -> d
+    boolean $assertionsDisabled -> h
+    com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper baseRemapper -> e
+    com.android.tools.r8.graph.DexEncodedMethod currentMethod -> f
+    1:1:void <clinit>():110:110 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,com.android.tools.r8.utils.CfLineToMethodMapper,com.android.tools.r8.utils.LineNumberOptimizer$1):110:110 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,com.android.tools.r8.utils.CfLineToMethodMapper):125:125 -> <init>
+    3:18:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,com.android.tools.r8.utils.CfLineToMethodMapper):114:129 -> <init>
+    1:1:com.android.tools.r8.graph.DexEncodedMethod access$202(com.android.tools.r8.utils.LineNumberOptimizer$KotlinInlineFunctionPositionRemapper,com.android.tools.r8.graph.DexEncodedMethod):110:110 -> a
+    2:4:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):134:136 -> a
+    5:11:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result getAndParseSourceDebugExtension(com.android.tools.r8.graph.DexType):182:188 -> a
+    5:11:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):136 -> a
+    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):205:205 -> a
+    12:12:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result getAndParseSourceDebugExtension(com.android.tools.r8.graph.DexType):188 -> a
+    12:12:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):136 -> a
+    13:18:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result getAndParseSourceDebugExtension(com.android.tools.r8.graph.DexType):189:194 -> a
+    13:18:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):136 -> a
+    19:19:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result getAndParseSourceDebugExtension(com.android.tools.r8.graph.DexType):186:186 -> a
+    19:19:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):136 -> a
+    20:36:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):138:154 -> a
+    37:39:java.lang.String com.android.tools.r8.utils.CfLineToMethodMapper.getName(java.lang.String):73:75 -> a
+    37:39:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):155 -> a
+    40:42:java.lang.String com.android.tools.r8.utils.CfLineToMethodMapper.getDescriptor(java.lang.String):79:81 -> a
+    40:42:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):156 -> a
+    43:53:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):157:167 -> a
+    54:68:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):164:178 -> a
+com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition -> com.android.tools.r8.utils.s0:
+    int obfuscatedLine -> d
+    int originalLine -> b
+    com.android.tools.r8.ir.code.Position caller -> c
+    com.android.tools.r8.graph.DexMethod method -> a
+    1:1:void <init>(com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.utils.LineNumberOptimizer$1):248:248 -> <init>
+    2:6:void <init>(com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position,int):255:259 -> <init>
+    1:1:int access$300(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):248:248 -> a
+    1:1:int access$400(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):248:248 -> b
+    1:1:com.android.tools.r8.graph.DexMethod access$500(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):248:248 -> c
+    1:1:com.android.tools.r8.ir.code.Position access$600(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):248:248 -> d
+com.android.tools.r8.utils.LineNumberOptimizer$OptimizingPositionRemapper -> com.android.tools.r8.utils.t0:
+    boolean $assertionsDisabled -> e
+    int nextOptimizedLineNumber -> d
+    com.android.tools.r8.graph.DexMethod previousMethod -> b
+    int previousSourceLine -> c
+    int maxLineDelta -> a
+    1:1:void <clinit>():77:77 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):83:83 -> <init>
+    2:10:void <init>(com.android.tools.r8.utils.InternalOptions):79:87 -> <init>
+    1:15:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):92:106 -> a
+com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter -> com.android.tools.r8.utils.u0:
+    java.util.List processedEvents -> f
+    boolean $assertionsDisabled -> g
+    int previousPc -> d
+    int startLine -> b
+    com.android.tools.r8.graph.DexMethod method -> c
+    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
+    com.android.tools.r8.ir.code.Position previousPosition -> e
+    1:1:void <clinit>():205:205 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.utils.LineNumberOptimizer$1):205:205 -> <init>
+    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List):214:214 -> <init>
+    3:13:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List):207:217 -> <init>
+    1:2:void emitAdvancePc(int):221:222 -> a
+    1:2:void access$800(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,int):205 -> a
+    3:15:void emitPositionEvents(int,com.android.tools.r8.ir.code.Position):226:238 -> a
+    3:15:void access$1000(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,int,com.android.tools.r8.ir.code.Position):205 -> a
+    16:17:int getStartLine():242:243 -> a
+    16:17:int access$1100(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter):205 -> a
+com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper -> com.android.tools.r8.utils.v0:
+    com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position) -> a
+com.android.tools.r8.utils.ListUtils -> com.android.tools.r8.utils.x0:
+    1:2:int lastIndexMatching(java.util.List,java.util.function.Predicate):24:25 -> a
+    3:5:java.util.List map(java.util.Collection,java.util.function.Function):33:35 -> a
+com.android.tools.r8.utils.LongInterval -> com.android.tools.r8.utils.y0:
+    long max -> b
+    long min -> a
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:4:void <init>(int,int):15:18 -> <init>
+    5:8:void <init>(long,long):21:24 -> <init>
+    1:1:long getMax():32:32 -> a
+    2:2:boolean containsValue(long):45:45 -> a
+    3:3:boolean overlapsWith(com.android.tools.r8.utils.LongInterval):53:53 -> a
+    1:1:long getMin():28:28 -> b
+    1:2:long getSingleValue():40:41 -> c
+    1:1:boolean isSingleValue():36:36 -> d
+    1:2:boolean equals(java.lang.Object):66:67 -> equals
+    1:1:int hashCode():58:58 -> hashCode
+    1:1:java.lang.String toString():74:74 -> toString
+com.android.tools.r8.utils.MainDexList -> com.android.tools.r8.utils.z0:
+    1:9:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):21:29 -> a
+    10:10:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):26:26 -> a
+    11:11:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    11:11:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):26 -> a
+    12:12:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):26:26 -> a
+    13:13:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):22:22 -> a
+    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    14:14:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):22 -> a
+    15:15:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):22:22 -> a
+    16:31:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):35:50 -> a
+    32:32:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):37:37 -> a
+    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
+    33:33:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):37 -> a
+    34:34:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):37:37 -> a
+com.android.tools.r8.utils.MethodJavaSignatureEquivalence -> com.android.tools.r8.utils.A0:
+    com.android.tools.r8.utils.MethodJavaSignatureEquivalence INSTANCE_IGNORE_NAME -> c
+    com.android.tools.r8.utils.MethodJavaSignatureEquivalence INSTANCE -> b
+    boolean ignoreName -> a
+    1:4:void <clinit>():17:20 -> <clinit>
+    1:2:void <init>(boolean):25:26 -> <init>
+    1:1:com.android.tools.r8.utils.MethodJavaSignatureEquivalence get():30:30 -> c
+    1:1:com.android.tools.r8.utils.MethodJavaSignatureEquivalence getEquivalenceIgnoreName():34:34 -> d
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):15:15 -> doEquivalent
+    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):39:42 -> doEquivalent
+    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):15 -> doEquivalent
+    1:1:int doHash(java.lang.Object):15:15 -> doHash
+    2:5:int doHash(com.android.tools.r8.graph.DexMethod):47:50 -> doHash
+    2:5:int doHash(java.lang.Object):15 -> doHash
+com.android.tools.r8.utils.MethodSignatureEquivalence -> com.android.tools.r8.utils.B0:
+    com.android.tools.r8.utils.MethodSignatureEquivalence INSTANCE -> b
+    com.android.tools.r8.utils.MethodSignatureEquivalence INSTANCE_IGNORE_NAME -> c
+    boolean ignoreName -> a
+    1:3:void <clinit>():16:18 -> <clinit>
+    1:2:void <init>(boolean):23:24 -> <init>
+    1:1:com.android.tools.r8.utils.MethodSignatureEquivalence get():28:28 -> c
+    1:1:com.android.tools.r8.utils.MethodSignatureEquivalence getEquivalenceIgnoreName():32:32 -> d
+    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):14:14 -> doEquivalent
+    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):37:40 -> doEquivalent
+    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):14 -> doEquivalent
+    1:1:int doHash(java.lang.Object):14:14 -> doHash
+    2:5:int doHash(com.android.tools.r8.graph.DexMethod):45:48 -> doHash
+    2:5:int doHash(java.lang.Object):14 -> doHash
+com.android.tools.r8.utils.OffOrAuto -> com.android.tools.r8.utils.C0:
+    com.android.tools.r8.utils.OffOrAuto Auto -> b
+    com.android.tools.r8.utils.OffOrAuto Off -> a
+    com.android.tools.r8.utils.OffOrAuto[] $VALUES -> c
+    1:1:void <clinit>():11:11 -> <clinit>
+    2:2:void <clinit>():10:10 -> <clinit>
+    1:1:void <init>(java.lang.String,int):10:10 -> <init>
+com.android.tools.r8.utils.OneShotByteResource -> com.android.tools.r8.utils.D0:
+    com.android.tools.r8.origin.Origin origin -> a
+    java.util.Set classDescriptors -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.ProgramResource$Kind kind -> b
+    byte[] bytes -> c
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:6:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):26:31 -> <init>
+    1:1:com.android.tools.r8.utils.OneShotByteResource create(com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,byte[],java.util.Set):22:22 -> a
+    1:3:java.io.InputStream getByteStream():46:48 -> getByteStream
+    1:1:java.util.Set getClassDescriptors():54:54 -> getClassDescriptors
+    1:1:com.android.tools.r8.ProgramResource$Kind getKind():41:41 -> getKind
+    1:1:com.android.tools.r8.origin.Origin getOrigin():36:36 -> getOrigin
+com.android.tools.r8.utils.OptionalBool -> com.android.tools.r8.utils.H0:
+    com.android.tools.r8.utils.OptionalBool UNKNOWN -> e
+    com.android.tools.r8.utils.OptionalBool TRUE -> c
+    com.android.tools.r8.utils.OptionalBool FALSE -> d
+    1:29:void <clinit>():9:37 -> <clinit>
+    1:1:void <init>():51:51 -> <init>
+    com.android.tools.r8.utils.OptionalBool asOptionalBool() -> a
+    1:1:com.android.tools.r8.utils.OptionalBool of(boolean):54:54 -> a
+    1:1:com.android.tools.r8.utils.OptionalBool unknown():58:58 -> g
+    1:1:int hashCode():73:73 -> hashCode
+com.android.tools.r8.utils.OptionalBool$1 -> com.android.tools.r8.utils.E0:
+    1:1:void <init>():10:10 -> <init>
+    boolean isTrue() -> e
+com.android.tools.r8.utils.OptionalBool$2 -> com.android.tools.r8.utils.F0:
+    1:1:void <init>():24:24 -> <init>
+    boolean isFalse() -> c
+com.android.tools.r8.utils.OptionalBool$3 -> com.android.tools.r8.utils.G0:
+    1:1:void <init>():38:38 -> <init>
+    boolean isUnknown() -> f
+com.android.tools.r8.utils.OptionsParsing -> com.android.tools.r8.utils.I0:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():10:10 -> <clinit>
+    1:13:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):37:49 -> a
+    14:18:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):39:43 -> a
+    19:19:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):41:41 -> a
+    20:27:java.lang.Boolean tryParseBoolean(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String):60:67 -> a
+    1:11:java.util.List tryParseMulti(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String):18:28 -> b
+com.android.tools.r8.utils.OptionsParsing$ParseContext -> com.android.tools.r8.utils.I0$a:
+    java.lang.String[] args -> a
+    int nextIndex -> b
+    1:1:void <init>(java.lang.String[]):76:76 -> <init>
+    2:5:void <init>(java.lang.String[]):74:77 -> <init>
+    1:1:java.lang.String head():81:81 -> a
+    1:5:java.lang.String next():85:89 -> b
+com.android.tools.r8.utils.OrderedMergingIterator -> com.android.tools.r8.utils.J0:
+    java.util.List other -> b
+    java.util.List one -> a
+    int otherIndex -> d
+    int oneIndex -> c
+    1:1:void <init>(java.util.List,java.util.List):21:21 -> <init>
+    2:7:void <init>(java.util.List,java.util.List):18:23 -> <init>
+    1:1:boolean hasNext():35:35 -> hasNext
+    1:2:com.android.tools.r8.graph.DexEncodedMember next():40:41 -> k
+    3:6:com.android.tools.r8.graph.DexEncodedMember getNextChecked(java.util.List,int):27:30 -> k
+    3:6:com.android.tools.r8.graph.DexEncodedMember next():41 -> k
+    7:7:com.android.tools.r8.graph.DexEncodedMember getNextChecked(java.util.List,int):28:28 -> k
+    7:7:com.android.tools.r8.graph.DexEncodedMember next():41 -> k
+    8:9:com.android.tools.r8.graph.DexEncodedMember next():43:44 -> k
+    10:13:com.android.tools.r8.graph.DexEncodedMember getNextChecked(java.util.List,int):27:30 -> k
+    10:13:com.android.tools.r8.graph.DexEncodedMember next():44 -> k
+    14:14:com.android.tools.r8.graph.DexEncodedMember getNextChecked(java.util.List,int):28:28 -> k
+    14:14:com.android.tools.r8.graph.DexEncodedMember next():44 -> k
+    15:22:com.android.tools.r8.graph.DexEncodedMember next():46:53 -> k
+    23:23:com.android.tools.r8.graph.DexEncodedMember next():51:51 -> k
+    1:1:java.lang.Object next():13:13 -> next
+com.android.tools.r8.utils.OutputBuilder -> com.android.tools.r8.utils.K0:
+    void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler) -> a
+    void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler) -> a
+    void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler) -> a
+    void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler) -> a
+    void close(com.android.tools.r8.DiagnosticsHandler) -> a
+    java.nio.file.Path getPath() -> a
+com.android.tools.r8.utils.Pair -> com.android.tools.r8.utils.L0:
+    java.lang.Object second -> b
+    java.lang.Object first -> a
+    1:3:void <init>(java.lang.Object,java.lang.Object):23:25 -> <init>
+    1:1:java.lang.Object getFirst():29:29 -> a
+    2:2:void setFirst(java.lang.Object):37:37 -> a
+    1:1:java.lang.Object getSecond():33:33 -> b
+    2:2:void setSecond(java.lang.Object):41:41 -> b
+    1:1:boolean equals(java.lang.Object):51:51 -> equals
+    1:1:int hashCode():46:46 -> hashCode
+com.android.tools.r8.utils.PredicateSet -> com.android.tools.r8.utils.M0:
+    java.util.List predicates -> b
+    java.util.Set elements -> a
+    1:4:void <init>():14:17 -> <init>
+    1:1:boolean addElement(java.lang.Object):20:20 -> a
+    2:2:void addPredicate(java.util.function.Predicate):24:24 -> a
+    3:9:com.android.tools.r8.utils.PredicateSet rewriteItems(java.util.function.Function):28:34 -> a
+    1:5:boolean contains(java.lang.Object):39:43 -> b
+com.android.tools.r8.utils.PreloadedClassFileProvider -> com.android.tools.r8.utils.N0:
+    java.util.Map content -> a
+    1:1:void <init>(java.util.Map,com.android.tools.r8.utils.PreloadedClassFileProvider$1):19:19 -> <init>
+    2:3:void <init>(java.util.Map):37:38 -> <init>
+    1:3:com.android.tools.r8.ClassFileResourceProvider fromClassData(java.lang.String,byte[]):57:59 -> a
+    4:4:com.android.tools.r8.utils.PreloadedClassFileProvider$Builder builder():71:71 -> a
+    1:1:java.util.Set getClassDescriptors():43:43 -> getClassDescriptors
+    1:6:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):48:53 -> getProgramResource
+    7:7:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):52:52 -> getProgramResource
+    1:1:java.lang.String toString():64:64 -> toString
+com.android.tools.r8.utils.PreloadedClassFileProvider$1 -> com.android.tools.r8.utils.N0$a:
+com.android.tools.r8.utils.PreloadedClassFileProvider$Builder -> com.android.tools.r8.utils.N0$b:
+    java.util.Map content -> a
+    boolean $assertionsDisabled -> b
+    1:1:void <clinit>():74:74 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.PreloadedClassFileProvider$1):74:74 -> <init>
+    2:2:void <init>():78:78 -> <init>
+    3:3:void <init>():76:76 -> <init>
+    1:5:com.android.tools.r8.utils.PreloadedClassFileProvider$Builder addResource(java.lang.String,byte[]):82:86 -> a
+    6:8:com.android.tools.r8.utils.PreloadedClassFileProvider build():91:93 -> a
+com.android.tools.r8.utils.PreloadedClassFileProvider$ClassDescriptorOrigin -> com.android.tools.r8.utils.N0$c:
+    java.lang.String descriptor -> a
+    1:2:void <init>(java.lang.String):25:26 -> <init>
+    1:1:java.lang.String part():31:31 -> part
+com.android.tools.r8.utils.ProgramClassCollection -> com.android.tools.r8.utils.O0:
+    com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver conflictResolver -> d
+    boolean $assertionsDisabled -> e
+    1:1:void <clinit>():21:21 -> <clinit>
+    1:2:void <init>(java.util.concurrent.ConcurrentHashMap,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):39:40 -> <init>
+    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):21:21 -> a
+    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):21:21 -> a
+    3:3:com.android.tools.r8.graph.DexProgramClass resolveClassConflict(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):50:50 -> a
+    3:3:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):21 -> a
+    4:9:com.android.tools.r8.utils.ProgramClassCollection create(java.util.List,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):28:33 -> a
+    10:10:java.util.function.Supplier lambda$create$0(com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver,java.util.function.Supplier,java.util.function.Supplier):31:31 -> a
+    11:11:com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver defaultConflictResolver(com.android.tools.r8.utils.Reporter):66:66 -> a
+    12:16:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):67:71 -> a
+    17:17:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):88:88 -> a
+    17:17:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
+    18:21:com.android.tools.r8.graph.DexProgramClass mergeWrappers(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):105:108 -> a
+    18:21:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):89 -> a
+    18:21:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
+    22:23:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):91:92 -> a
+    22:23:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
+    24:25:boolean assertEqualClasses(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):99:100 -> a
+    24:25:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):92 -> a
+    24:25:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
+    26:26:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):95:95 -> a
+    26:26:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
+    27:27:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):74:74 -> a
+    28:33:com.android.tools.r8.graph.DexEncodedMethod findConversionMethod(com.android.tools.r8.graph.DexProgramClass):114:119 -> a
+    34:34:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    34:34:com.android.tools.r8.graph.DexEncodedMethod findConversionMethod(com.android.tools.r8.graph.DexProgramClass):119 -> a
+    35:35:com.android.tools.r8.graph.DexEncodedMethod findConversionMethod(com.android.tools.r8.graph.DexProgramClass):119:119 -> a
+    1:3:java.lang.RuntimeException reportDuplicateTypes(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):80:82 -> b
+    4:4:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():707:707 -> b
+    4:4:java.lang.RuntimeException reportDuplicateTypes(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):83 -> b
+    5:5:java.lang.RuntimeException reportDuplicateTypes(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):83:83 -> b
+    6:8:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> b
+    6:8:java.lang.RuntimeException reportDuplicateTypes(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):80 -> b
+    1:1:com.android.tools.r8.graph.ClassKind getClassKind():60:60 -> c
+    1:1:java.lang.String toString():45:45 -> toString
+com.android.tools.r8.utils.Reporter -> com.android.tools.r8.utils.P0:
+    com.android.tools.r8.DiagnosticsHandler clientHandler -> a
+    com.android.tools.r8.Diagnostic lastError -> c
+    java.util.Collection suppressedExceptions -> d
+    int errorCount -> b
+    1:1:void <init>():24:24 -> <init>
+    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):27:27 -> <init>
+    3:12:void <init>(com.android.tools.r8.DiagnosticsHandler):19:28 -> <init>
+    1:1:void error(java.lang.String):53:53 -> a
+    2:5:void error(com.android.tools.r8.Diagnostic,java.lang.Throwable):57:60 -> a
+    6:8:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
+    9:27:void failIfPendingErrors():93:111 -> a
+    28:28:java.lang.Throwable addSuppressedExceptions(java.lang.Throwable):115:115 -> a
+    1:4:void error(com.android.tools.r8.Diagnostic,java.lang.Throwable):57:60 -> b
+    1:4:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic,java.lang.Throwable):84 -> b
+    5:6:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic,java.lang.Throwable):85:86 -> b
+    7:7:java.lang.RuntimeException fatalError(java.lang.String):67:67 -> b
+    8:10:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):75:77 -> b
+    8:10:java.lang.RuntimeException fatalError(java.lang.String):67 -> b
+    1:3:void error(com.android.tools.r8.Diagnostic):47:49 -> error
+    1:1:void info(com.android.tools.r8.Diagnostic):33:33 -> info
+    1:1:void warning(com.android.tools.r8.Diagnostic):38:38 -> warning
+com.android.tools.r8.utils.Reporter$1 -> com.android.tools.r8.utils.P0$a:
+    1:1:void <init>():24:24 -> <init>
+com.android.tools.r8.utils.SegmentTree -> com.android.tools.r8.utils.Q0:
+    java.util.TreeMap internalTree -> a
+    boolean allowIntervalOverwrites -> b
+    int size -> c
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():14:14 -> <clinit>
+    1:1:void <init>(boolean):21:21 -> <init>
+    2:8:void <init>(boolean):16:22 -> <init>
+    1:2:java.lang.Object find(int):26:27 -> a
+    3:4:java.util.Map$Entry findEntry(java.lang.Integer):31:32 -> a
+    5:44:com.android.tools.r8.utils.SegmentTree add(int,int,java.lang.Object):36:75 -> a
+    45:48:boolean lambda$add$0(int,int,com.android.tools.r8.utils.Box,java.lang.Integer):43:46 -> a
+    49:49:int size():80:80 -> a
+com.android.tools.r8.utils.SingletonEquivalence -> com.android.tools.r8.utils.R0:
+    1:1:void <init>():11:11 -> <init>
+com.android.tools.r8.utils.StreamUtils -> com.android.tools.r8.utils.S0:
+    1:2:byte[] StreamToByteArrayClose(java.io.InputStream):16:17 -> a
+com.android.tools.r8.utils.StringDiagnostic -> com.android.tools.r8.utils.StringDiagnostic:
+    com.android.tools.r8.origin.Origin origin -> a
+    com.android.tools.r8.position.Position position -> b
+    java.lang.String message -> c
+    1:1:void <init>(java.lang.String):28:28 -> <init>
+    2:2:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):32:32 -> <init>
+    3:6:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):35:38 -> <init>
+    1:1:java.lang.String getDiagnosticMessage():53:53 -> getDiagnosticMessage
+    1:1:com.android.tools.r8.origin.Origin getOrigin():43:43 -> getOrigin
+    1:1:com.android.tools.r8.position.Position getPosition():48:48 -> getPosition
+com.android.tools.r8.utils.StringUtils -> com.android.tools.r8.utils.T0:
+    char[] EMPTY_CHAR_ARRAY -> a
+    java.lang.String LINE_SEPARATOR -> c
+    java.lang.String[] EMPTY_ARRAY -> b
+    boolean $assertionsDisabled -> d
+    1:4:void <clinit>():15:18 -> <clinit>
+    1:6:java.lang.String com.android.tools.r8.utils.StringUtils$BraceType.left():28:33 -> a
+    1:6:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):109 -> a
+    7:15:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):109:117 -> a
+    16:21:java.lang.String com.android.tools.r8.utils.StringUtils$BraceType.right():38:43 -> a
+    16:21:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):119 -> a
+    22:22:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):119:119 -> a
+    23:28:boolean appendNonEmpty(java.lang.StringBuilder,java.lang.String,java.lang.Object,java.lang.String):65:70 -> a
+    29:32:java.lang.StringBuilder appendLeftPadded(java.lang.StringBuilder,java.lang.String,int):88:91 -> a
+    33:33:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection):104:104 -> a
+    34:34:java.lang.String join(java.util.Collection,java.lang.String):124:124 -> a
+    35:35:java.lang.String join(java.lang.String,java.lang.String[]):128:128 -> a
+    36:36:java.lang.String join(java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):132:132 -> a
+    37:39:java.lang.String join(java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType,java.util.function.Function):137:139 -> a
+    40:44:java.lang.String lines(java.util.List):143:147 -> a
+    45:45:java.lang.String joinLines(java.lang.String[]):165:165 -> a
+    46:46:java.lang.String joinLines(java.util.Collection):169:169 -> a
+    47:47:java.lang.String hexString(int,int):215:215 -> a
+    48:56:java.lang.String hexString(int,int,boolean):219:227 -> a
+    57:65:java.lang.String hexString(long,int,boolean):236:244 -> a
+    57:65:java.lang.String hexString(long,int):232 -> a
+    66:70:java.lang.String times(java.lang.String,int):263:267 -> a
+    71:71:boolean isWhitespace(int):275:275 -> a
+    72:77:int firstNonWhitespaceCharacter(java.lang.String):323:328 -> a
+    1:3:java.lang.StringBuilder appendRightPadded(java.lang.StringBuilder,java.lang.String,int):96:98 -> b
+    4:4:java.lang.String lines(java.lang.String[]):151:151 -> b
+    5:5:java.lang.String zeroPrefix(int,int):197:197 -> b
+    6:12:java.lang.String zeroPrefixString(java.lang.String,int):202:208 -> b
+    13:15:boolean onlyContainsDigits(java.lang.String):304:306 -> b
+    1:18:java.util.List splitLines(java.lang.String):173:190 -> c
+    1:2:java.lang.String stripLeadingBOM(java.lang.String):279:280 -> d
+    1:9:java.lang.String toASCIIString(java.lang.String):49:57 -> e
+    1:9:java.lang.String trim(java.lang.String):288:296 -> f
+    1:5:java.lang.String withNativeLineSeparator(java.lang.String):155:159 -> g
+com.android.tools.r8.utils.StringUtils$BraceType -> com.android.tools.r8.utils.T0$a:
+    com.android.tools.r8.utils.StringUtils$BraceType SQUARE -> b
+    com.android.tools.r8.utils.StringUtils$BraceType TUBORG -> c
+    com.android.tools.r8.utils.StringUtils$BraceType PARENS -> a
+    com.android.tools.r8.utils.StringUtils$BraceType[] $VALUES -> e
+    com.android.tools.r8.utils.StringUtils$BraceType NONE -> d
+    1:4:void <clinit>():22:25 -> <clinit>
+    5:5:void <clinit>():21:21 -> <clinit>
+    1:1:void <init>(java.lang.String,int):21:21 -> <init>
+com.android.tools.r8.utils.SymbolGenerationUtils -> com.android.tools.r8.utils.U0:
+    char[] IDENTIFIER_CHARACTERS -> b
+    boolean $assertionsDisabled -> e
+    java.util.Set PRIMITIVE_TYPE_NAMES -> a
+    int NUMBER_OF_CHARACTERS_MINUS_CAPITAL_LETTERS -> d
+    int NUMBER_OF_CHARACTERS -> c
+    1:15:void <clinit>():13:27 -> <clinit>
+    1:1:java.lang.String numberToIdentifier(int,com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing):31:31 -> a
+    2:35:java.lang.String numberToIdentifier(int,com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing,char[],boolean):43:76 -> a
+com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing -> com.android.tools.r8.utils.U0$a:
+    com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing DONT_USE_MIXED_CASE -> b
+    com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing USE_MIXED_CASE -> a
+    1:2:void <clinit>():16:17 -> <clinit>
+    1:1:void <init>(java.lang.String,int):15:15 -> <init>
+com.android.tools.r8.utils.ThreadUtils -> com.android.tools.r8.utils.V0:
+    1:3:java.util.Collection processItemsWithResults(java.lang.Iterable,com.android.tools.r8.utils.ThrowingFunction,java.util.concurrent.ExecutorService):23:25 -> a
+    4:18:java.util.Collection awaitFuturesWithResults(java.util.Collection):67:81 -> a
+    4:18:java.util.Collection processItemsWithResults(java.lang.Iterable,com.android.tools.r8.utils.ThrowingFunction,java.util.concurrent.ExecutorService):27 -> a
+    19:29:java.util.Collection awaitFuturesWithResults(java.util.Collection):74:84 -> a
+    19:29:java.util.Collection processItemsWithResults(java.lang.Iterable,com.android.tools.r8.utils.ThrowingFunction,java.util.concurrent.ExecutorService):27 -> a
+    30:30:java.lang.Object lambda$processItemsWithResults$0(com.android.tools.r8.utils.ThrowingFunction,java.lang.Object):25:25 -> a
+    31:31:void processItems(java.lang.Iterable,com.android.tools.r8.utils.ThrowingConsumer,java.util.concurrent.ExecutorService):33:33 -> a
+    32:32:java.lang.Object lambda$processItems$1(com.android.tools.r8.utils.ThrowingConsumer,java.lang.Object):36:36 -> a
+    33:46:void awaitFutures(java.lang.Iterable):44:57 -> a
+    47:57:void awaitFutures(java.lang.Iterable):50:60 -> a
+    58:59:java.util.concurrent.ExecutorService getExecutorService(int):99:100 -> a
+    60:60:java.util.concurrent.ExecutorService getExecutorService(com.android.tools.r8.utils.InternalOptions):104:104 -> a
+    1:2:java.util.concurrent.ExecutorService getExecutorServiceForProcessors(int):92:93 -> b
+com.android.tools.r8.utils.ThrowingBiConsumer -> com.android.tools.r8.utils.W0:
+com.android.tools.r8.utils.ThrowingCharIterator -> com.android.tools.r8.utils.X0:
+    char nextChar() -> a
+com.android.tools.r8.utils.ThrowingConsumer -> com.android.tools.r8.utils.Y0:
+com.android.tools.r8.utils.ThrowingFunction -> com.android.tools.r8.utils.Z0:
+com.android.tools.r8.utils.ThrowingIntIterator -> com.android.tools.r8.utils.a1:
+    1:1:void <init>():9:9 -> <init>
+    boolean hasNext() -> a
+    1:2:void forEachRemaining(java.util.function.IntConsumer):12:13 -> a
+    3:6:int nextIntComputeIfAbsent(com.android.tools.r8.utils.ThrowingIntSupplier):22:25 -> a
+    int nextInt() -> b
+com.android.tools.r8.utils.ThrowingIntSupplier -> com.android.tools.r8.utils.b1:
+    int getAsInt() -> a
+com.android.tools.r8.utils.ThrowingIterator -> com.android.tools.r8.utils.c1:
+    1:1:void <init>():11:11 -> <init>
+    boolean hasNext() -> a
+    1:4:java.lang.Object computeNextIfAbsent(com.android.tools.r8.utils.ThrowingSupplier):18:21 -> a
+    5:10:java.util.List take(int):25:30 -> a
+    11:11:java.util.List take(int):28:28 -> a
+    java.lang.Object next() -> b
+com.android.tools.r8.utils.ThrowingSupplier -> com.android.tools.r8.utils.d1:
+com.android.tools.r8.utils.Timing -> com.android.tools.r8.utils.f1:
+    java.util.Stack stack -> b
+    com.android.tools.r8.utils.Timing EMPTY -> d
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.utils.Timing$Node top -> a
+    boolean trackMemory -> c
+    1:5:void <clinit>():25:29 -> <clinit>
+    1:1:void <init>(java.lang.String,boolean,com.android.tools.r8.utils.Timing$1):25:25 -> <init>
+    2:2:void <init>(java.lang.String):88:88 -> <init>
+    3:7:void <init>(java.lang.String,boolean):91:95 -> <init>
+    1:1:com.android.tools.r8.utils.Timing$Node access$1100(com.android.tools.r8.utils.Timing):25:25 -> a
+    2:4:com.android.tools.r8.utils.Timing create(java.lang.String,com.android.tools.r8.utils.InternalOptions):73:75 -> a
+    5:5:com.android.tools.r8.utils.Timing create(java.lang.String,com.android.tools.r8.utils.InternalOptions):74:74 -> a
+    6:6:com.android.tools.r8.utils.Timing create(java.lang.String,boolean):79:79 -> a
+    7:7:com.android.tools.r8.utils.Timing$TimingMerger beginMerger(java.lang.String,int):321:321 -> a
+    8:8:java.lang.String prettyPercentage(long,long):329:329 -> a
+    8:8:java.lang.String access$400(long,long):25 -> a
+    9:9:long percentage(long,long):325:325 -> a
+    9:9:java.lang.String prettyPercentage(long,long):329 -> a
+    9:9:java.lang.String access$400(long,long):25 -> a
+    10:10:java.lang.String prettyPercentage(long,long):329:329 -> a
+    10:10:java.lang.String access$400(long,long):25 -> a
+    11:11:java.lang.String prettyTime(long):333:333 -> a
+    11:11:java.lang.String access$300(long):25 -> a
+    12:15:void begin(java.lang.String):361:364 -> a
+    16:20:void com.android.tools.r8.utils.Timing$Node.restart():134:138 -> a
+    16:20:void begin(java.lang.String):365 -> a
+    21:24:void begin(java.lang.String):367:370 -> a
+    25:30:java.util.Map computeMemoryInformation():401:406 -> a
+    25:30:java.util.Map access$200():25 -> a
+    31:31:com.android.tools.r8.utils.Timing$MemInfo com.android.tools.r8.utils.Timing$MemInfo.fromTotalAndFree(long,long):106:106 -> a
+    31:31:java.util.Map computeMemoryInformation():405 -> a
+    31:31:java.util.Map access$200():25 -> a
+    32:32:java.util.Map computeMemoryInformation():403:403 -> a
+    32:32:java.util.Map access$200():25 -> a
+    1:1:java.util.Stack access$700(com.android.tools.r8.utils.Timing):25:25 -> b
+    2:2:com.android.tools.r8.utils.Timing empty():68:68 -> b
+    3:3:long percentage(long,long):325:325 -> b
+    3:3:long access$500(long,long):25 -> b
+    4:4:java.lang.String prettySize(long):337:337 -> b
+    4:4:java.lang.String access$600(long):25 -> b
+    5:21:java.lang.String prettyNumber(long):341:357 -> b
+    5:21:java.lang.String prettySize(long):337 -> b
+    5:21:java.lang.String access$600(long):25 -> b
+    22:22:java.lang.String prettySize(long):337:337 -> b
+    22:22:java.lang.String access$600(long):25 -> b
+    1:1:boolean access$800(com.android.tools.r8.utils.Timing):25:25 -> c
+    2:3:void end():374:375 -> c
+    1:6:void report():379:384 -> d
+com.android.tools.r8.utils.Timing$1 -> com.android.tools.r8.utils.f1$a:
+    1:1:void <init>(java.lang.String,boolean):30:30 -> <init>
+    void begin(java.lang.String) -> a
+    1:1:com.android.tools.r8.utils.Timing$TimingMerger beginMerger(java.lang.String,int):33:33 -> a
+    void end() -> c
+    void report() -> d
+com.android.tools.r8.utils.Timing$1$1 -> com.android.tools.r8.utils.e1:
+    1:1:void <init>(com.android.tools.r8.utils.Timing$1,java.lang.String,int,com.android.tools.r8.utils.Timing):33:33 -> <init>
+    void add(java.util.Collection) -> a
+    void end() -> a
+com.android.tools.r8.utils.Timing$MemInfo -> com.android.tools.r8.utils.f1$b:
+    long used -> a
+    1:2:void <init>(long):101:102 -> <init>
+com.android.tools.r8.utils.Timing$Node -> com.android.tools.r8.utils.f1$c:
+    java.util.Map children -> c
+    long start_time -> e
+    java.lang.String title -> a
+    long duration -> d
+    boolean $assertionsDisabled -> h
+    boolean trackMemory -> b
+    java.util.Map startMemory -> f
+    java.util.Map endMemory -> g
+    1:1:void <clinit>():114:114 -> <clinit>
+    1:1:void <init>(java.lang.String,boolean):124:124 -> <init>
+    2:14:void <init>(java.lang.String,boolean):118:130 -> <init>
+    1:5:void end():142:146 -> a
+    6:7:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):160:161 -> a
+    8:8:long duration():151:151 -> a
+    8:8:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):161 -> a
+    9:9:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):161:161 -> a
+    10:10:void report(int,com.android.tools.r8.utils.Timing$Node):165:165 -> a
+    11:11:long duration():151:151 -> a
+    11:11:void report(int,com.android.tools.r8.utils.Timing$Node):165 -> a
+    12:12:void report(int,com.android.tools.r8.utils.Timing$Node):165:165 -> a
+    13:13:long duration():151:151 -> a
+    13:13:void report(int,com.android.tools.r8.utils.Timing$Node):166 -> a
+    14:27:void report(int,com.android.tools.r8.utils.Timing$Node):166:179 -> a
+    28:28:long duration():151:151 -> a
+    28:28:void report(int,com.android.tools.r8.utils.Timing$Node):180 -> a
+    29:29:long duration():151:151 -> a
+    29:29:void report(int,com.android.tools.r8.utils.Timing$Node):182 -> a
+    30:30:long duration():151:151 -> a
+    30:30:void report(int,com.android.tools.r8.utils.Timing$Node):184 -> a
+    31:31:long com.android.tools.r8.utils.Timing.percentage(long,long):325:325 -> a
+    31:31:long com.android.tools.r8.utils.Timing.access$500(long,long):25 -> a
+    31:31:void report(int,com.android.tools.r8.utils.Timing$Node):184 -> a
+    32:33:void report(int,com.android.tools.r8.utils.Timing$Node):185:186 -> a
+    34:34:long duration():151:151 -> a
+    34:34:void report(int,com.android.tools.r8.utils.Timing$Node):188 -> a
+    35:35:void report(int,com.android.tools.r8.utils.Timing$Node):188:188 -> a
+    36:36:java.lang.String com.android.tools.r8.utils.Timing.prettyTime(long):333:333 -> a
+    36:36:java.lang.String com.android.tools.r8.utils.Timing.access$300(long):25 -> a
+    36:36:void report(int,com.android.tools.r8.utils.Timing$Node):190 -> a
+    37:37:void report(int,com.android.tools.r8.utils.Timing$Node):190:190 -> a
+    38:45:void report(int,com.android.tools.r8.utils.Timing$Node):186:193 -> a
+    46:46:void lambda$report$0(int,com.android.tools.r8.utils.Timing$Node,com.android.tools.r8.utils.Timing$Node):193:193 -> a
+    47:59:void printMemory(int):205:217 -> a
+    60:60:long com.android.tools.r8.utils.Timing$MemInfo.usedDelta(com.android.tools.r8.utils.Timing$MemInfo):110:110 -> a
+    60:60:void printMemory(int):219 -> a
+    61:61:void printMemory(int):219:219 -> a
+    62:62:void printMemory(int):212:212 -> a
+    1:2:void printPrefix(int):199:200 -> b
+    1:1:java.lang.String toString():156:156 -> toString
+    2:2:long duration():151:151 -> toString
+    2:2:java.lang.String toString():156 -> toString
+    3:3:java.lang.String toString():156:156 -> toString
+com.android.tools.r8.utils.Timing$TimingMerger -> com.android.tools.r8.utils.f1$d:
+    boolean $assertionsDisabled -> e
+    com.android.tools.r8.utils.Timing$Node slowest -> d
+    int taskCount -> c
+    com.android.tools.r8.utils.Timing$Node parent -> a
+    com.android.tools.r8.utils.Timing$Node merged -> b
+    1:1:void <clinit>():225:225 -> <clinit>
+    1:1:void <init>(java.lang.String,int,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.Timing$1):225:225 -> <init>
+    2:2:void <init>(java.lang.String,int,com.android.tools.r8.utils.Timing):232:232 -> <init>
+    3:9:void <init>(java.lang.String,int,com.android.tools.r8.utils.Timing):229:235 -> <init>
+    1:1:com.android.tools.r8.utils.Timing$Node access$1000(com.android.tools.r8.utils.Timing$TimingMerger):225:225 -> a
+    2:18:void add(java.util.Collection):286:302 -> a
+    19:23:void lambda$add$1(com.android.tools.r8.utils.Timing$TimingMerger$Item,boolean,java.util.Deque,java.lang.String,com.android.tools.r8.utils.Timing$Node):304:308 -> a
+    24:24:com.android.tools.r8.utils.Timing$Node lambda$add$0(boolean,java.lang.String):305:305 -> a
+    25:26:void end():315:316 -> a
+    1:1:int access$900(com.android.tools.r8.utils.Timing$TimingMerger):225:225 -> b
+com.android.tools.r8.utils.Timing$TimingMerger$1 -> com.android.tools.r8.utils.g1:
+    boolean $assertionsDisabled -> k
+    int val$numberOfThreads -> i
+    com.android.tools.r8.utils.Timing$TimingMerger this$0 -> j
+    1:1:void <clinit>():235:235 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.Timing$TimingMerger,java.lang.String,boolean,int):235:235 -> <init>
+    1:1:void report(int,com.android.tools.r8.utils.Timing$Node):238:238 -> a
+    2:2:long com.android.tools.r8.utils.Timing$Node.duration():151:151 -> a
+    2:2:void report(int,com.android.tools.r8.utils.Timing$Node):238 -> a
+    3:9:void report(int,com.android.tools.r8.utils.Timing$Node):238:244 -> a
+    10:10:long com.android.tools.r8.utils.Timing$Node.duration():151:151 -> a
+    10:10:void report(int,com.android.tools.r8.utils.Timing$Node):244 -> a
+    11:11:long com.android.tools.r8.utils.Timing$Node.duration():151:151 -> a
+    11:11:void report(int,com.android.tools.r8.utils.Timing$Node):245 -> a
+    12:19:void report(int,com.android.tools.r8.utils.Timing$Node):245:252 -> a
+    20:38:void report(int,com.android.tools.r8.utils.Timing$Node):246:264 -> a
+    39:39:void lambda$report$0(int,java.lang.String,com.android.tools.r8.utils.Timing$Node):259:259 -> a
+    1:1:void lambda$report$1(int,java.lang.String,com.android.tools.r8.utils.Timing$Node):264:264 -> b
+    1:1:java.lang.String toString():270:270 -> toString
+com.android.tools.r8.utils.Timing$TimingMerger$Item -> com.android.tools.r8.utils.h1:
+    com.android.tools.r8.utils.Timing$Node mergeTarget -> a
+    com.android.tools.r8.utils.Timing$Node mergeSource -> b
+    1:3:void <init>(com.android.tools.r8.utils.Timing$Node,com.android.tools.r8.utils.Timing$Node):279:281 -> <init>
+com.android.tools.r8.utils.TraversalContinuation -> com.android.tools.r8.utils.i1:
+    com.android.tools.r8.utils.TraversalContinuation CONTINUE -> a
+    com.android.tools.r8.utils.TraversalContinuation BREAK -> b
+    1:2:void <clinit>():8:9 -> <clinit>
+    1:1:void <init>(java.lang.String,int):7:7 -> <init>
+    1:1:boolean shouldBreak():12:12 -> a
+com.android.tools.r8.utils.TriFunction -> com.android.tools.r8.utils.j1:
+    java.lang.Object apply(java.lang.Object,java.lang.Object,java.lang.Object) -> a
+com.android.tools.r8.utils.VersionProperties -> com.android.tools.r8.utils.k1:
+    com.android.tools.r8.utils.VersionProperties INSTANCE -> c
+    java.lang.String sha -> a
+    java.lang.String releaser -> b
+    boolean $assertionsDisabled -> d
+    1:1:void <clinit>():14:14 -> <clinit>
+    2:7:com.android.tools.r8.utils.VersionProperties get():28:33 -> <clinit>
+    2:7:void <clinit>():16 -> <clinit>
+    8:13:com.android.tools.r8.utils.VersionProperties get():29:34 -> <clinit>
+    8:13:void <clinit>():16 -> <clinit>
+    14:14:void <clinit>():16:16 -> <clinit>
+    1:1:void <init>():38:38 -> <init>
+    2:10:void <init>(java.io.InputStream):41:49 -> <init>
+    1:1:java.lang.String getDescription():53:53 -> a
+    1:1:boolean isEngineering():66:66 -> b
+    1:1:java.lang.String getSha():57 -> b
+    2:2:java.lang.String getSha():57:57 -> b
+    1:1:boolean isEngineering():66:66 -> c
+    1:1:java.lang.String toString():62:62 -> toString
+com.android.tools.r8.utils.WorkList -> com.android.tools.r8.utils.l1:
+    java.util.Deque workingList -> a
+    java.util.Set seen -> b
+    boolean $assertionsDisabled -> c
+    1:1:void <clinit>():13:13 -> <clinit>
+    1:1:void <init>(com.android.tools.r8.utils.WorkList$EqualityTest):18:18 -> <init>
+    2:9:void <init>(com.android.tools.r8.utils.WorkList$EqualityTest):15:22 -> <init>
+    1:1:void addIfNotSeen(java.lang.Iterable):27:27 -> a
+    2:3:void addIfNotSeen(java.lang.Object):31:32 -> a
+    4:4:boolean hasNext():37:37 -> a
+    1:1:java.lang.Object next():41:41 -> b
+    2:2:boolean hasNext():37:37 -> b
+    2:2:java.lang.Object next():41 -> b
+    3:4:java.lang.Object next():41:42 -> b
+com.android.tools.r8.utils.WorkList$EqualityTest -> com.android.tools.r8.utils.l1$a:
+    com.android.tools.r8.utils.WorkList$EqualityTest IDENTITY -> b
+    com.android.tools.r8.utils.WorkList$EqualityTest HASH -> a
+    1:2:void <clinit>():46:47 -> <clinit>
+    1:1:void <init>(java.lang.String,int):45:45 -> <init>
+com.android.tools.r8.utils.ZipUtils -> com.android.tools.r8.utils.m1:
+    boolean $assertionsDisabled -> a
+    1:1:void <clinit>():37:37 -> <clinit>
+    boolean lambda$unzip$1(java.util.zip.ZipEntry) -> a
+    1:12:void writeResourcesToZip(java.util.List,java.util.Set,com.android.tools.r8.com.google.common.io.Closer,java.util.zip.ZipOutputStream):45:56 -> a
+    13:19:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):65:71 -> a
+    20:24:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):69:73 -> a
+    25:33:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):65:73 -> a
+    34:34:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):73:73 -> a
+    35:47:void zip(java.nio.file.Path,java.nio.file.Path):77:77 -> a
+    58:58:void zip(java.nio.file.Path,java.nio.file.Path):88:88 -> a
+    59:59:boolean lambda$zip$0(java.nio.file.Path):80:80 -> a
+    60:60:java.util.List unzip(java.lang.String,java.io.File):92:92 -> a
+    61:63:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):97:99 -> a
+    64:76:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):100:112 -> a
+    77:79:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):109:111 -> a
+    80:80:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):104:104 -> a
+    81:81:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
+    81:81:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):104 -> a
+    82:82:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):104:104 -> a
+    83:83:void writeToZipStream(java.util.zip.ZipOutputStream,java.lang.String,byte[],int):121:121 -> a
+    84:96:void writeToZipStream(java.util.zip.ZipOutputStream,java.lang.String,com.android.tools.r8.ByteDataView,int):127:139 -> a
+    97:104:boolean isClassFile(java.lang.String):148:155 -> a
+    1:2:boolean isDexFile(java.lang.String):143:144 -> b
+com.android.tools.r8.utils.ZipUtils$OnEntryHandler -> com.android.tools.r8.utils.m1$a:
+    void onEntry(java.util.zip.ZipEntry,java.io.InputStream) -> a
